<?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>64581</bug_id>
          
          <creation_ts>2011-07-14 18:59:22 -0700</creation_ts>
          <short_desc>Web Inspector: ApplicationCache UI is confusing and incorrect.</short_desc>
          <delta_ts>2011-11-10 10:36:30 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>71850</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Michael Nordman">michaeln</reporter>
          <assigned_to name="Vsevolod Vlasov">vsevik</assigned_to>
          <cc>apavlov</cc>
    
    <cc>ap</cc>
    
    <cc>bweinstein</cc>
    
    <cc>dglazkov</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>michaeln</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>vsevik</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>437473</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2011-07-14 18:59:22 -0700</bug_when>
    <thetext>Click the &quot;Resources&quot; tab at the top.

The tree view along the left-hand-side has a top level node for Application Cache. When opened, it shows a child element for every domain in the frame hierarchy of the page subject to inspection. When clicking any of those elements, the right-hand-side shows you the details of the appcache associated with the topmost document in the frame hierarchy, or indicates there is no appcache if there is no association to one.

It doesn&apos;t make much sense to list domains in the frameset under the appcache node (I&apos;m not sure what those node are trying to represent). And it&apos;s plainly incorrect to show info about the topmost document regardless of which node is selected.

The display of the details of an individual appcache (the right-hand-side) is reasonable, but the navigation elements on the left-hand-side to bring you to the details just don&apos;t make sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488604</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2011-10-21 13:23:33 -0700</bug_when>
    <thetext>Here&apos;s an idea about how to make more sense out of the left-hand-side.

Under the appcache node, show a child for each origin represented in page being inspected that contains appcaches. If an origin doesn&apos;t have any appcaches, don&apos;t put a node there. Then under each origin node, show a child for each manifest in that origin, and indicate visually those that are in-use by the page being inspected (dull vs bright tree node icon maybe).

Click on any manifest node see the entries for that manifest on the right-hand-side (the same display as we have now).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495439</commentid>
    <comment_count>2</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-11-03 07:12:41 -0700</bug_when>
    <thetext>I have started working on that.

My current approach is to extract ApplicationCacheModel that will store manifest urls related to current page. For each manifest url I will store a set of identifiers of the frames containing documents that are associated with it. The word associated should be read in the broader sense than the one used in specification though. We should show manifest URLs both for caches that are not yet loaded and for caches which failed to load for some reason because this information is valuable for developers.

Knowing all manifest urls we can now add list items for each of them in the ResourcesPanel&apos;s Application Cache node. I don&apos;t think that we need to group these manifests by origin, since the number of different manifests on one page/origin should not be big, should it?

Anyway, extracting ApplicationCacheModel and storing manifests is the main thing here, I think this is a good start to make application cache UI usable at all. We can discuss if we need to show other manifests from the page frames origins and the need for highlighting used manifests on UI later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495904</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2011-11-03 17:16:17 -0700</bug_when>
    <thetext>That sounds like it&apos;d be an improvement. The set of nodes on the right-hand-side will definitely not be too big (at most one node per frame in the page).

Do you plan on using the manifestUrl as the label for the nodes in the right-hand-side?

There is a detail that you should be aware of. Different frames broadly associated to the same manifest url, can be narrowly associated to different &apos;versions&apos; of that manifest. The detailed list of entries and timeStamps/size values of the ApplicationCacheHost::CacheInfo structure will be different even though the manifestUrl is the same. The ApplicationCacheHost::fillResourceList() and applicationCacheInfo() method, reflect what the info of the specific version associated with that specific doc/worker context. 

With that in mind, if two frames in the same &apos;tab&apos; are using the same manifest url, it might be best to go ahead and have the same &apos;url&apos; listed multiple times in the list on the rhs. When clicked on, query the specific &apos;host&apos; for the detailed listing and info to populate the lhs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499245</commentid>
    <comment_count>4</comment_count>
      <attachid>114340</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-11-09 12:23:29 -0800</bug_when>
    <thetext>Created attachment 114340
Screenshot</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499263</commentid>
    <comment_count>5</comment_count>
      <attachid>114343</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-11-09 12:36:15 -0800</bug_when>
    <thetext>Created attachment 114343
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499265</commentid>
    <comment_count>6</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-11-09 12:39:34 -0800</bug_when>
    <thetext>I have uploaded a patch and a screenshot.
This patch creates manifest url nodes under application cache node in resources panel. Under each manifest url all frames using the relevant application cache are listed.

Please note that application cache status icon, delete button etc. are still set to &quot;display:none&quot; in ApplicationCacheItemsView.js because they don&apos;t always work properly yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499268</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-09 12:40:32 -0800</bug_when>
    <thetext>Attachment 114343 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/http...&quot; exit_code: 1

Source/WebCore/inspector/InspectorApplicationCacheAgent.cpp:86:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InspectorApplicationCacheAgent.cpp:128:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InspectorApplicationCacheAgent.h:64:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InspectorApplicationCacheAgent.h:66:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Total errors found: 4 in 14 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499273</commentid>
    <comment_count>8</comment_count>
      <attachid>114343</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2011-11-09 12:51:51 -0800</bug_when>
    <thetext>Comment on attachment 114343
Patch

drive-by comment... screenshot looks great and the &apos;agent&apos; c++ code lgtm too

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

&gt; Source/WebCore/inspector/InspectorApplicationCacheAgent.cpp:125
&gt; +    *manifestURL = info.m_manifest.string();

There&apos;s some overalap between getManifestForFrame() and getApplicationCacheForFrame(), maybe define a private helper method to do much of the overlapping parts (ApplicationCacheHost* getApplicationCacheHostFrame(errString, frameId)).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499311</commentid>
    <comment_count>9</comment_count>
      <attachid>114343</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-09 13:33:41 -0800</bug_when>
    <thetext>Comment on attachment 114343
Patch

Attachment 114343 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10403049

New failing tests:
http/tests/inspector/resource-tree/appcache-iframe-manifests.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499710</commentid>
    <comment_count>10</comment_count>
      <attachid>114343</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-11-10 00:35:56 -0800</bug_when>
    <thetext>Comment on attachment 114343
Patch

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

A bunch of nits.

&gt; Source/WebCore/inspector/InspectorApplicationCacheAgent.cpp:76
&gt; +    m_frontend-&gt;updateApplicationCacheStatus(m_pageAgent-&gt;frameId(frame), manifestURL, status);

&quot;applicationCacheStatusUpdated&quot;

&gt; Source/WebCore/inspector/InspectorApplicationCacheAgent.cpp:130
&gt; +    Frame* frame = m_pageAgent-&gt;frameForId(frameId);

As Michael suggests, you should introduce:

DocumentLoader* documentLoader = assertFrameWithDocumentLoader(frameId);
if (!documentLoader)
    return;

As in DOM agent.

&gt; Source/WebCore/inspector/front-end/ApplicationCacheModel.js:58
&gt; +        var frameId = event.data.frame.id;

Please use following notation for compilation:

var frame = /** @type {&lt;frame type here&gt;} */ event.data[&quot;frame&quot;];

i.e. you should do event.data[] instead of event.data.

&gt; Source/WebCore/inspector/front-end/ApplicationCacheModel.js:70
&gt; +        this._reset();

It took me few seconds to figure out that this._statuses is initialized from constructor. Avoid this indirection and declare variables in the constructor explicitly.

&gt; Source/WebCore/inspector/front-end/ApplicationCacheModel.js:88
&gt; +            console.error(error);

return; ?

&gt; Source/WebCore/inspector/front-end/ApplicationCacheModel.js:96
&gt; +        if (error)

ditto

&gt; Source/WebCore/inspector/front-end/ApplicationCacheModel.js:100
&gt; +            this._frameManifestUpdated(framesWithManifests[i].frameId, framesWithManifests[i].manifestURL, framesWithManifests[i].status);

I would pass framesWithManifests[i] here...

&gt; Source/WebCore/inspector/front-end/ApplicationCacheModel.js:104
&gt; +     * @param {string} frameId

... and declare parameter type as {ApplicationCacheAgent.FramesWithManifest}. It has been generated for you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499821</commentid>
    <comment_count>11</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-11-10 05:45:05 -0800</bug_when>
    <thetext>All done except for this one.

&gt; &gt; Source/WebCore/inspector/front-end/ApplicationCacheModel.js:100
&gt; &gt; +            this._frameManifestUpdated(framesWithManifests[i].frameId, framesWithManifests[i].manifestURL, framesWithManifests[i].status);
&gt; 
&gt; I would pass framesWithManifests[i] here...
&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/ApplicationCacheModel.js:104
&gt; &gt; +     * @param {string} frameId
&gt; 
&gt; ... and declare parameter type as {ApplicationCacheAgent.FramesWithManifest}. It has been generated for you.
This method is also called from applicationCacheStatusUpdated. I added @param {Array.&lt;ApplicationCacheAgent.FrameWithManifest&gt;} to _framesWithManifestsLoaded() though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499822</commentid>
    <comment_count>12</comment_count>
      <attachid>114479</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-11-10 05:46:03 -0800</bug_when>
    <thetext>Created attachment 114479
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499824</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-10 05:47:57 -0800</bug_when>
    <thetext>Attachment 114479 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/http...&quot; exit_code: 1

Source/WebCore/inspector/InspectorApplicationCacheAgent.cpp:89:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InspectorApplicationCacheAgent.cpp:131:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InspectorApplicationCacheAgent.h:66:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InspectorApplicationCacheAgent.h:68:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Total errors found: 4 in 19 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499834</commentid>
    <comment_count>14</comment_count>
      <attachid>114479</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-10 06:05:00 -0800</bug_when>
    <thetext>Comment on attachment 114479
Patch

Attachment 114479 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10394324</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500037</commentid>
    <comment_count>15</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-11-10 10:36:30 -0800</bug_when>
    <thetext>Committed r99878: &lt;http://trac.webkit.org/changeset/99878&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>114340</attachid>
            <date>2011-11-09 12:23:29 -0800</date>
            <delta_ts>2011-11-09 12:23:29 -0800</delta_ts>
            <desc>Screenshot</desc>
            <filename>Screenshot-localhost-appcache-with_frame.html - Chromium-1.png</filename>
            <type>image/png</type>
            <size>80007</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">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
n8nz5k10+ePV19f34osvNTQ07NmzZ9u2bYsX3/DmW2+3t3/kzrvumjlzZlNT08DAQG9vwTB2dunb
F6oLliyZZFG5oaGhUqm0tnokSXr6uf+46dbbPv8nf9pvu3qPFvceGmhoapw2Tb75Tu/XbvQ8/Z1v
vffermXL/lAIMWvWLHHp5cmjR49Omzbd52t3uVzVv0irb2MN/2a46sbq/6vvdr3yyiuHDx8hYgGX
rH379imKQsrCBfKRj3zk+uuvtyvliSrgzBGrXC7/vvc/PO65uw9vLdr9trBdwuUSwhb28X/lbGGL
ii3s3vcHZxQ+fOX0636zPVtsOnjl9Pnvv/XUXGlxS8skeG1djU/lco2IVXXo0KFjx45VF9k7evTo
sWPHyuWyEMK27auuuurw4cNHjhyZO3fu9OnT58yZUyqVT9PUpFCNkafZoVQux76x9vV3d3/hC38y
tXFG08yZe/b3WoetBperobGhSWrs6+3vH2h66OEHf5bZ9Bdf/vrjnatblyy6aPU7rrGx0e12Hzp0
6IUXXliyZMnChQtfeOGFOXPm3HDDDY2NjeVyuVQqXXfdddVTmjt27Jgs57Isy/rda69XyqXb79CO
HT2W3/K7oYr9YU1rcg9dPVA+Zu6aZu5xzZlny7PnzF9wS8+uXfv7LJc40rPrWrec/9lzvj8JTfQI
xqu5uVnT2g4ePHj4cN+2bdu8Xu/ixYveeeedV175jWmallWcM+fK666//kM337zkxsVvvdm1/8D+
22+7TZImzecWVNOFJEk/+9lPe44M/OXDXxgq265yebbUJCoVa/9+0dBQmTd39pXyfw998dtPfvPa
q6/5cFtbaWjIrvXW0sRyuVxHjhw5cuTI/v37Dx48eMaTiiffz7Jte968eVOmTNm/f/8tN0+mdzqA
DyDTNB9++OGJrgKXp97e3okt4AwRq1KpDAwMHB7cd7RslStWo3DZtksMu1iw+u+ay9VoWcfKu696
8N5YQ0ND7+EVhWMHyuXSln359957b1JErMHBoVKpXKkVdm27IqpndYrFwcFBwzCEEOVyecGCBYVC
4fDhw4ZhuFyu6ovs6nkw27ZrNjWJlErl01+l84NnM5tefeePV/xxsTR1qFw8PGC933PA7RJXzJQG
SyXXQNOhvuLhvoFFi1puv+2Obe8c+Ptv/ss//a+/umrenIs2BGc1NDRMmTJl48aNBw4cuPPOO5ua
mtxu949//ONQKKQoitvtrkZuRVFKpZLLNatSqVz6l0cODQ395jevzpg5Y/Hi1hdffOn3b7xxlaLM
nD5tu7FzySPRY7/fMn3fntL+PfaRRQ0zZfe8+TNnz5tyaKdVFr29R69pcf36F88e+6M/njF5ThTc
fPPNDY2NW7a8rmna+++/n81my+Wyqqqf/OQnZ8yYsW/v3u53dnzv9Xyrx9Nxd8f27Tt+85tXPvYx
72T5uLzqmfM3d+978ZXXPnW3zyoWjxWLolwWDQ3iwIHye+9dccstjQ0ua2BQnnPljbd8+PmXfj2n
te3IYOnSPN9eKpX6+vp27NhxY2vrlAYhhF2xXRVblMvlgYGBqVOnSpJ0Mno1NFQv5W6wbXvr1q3z
588f/62kAAAIIY4cPdp76FBfX19/f78QYvr06c3NzbOvvPKKc7pte1xnsSole6hslStC2LZw2S67
oeKyG1yupqmuocGysF1NTa4G4bIrJ95HFEII+4Zrbz1q2vsO9pxDWRdfsWgNDQ1WXyWPUqnYQgi3
233llVfatn3s2DG3W5oypWlwcHDatGm2bR89erRUKjU2Nvb391cvITty5HDNpiaRoaHBYrHuhYL6
ezsT//qzD9/VPjTUUCwXJXejddhq//Dia1qubGxstG27cOTYm+/27Cjt2/zGOzcturqjw7spa3/7
mR/97ZpJ/H7V1KlT+/v7vV5vS0tLuVxub2/funXr0NBQQ0ODLMvf+973hoaGZsyYsWjRoiVLlrz2
2mu+jo6JLvl0bNt+6y3d5XJdf/316Q3PDgz0//c//dMbbrhh//79//zPT8krHpjxx39S+bd/Lh94
b+jgfnfzbOmq+bPnX9e89/2BvqEjZVE+cuzqo6905Tbf+emlEz2U8RocHNy+/V1fR8eu93a99OKL
N99ySyDwuYrdePBg77Wq0rT/4KC66I1K+efP/2TDhg2f+cy9uq6/+WaXpt060YWPl8vlOtazc+qU
pusXXG8dOdw8ZWrTbLliFfdv31aePmNGS0tTY2PP/v2H+3rVxUt+/dIvm21r+pSGS/bGs1KpNH36
9Nva2vYfK5crrpaZwt3kKpZdzz///KJFi9ra2qp/zZ7MV9Vv3nnnnZoXEwIAUE+Pafb09FTDVVXf
4cN9hw8fOHhw/vz58xXlbBs8c8SybbtUskXFbqheDihcLpfdNKXhaKH4/raBa2+c4SqXd3YfvebG
Ge5rDnz3ha9eOe26HUd+uW33b/+f//rziktcmu+PjjU0VCqVyrUj1omzWNV/ti3Lmjp1yrFjg291
dR3u65sxY/qC0Q8uAAAgAElEQVQVV1xRKpWampqqJzoOHz58m3bbyy//eubMGR/60Icu+lCcUSqV
h4ZGL/5RVbErP3npVe2OOw73i/6h0vzpUzzXzvd+eFFDg10sDg4O2kKIK6ZN9d1xY8vc5p+8uHXv
viNHjpasoRkvv7b9lS1dH7ltsl69s3Xr1sOHD8+bN6/6eyJJUktLy5YtW+bMmSPL8vXXX9/U1GTb
9tDQ0I4dOw4cODDR9Z6BbYuurrc//gcf/eUvf2m77PAjj8ydO7dYLMqy/JG77tRfe1X7o5X9m386
5f33hvbvka5T3XOvEtObp02/YurRQwMVccyqyFMGf//j1GSJWLZt73inW25uPnjo4H/+6j8/uzww
8wo595vfej/68StmyVZ/pfH3bx4Wrmu0O1aG/scPUt/btOmXH/v4x3ObN99664cbGibH63W7Ujl8
6NBgxZ4xZ+7hnbvKb/7eNW2ay9Ug+nrF4kWNTQ2iXBq0BpqvuOL9Ql9vb6+5Z7e4VO8arWakxsbG
qVNcv97V+J+G8F7nuuNa15J5jcK2XS7X1KlTh4aGTu42/IyWEJPmnx4AVRXbbnC5rKHSs2/s29k7
eHPL9Hs/dNVEF4UPih7T3GkYpVopoL+/f6dhCCHONmWd+UJB27aHhuxK2XYJ15QmV8UWA8eGul8v
7Nt59Gih1HLdtZXByu9f2rt727RrFs8ozXm5IIZaPLP7K3MrJdeJJTEmgeJgcXBosFSqexarVCr1
9vZaltXb2/fOjnePHeufNrXJ5WqYNavZ5xt9smLRokW6rv/rv/6rxzNZ48Tg0GBxsMaVNv391u91
Y/Ombu3OW1ua3NdeM/vuthuvv0oulwatsqjYQtguV4MoDZbL5f7Wa6/cf/OidenfKvNmNjVJs6+6
/rkXXrv+6hal5cqLP6LzVC6Xf/vb3x46dGj+/PnV98tnzJjR0tKycePGT3ziE6qqzp0799ChQ41N
jS7hEsK1Y8c7l/i1gtu2bZt/tfJ+T8/u3bu/+MUvzp07VwgxZcqUadOm3fPp/+vZ9LPb9u5b/MDq
4j89Nm3/e0P7en61ZUvXnr1Dg01X2WK6S+waEr03/cHtD6+e6HGM13vvvbftnW23tmk//1nmxiVL
WpRrZ14x+z9+/ONrr7vuhiULj+7ef7TrzeYvPFR2u6fOnH7vZwPfXfeM2WMq86/etm2bx9M60eWf
WfVCwVK5VHK5hoRovGJ680J114YfCiGuDdxXkJunuOz9hw7uM993T5P6isW+Y8cOHjhwyUaRk4VV
7IaOhfbhov3c2/Yre8Q/fbapaUpT9aMgmpqahp+tqs5A9WptzmIBk0uDy/Veb//XntvR1dM3ranh
h2X7hbcP/s9lN8yePqXmeemDu7b+Lr+jYA01TJl+vec27aZrzv+DTQ/3bMltn/Ff7r5x7EfNDPR2
//znr1rH/1GviMbp199yxx03zp/0H0oDIY4cPdrT01PNV/Pmzdu/f//Jh6o/lsrlnp6emTNnntUV
g2d4/Vd9t748VKmUbdvl6js4+M6rB3/977u6t/batr24bda0GU3uGY0Lbmoe7C915Q7qvz5WKkwr
H2soD9k1/4Hbu339TXPnzRn29dm/en7b81/u+Hxy/EWPk9X3xl//xd/vGtfC42KwODg0OFgul8Z+
WZb1/vs977zbvW37ju3vvGsPWR9eeHXgM5/8+L33eu/wTHM3HDp0qLoYxp49e3p6enp6eg4cONDb
2zs4WBzezj79x8u83va77/7E3Xd/4m7vJ+4J/O33ftVfq8dL4WtocHCwODh2ot57f/9vX98hz5m7
w+jrO1r61J03LlKu3LvXfO75n76w8Yebf/nDV1/84Us/++Er2R/9KP3j37+la60t1199Vd+xiqtx
SuOUGTvNY79/+73hDe59I3nTNbfEX9518qh99jb/C3trHLazOqBjbXvhbzqW/3PfOT5bNDY2rlix
YuHChd3d3W63W5Kk6idihcPhtra2Xbt2vfvuu9vfeSf/+tahoaF58+ZOnTq15gKVQojf/ujvO25e
PGfuvKsX3f7ok8+fsaRq5WO3n+eEvPnWW1deOfttXb/11lsXLTq+Ekn1XZWmxqZPfepT+4zuA4vb
Dt91jzC2/eq59M8PFed98a+m/7fH9tx+z/sL23r/6MFP/7+JW9q0kw3+3fLb54z80/1fn3yhXvGn
G+/zX+74fPIcnnh6W994c8qUKfv3mUVr8J57lk6fPmvaNPcf3rt848bn7Aax95eZ0vxr+xsaDx04
8Prrv58160p14cJXX32lwSU2535TKo2+L3HvG8nhf5VpS//0V7vOdCStvX/3+Y/Ombv4i7FHO5b/
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
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114343</attachid>
            <date>2011-11-09 12:36:15 -0800</date>
            <delta_ts>2011-11-10 05:45:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64581-20111110003612.patch</filename>
            <type>text/plain</type>
            <size>54133</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTk3MjkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjZDJhZmU0Nzc3Zjc0OWUx
OTkzMjE0NTJiNjVkODBmMmE3ZmY5NTdjLi5mNjIxZDU3Njc0ZjFkNDI1NDUyMzExOGQ1MDZmYzI5
YWQ3NWFhMTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzggQEAKKzIwMTEtMTEtMDkgIFZzZXZv
bG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogQXBwbGljYXRpb25DYWNoZSBVSSBpcyBjb25mdXNpbmcgYW5kIGluY29ycmVjdC4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0NTgxCisKKyAgICAg
ICAgRml4ZWQgcmVzb3VyY2VzIHBhbmVsIGFwcGxpY2F0aW9uIGNhY2hlIFVJLgorICAgICAgICBN
YW5pZmVzdCB1cmxzIGFyZSBub3cgc2hvd24gdW5kZXIgYXBwbGljYXRpb24gY2FjaGUgdHJlZSBl
bGVtZW50LgorICAgICAgICBVbmRlciBlYWNoIG1hbmlmZXN0IHVybCB0cmVlIGVsZW1lbnQgZnJh
bWVzIHVzaW5nIHJlbGV2YW50IGFwcGxpY2F0aW9uCisgICAgICAgIGNhY2hlIGFyZSBsaXN0ZWQu
IEFwcGxpY2F0aW9uIGNhY2hlIGRldGFpbGVkIHZpZXdzIGNvdWxkIGJlIG9wZW5lZCBmb3IgZWFj
aAorICAgICAgICBmcmFtZS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL2FwcGNh
Y2hlLWlmcmFtZS1tYW5pZmVzdHMuaHRtbAorCisgICAgICAgICogRW5nbGlzaC5scHJvai9sb2Nh
bGl6ZWRTdHJpbmdzLmpzOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3IuanNvbjoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6SW5zcGVjdG9y
QXBwbGljYXRpb25DYWNoZUFnZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFwcGxp
Y2F0aW9uQ2FjaGVBZ2VudDo6dXBkYXRlQXBwbGljYXRpb25DYWNoZVN0YXR1cyk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OmdldEZyYW1lc1dpdGhN
YW5pZmVzdHMpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFn
ZW50OjpnZXRNYW5pZmVzdEZvckZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFw
cGxpY2F0aW9uQ2FjaGVBZ2VudDo6Z2V0QXBwbGljYXRpb25DYWNoZUZvckZyYW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6YnVpbGRPYmplY3RG
b3JBcHBsaWNhdGlvbkNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFwcGxpY2F0
aW9uQ2FjaGVBZ2VudDo6YnVpbGRPYmplY3RGb3JBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UpOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpJbnNwZWN0b3JDb250cm9sbGVyKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL0FwcGxpY2F0aW9uQ2FjaGVJdGVtc1ZpZXcuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZUl0ZW1zVmlldyk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZUl0ZW1zVmlldy5wcm90b3R5cGUuX3VwZGF0ZSk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZUl0ZW1zVmlldy5wcm90b3R5
cGUuX3VwZGF0ZUNhbGxiYWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNh
Y2hlSXRlbXNWaWV3LnByb3RvdHlwZS5fcG9wdWxhdGVEYXRhR3JpZCk6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9BcHBsaWNhdGlvbkNhY2hlTW9kZWwuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZU1vZGVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5B
cHBsaWNhdGlvbkNhY2hlTW9kZWwucHJvdG90eXBlLl9mcmFtZU5hdmlnYXRlZCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZU1vZGVsLnByb3RvdHlwZS5fZnJhbWVEZXRh
Y2hlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZU1vZGVsLnByb3Rv
dHlwZS5fbWFpbkZyYW1lTmF2aWdhdGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BcHBsaWNh
dGlvbkNhY2hlTW9kZWwucHJvdG90eXBlLl9yZXNldCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
QXBwbGljYXRpb25DYWNoZU1vZGVsLnByb3RvdHlwZS5fbWFuaWZlc3RGb3JGcmFtZUxvYWRlZCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZU1vZGVsLnByb3RvdHlwZS5f
ZnJhbWVzV2l0aE1hbmlmZXN0c0xvYWRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXBwbGlj
YXRpb25DYWNoZU1vZGVsLnByb3RvdHlwZS5fZnJhbWVNYW5pZmVzdFVwZGF0ZWQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVNb2RlbC5wcm90b3R5cGUuX2ZyYW1lTWFu
aWZlc3RSZW1vdmVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlTW9k
ZWwucHJvdG90eXBlLmZyYW1lTWFuaWZlc3RVUkwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkFw
cGxpY2F0aW9uQ2FjaGVNb2RlbC5wcm90b3R5cGUuZnJhbWVNYW5pZmVzdFN0YXR1cyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZU1vZGVsLnByb3RvdHlwZS5fc3RhdHVz
VXBkYXRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZU1vZGVsLnBy
b3RvdHlwZS5yZXF1ZXN0QXBwbGljYXRpb25DYWNoZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
QXBwbGljYXRpb25DYWNoZU1vZGVsLnByb3RvdHlwZS5fbmV0d29ya1N0YXRlVXBkYXRlZCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZURpc3BhdGNoZXIucHJvdG90eXBl
LnVwZGF0ZUFwcGxpY2F0aW9uQ2FjaGVTdGF0dXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkFw
cGxpY2F0aW9uQ2FjaGVEaXNwYXRjaGVyLnByb3RvdHlwZS51cGRhdGVOZXR3b3JrU3RhdGUpOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUcmVlTW9kZWwuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwucHJvdG90eXBlLmZyYW1lRm9ySWQp
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlLndhc1Nob3duKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUucmVzZXQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZS5fZnJhbWVOYXZpZ2F0
ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZS5hZGRE
b2N1bWVudFVSTCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90
eXBlLnNob3dBcHBsaWNhdGlvbkNhY2hlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJj
ZXNQYW5lbC5wcm90b3R5cGUuX3BvcHVsYXRlQXBwbGljYXRpb25DYWNoZVRyZWUpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZS5fYXBwbGljYXRpb25DYWNo
ZUZyYW1lTWFuaWZlc3RBZGRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFu
ZWwucHJvdG90eXBlLl9hcHBsaWNhdGlvbkNhY2hlRnJhbWVNYW5pZmVzdFJlbW92ZWQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZS5fYXBwbGljYXRpb25D
YWNoZUZyYW1lTWFuaWZlc3RTdGF0dXNDaGFuZ2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5S
ZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUuX2FwcGxpY2F0aW9uQ2FjaGVOZXR3b3JrU3RhdGVDaGFu
Z2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlTWFuaWZlc3RUcmVl
RWxlbWVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZU1hbmlmZXN0
VHJlZUVsZW1lbnQucHJvdG90eXBlLmdldCBpdGVtVVJMKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5BcHBsaWNhdGlvbkNhY2hlTWFuaWZlc3RUcmVlRWxlbWVudC5wcm90b3R5cGUuZ2V0IG1hbmlm
ZXN0VVJMKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlTWFuaWZlc3RU
cmVlRWxlbWVudC5wcm90b3R5cGUub25zZWxlY3QpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkFw
cGxpY2F0aW9uQ2FjaGVGcmFtZVRyZWVFbGVtZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5B
cHBsaWNhdGlvbkNhY2hlRnJhbWVUcmVlRWxlbWVudC5wcm90b3R5cGUuZ2V0IGl0ZW1VUkwpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVGcmFtZVRyZWVFbGVtZW50LnBy
b3RvdHlwZS5nZXQgZnJhbWVJZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25D
YWNoZUZyYW1lVHJlZUVsZW1lbnQucHJvdG90eXBlLmdldCBtYW5pZmVzdFVSTCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZUZyYW1lVHJlZUVsZW1lbnQucHJvdG90eXBl
Ll9yZWZyZXNoVGl0bGVzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hl
RnJhbWVUcmVlRWxlbWVudC5wcm90b3R5cGUuZnJhbWVOYXZpZ2F0ZWQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVGcmFtZVRyZWVFbGVtZW50LnByb3RvdHlwZS5vbnNl
bGVjdCk6CisKIDIwMTEtMTEtMDkgIEFuZHJlYXMgS2xpbmcgIDxrbGluZ0B3ZWJraXQub3JnPgog
CiAgICAgICAgIFN0eWxlU2hlZXQ6IERldmlydHVhbGl6ZSBzdHlsZVNoZWV0Q2hhbmdlZCgpLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdz
LmpzIGIvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCmlu
ZGV4IGRhZWYyYjkyODI1NWMwMTQ4MmViYTU5Yzc5ZjZjNTcxZTAwM2UwODYuLmMyZmY5NmEzNmUx
NWVmYzY4MzcxOTc5ODBiMTY4ZDQ1ZTM5YWQ5ZjUgMTAwNjQ0CkdJVCBiaW5hcnkgcGF0Y2gKZGVs
dGEgNDgKemNtYUVgb01xUHZtV0N+aTR9PlNyKE5TVHxWQFBFdnBCJEphSWVGZWJIWCNMdUc9P0lF
TTIxfFRzMWshVTB+WjRUCkRzWGgocAoKZGVsdGEgMTEKU2NtZG5CZzV8Ky1tV0N+aTR9PHxCajBH
QTEKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24g
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggZTJhMGMwZGIy
MGU4NmFlNTYyN2MyODExMmFjMzFhODgxYTM1MDY0Yi4uMjE0MDQ5NTMwM2UzOTI0MDhlMzZkMjZi
NDNjZWE5NTE5ZTIxNzY1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNv
bgpAQCAtOTI1LDI0ICs5MjUsNzQgQEAKICAgICAgICAgImhpZGRlbiI6IHRydWUsCiAgICAgICAg
ICJ0eXBlcyI6IFsKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAiaWQiOiAiQXBwQ2Fj
aGUiLAorICAgICAgICAgICAgICAgICJpZCI6ICJBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UiLAog
ICAgICAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCi0gICAgICAgICAgICAgICAgImRlc2Ny
aXB0aW9uIjogIkFwcENhY2hlLiIKKyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRGV0
YWlsZWQgYXBwbGljYXRpb24gY2FjaGUgcmVzb3VyY2UgaW5mb3JtYXRpb24uIiwKKyAgICAgICAg
ICAgICAgICAicHJvcGVydGllcyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ1
cmwiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiUmVzb3VyY2UgdXJsLiIgfSwK
KyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzaXplIiwgInR5cGUiOiAic3RyaW5nIiwg
ImRlc2NyaXB0aW9uIjogIlJlc291cmNlIHNpemUuIiB9LAorICAgICAgICAgICAgICAgICAgICB7
ICJuYW1lIjogInR5cGUiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiUmVzb3Vy
Y2UgdHlwZS4iIH0KKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9LAorICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgICJpZCI6ICJBcHBsaWNhdGlvbkNhY2hlIiwKKyAgICAgICAg
ICAgICAgICAidHlwZSI6ICJvYmplY3QiLAorICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6
ICJEZXRhaWxlZCBhcHBsaWNhdGlvbiBjYWNoZSBpbmZvcm1hdGlvbi4iLAorICAgICAgICAgICAg
ICAgICJwcm9wZXJ0aWVzIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm1hbmlm
ZXN0VVJMIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIk1hbmlmZXN0IFVSTC4i
IH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2l6ZSIsICJ0eXBlIjogIm51bWJl
ciIsICJkZXNjcmlwdGlvbiI6ICJBcHBsaWNhdGlvbiBjYWNoZSBzaXplLiIgfSwKKyAgICAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJjcmVhdGlvblRpbWUiLCAidHlwZSI6ICJudW1iZXIiLCAi
ZGVzY3JpcHRpb24iOiAiQXBwbGljYXRpb24gY2FjaGUgY3JlYXRpb24gdGltZS4iIH0sCisgICAg
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidXBkYXRlVGltZSIsICJ0eXBlIjogIm51bWJlciIs
ICJkZXNjcmlwdGlvbiI6ICJBcHBsaWNhdGlvbiBjYWNoZSB1cGRhdGUgdGltZS4iIH0sCisgICAg
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVzb3VyY2VzIiwgInR5cGUiOiAiYXJyYXkiLCAi
aXRlbXMiOiB7ICIkcmVmIjogIkFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZSIgfSwgImRlc2NyaXB0
aW9uIjogIkFwcGxpY2F0aW9uIGNhY2hlIHJlc291cmNlcy4iIH0KKyAgICAgICAgICAgICAgICBd
CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJpZCI6ICJG
cmFtZVdpdGhNYW5pZmVzdCIsCisgICAgICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKKyAg
ICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRnJhbWUgaWRlbnRpZmllciAtIG1hbmlmZXN0
IFVSTCBwYWlyLiIsCisgICAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCisgICAgICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAiZnJhbWVJZCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlw
dGlvbiI6ICJGcmFtZSBpZGVudGlmaWVyLiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJtYW5pZmVzdFVSTCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJNYW5p
ZmVzdCBVUkwuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInN0YXR1cyIsICJ0
eXBlIjogImludGVnZXIiLCAiZGVzY3JpcHRpb24iOiAiQXBwbGljYXRpb24gY2FjaGUgc3RhdHVz
LiIgfQorICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgIH0KICAgICAgICAgXSwKICAgICAg
ICAgImNvbW1hbmRzIjogWwogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICJuYW1lIjog
ImdldEFwcGxpY2F0aW9uQ2FjaGVzIiwKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJnZXRGcmFt
ZXNXaXRoTWFuaWZlc3RzIiwKICAgICAgICAgICAgICAgICAicmV0dXJucyI6IFsKLSAgICAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJhcHBsaWNhdGlvbkNhY2hlcyIsICIkcmVmIjogIkFwcENh
Y2hlIiB9Ci0gICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImZyYW1lSWRzIiwgInR5cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7ICIkcmVmIjogIkZyYW1lV2l0
aE1hbmlmZXN0IiB9LCAiZGVzY3JpcHRpb24iOiAiQXJyYXkgb2YgZnJhbWUgaWRlbnRpZmllcnMg
d2l0aCBtYW5pZmVzdCB1cmxzIGZvciBlYWNoIGZyYW1lIGNvbnRhaW5pbmcgYSBkb2N1bWVudCBh
c3NvY2lhdGVkIHdpdGggc29tZSBhcHBsaWNhdGlvbiBjYWNoZS4iIH0KKyAgICAgICAgICAgICAg
ICBdLAorICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIGFycmF5IG9mIGZy
YW1lIGlkZW50aWZpZXJzIHdpdGggbWFuaWZlc3QgdXJscyBmb3IgZWFjaCBmcmFtZSBjb250YWlu
aW5nIGEgZG9jdW1lbnQgYXNzb2NpYXRlZCB3aXRoIHNvbWUgYXBwbGljYXRpb24gY2FjaGUuIgor
ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJn
ZXRNYW5pZmVzdEZvckZyYW1lIiwKKyAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJmcmFtZUlkIiwgInR5cGUiOiAic3RyaW5nIiwg
ImRlc2NyaXB0aW9uIjogIklkZW50aWZpZXIgb2YgdGhlIGZyYW1lIGNvbnRhaW5pbmcgZG9jdW1l
bnQgd2hvc2UgbWFuaWZlc3QgaXMgcmV0cmlldmVkLiIgfQorICAgICAgICAgICAgICAgIF0sCisg
ICAgICAgICAgICAgICAgInJldHVybnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAibWFuaWZlc3RVUkwiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiTWFuaWZl
c3QgVVJMIGZvciBkb2N1bWVudCBpbiB0aGUgZ2l2ZW4gZnJhbWUuIiB9CisgICAgICAgICAgICAg
ICAgXSwKKyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBtYW5pZmVzdCBV
UkwgZm9yIGRvY3VtZW50IGluIHRoZSBnaXZlbiBmcmFtZS4iCisgICAgICAgICAgICB9LAorICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogImdldEFwcGxpY2F0aW9uQ2FjaGVG
b3JGcmFtZSIsCisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAiZnJhbWVJZCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlv
biI6ICJJZGVudGlmaWVyIG9mIHRoZSBmcmFtZSBjb250YWluaW5nIGRvY3VtZW50IHdob3NlIGFw
cGxpY2F0aW9uIGNhY2hlIGlzIHJldHJpZXZlZC4iIH0KKyAgICAgICAgICAgICAgICBdLAorICAg
ICAgICAgICAgICAgICJyZXR1cm5zIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImFwcGxpY2F0aW9uQ2FjaGUiLCAiJHJlZiI6ICJBcHBsaWNhdGlvbkNhY2hlIiwgImRlc2NyaXB0
aW9uIjogIlJlbGV2YW50IGFwcGxpY2F0aW9uIGNhY2hlIGRhdGEgZm9yIHRoZSBkb2N1bWVudCBp
biBnaXZlbiBmcmFtZS4iIH0KKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICJk
ZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHJlbGV2YW50IGFwcGxpY2F0aW9uIGNhY2hlIGRhdGEgZm9y
IHRoZSBkb2N1bWVudCBpbiBnaXZlbiBmcmFtZS4iCiAgICAgICAgICAgICB9CiAgICAgICAgIF0s
CiAgICAgICAgICJldmVudHMiOiBbCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIm5h
bWUiOiAidXBkYXRlQXBwbGljYXRpb25DYWNoZVN0YXR1cyIsCiAgICAgICAgICAgICAgICAgInBh
cmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3RhdHVzIiwgInR5
cGUiOiAiaW50ZWdlciIgfQorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZyYW1lSWQi
LCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiSWRlbnRpZmllciBvZiB0aGUgZnJh
bWUgY29udGFpbmluZyBkb2N1bWVudCB3aG9zZSBhcHBsaWNhdGlvbiBjYWNoZSB1cGRhdGVkIHN0
YXR1cy4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibWFuaWZlc3RVUkwiLCAi
dHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiTWFuaWZlc3QgVVJMLiIgfSwKKyAgICAg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzdGF0dXMiLCAidHlwZSI6ICJpbnRlZ2VyIiwgImRl
c2NyaXB0aW9uIjogIlVwZGF0ZWQgYXBwbGljYXRpb24gY2FjaGUgc3RhdHVzLiIgfQogICAgICAg
ICAgICAgICAgIF0KICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdl
bnQuY3BwCmluZGV4IDA1YTM1OTNkNjM0ZjFkZjZhYTQ0YmE5Nzc3ZDJhY2U2NmI4ZjEzZWEuLjE1
MDFlZDYxZjNiYTM4YzhjZWEwYWQyYTE1YzIyMjFhNjU0NWNmYmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdl
bnQuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNs
dWRlICJJbnNwZWN0b3JBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCisj
aW5jbHVkZSAiSW5zcGVjdG9yUGFnZUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yVmFsdWVz
LmgiCiAjaW5jbHVkZSAiSW5zdHJ1bWVudGluZ0FnZW50cy5oIgogI2luY2x1ZGUgIk5ldHdvcmtT
dGF0ZU5vdGlmaWVyLmgiCkBAIC00Miw5ICs0Myw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50OjpJbnNwZWN0b3JBcHBsaWNhdGlvbkNh
Y2hlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgUGFnZSog
aW5zcGVjdGVkUGFnZSkKK0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6SW5zcGVjdG9y
QXBwbGljYXRpb25DYWNoZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdB
Z2VudHMsIEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50KQogICAgIDogbV9pbnN0cnVtZW50
aW5nQWdlbnRzKGluc3RydW1lbnRpbmdBZ2VudHMpCi0gICAgLCBtX2luc3BlY3RlZFBhZ2UoaW5z
cGVjdGVkUGFnZSkKKyAgICAsIG1fcGFnZUFnZW50KHBhZ2VBZ2VudCkKICAgICAsIG1fZnJvbnRl
bmQoMCkKIHsKIH0KQEAgLTYzLDggKzY0LDE2IEBAIHZvaWQgSW5zcGVjdG9yQXBwbGljYXRpb25D
YWNoZUFnZW50OjpjbGVhckZyb250ZW5kKCkKIAogdm9pZCBJbnNwZWN0b3JBcHBsaWNhdGlvbkNh
Y2hlQWdlbnQ6OnVwZGF0ZUFwcGxpY2F0aW9uQ2FjaGVTdGF0dXMoRnJhbWUqIGZyYW1lKQogewot
ICAgIEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpTdGF0dXMgc3RhdHVzID0gZnJhbWUtPmxvYWRlcigp
LT5kb2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLT5zdGF0dXMoKTsKLSAg
ICBtX2Zyb250ZW5kLT51cGRhdGVBcHBsaWNhdGlvbkNhY2hlU3RhdHVzKHN0YXR1cyk7CisgICAg
RG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyID0gZnJhbWUtPmxvYWRlcigpLT5kb2N1bWVu
dExvYWRlcigpOworICAgIGlmICghZG9jdW1lbnRMb2FkZXIpCisgICAgICAgIHJldHVybjsKKwor
ICAgIEFwcGxpY2F0aW9uQ2FjaGVIb3N0KiBob3N0ID0gZG9jdW1lbnRMb2FkZXItPmFwcGxpY2F0
aW9uQ2FjaGVIb3N0KCk7CisgICAgQXBwbGljYXRpb25DYWNoZUhvc3Q6OlN0YXR1cyBzdGF0dXMg
PSBob3N0LT5zdGF0dXMoKTsKKyAgICBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6Q2FjaGVJbmZvIGlu
Zm8gPSBob3N0LT5hcHBsaWNhdGlvbkNhY2hlSW5mbygpOworCisgICAgU3RyaW5nIG1hbmlmZXN0
VVJMID0gaW5mby5tX21hbmlmZXN0LnN0cmluZygpOworICAgIG1fZnJvbnRlbmQtPnVwZGF0ZUFw
cGxpY2F0aW9uQ2FjaGVTdGF0dXMobV9wYWdlQWdlbnQtPmZyYW1lSWQoZnJhbWUpLCBtYW5pZmVz
dFVSTCwgc3RhdHVzKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6
Om5ldHdvcmtTdGF0ZUNoYW5nZWQoKQpAQCAtNzMsMjUgKzgyLDc3IEBAIHZvaWQgSW5zcGVjdG9y
QXBwbGljYXRpb25DYWNoZUFnZW50OjpuZXR3b3JrU3RhdGVDaGFuZ2VkKCkKICAgICBtX2Zyb250
ZW5kLT51cGRhdGVOZXR3b3JrU3RhdGUoaXNOb3dPbmxpbmUpOwogfQogCi12b2lkIEluc3BlY3Rv
ckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6Z2V0QXBwbGljYXRpb25DYWNoZXMoRXJyb3JTdHJpbmcq
LCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogYXBwbGljYXRpb25DYWNoZXMpCisKK3ZvaWQgSW5z
cGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50OjpnZXRGcmFtZXNXaXRoTWFuaWZlc3RzKEVycm9y
U3RyaW5nKiwgUmVmUHRyPEluc3BlY3RvckFycmF5PiogcmVzdWx0KQogewotICAgIERvY3VtZW50
TG9hZGVyKiBkb2N1bWVudExvYWRlciA9IG1faW5zcGVjdGVkUGFnZS0+bWFpbkZyYW1lKCktPmxv
YWRlcigpLT5kb2N1bWVudExvYWRlcigpOwotICAgIGlmICghZG9jdW1lbnRMb2FkZXIpCisgICAg
KnJlc3VsdCA9IEluc3BlY3RvckFycmF5OjpjcmVhdGUoKTsKKworICAgIEZyYW1lKiBtYWluRnJh
bWUgPSBtX3BhZ2VBZ2VudC0+bWFpbkZyYW1lKCk7CisgICAgZm9yIChGcmFtZSogZnJhbWUgPSBt
YWluRnJhbWU7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCktPnRyYXZlcnNlTmV4dChtYWlu
RnJhbWUpKSB7CisgICAgICAgIERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlciA9IGZyYW1l
LT5sb2FkZXIoKS0+ZG9jdW1lbnRMb2FkZXIoKTsKKyAgICAgICAgaWYgKCFkb2N1bWVudExvYWRl
cikKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIEFwcGxpY2F0aW9uQ2FjaGVIb3N0
KiBob3N0ID0gZG9jdW1lbnRMb2FkZXItPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCk7CisgICAgICAg
IEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpDYWNoZUluZm8gaW5mbyA9IGhvc3QtPmFwcGxpY2F0aW9u
Q2FjaGVJbmZvKCk7CisgICAgICAgIFN0cmluZyBtYW5pZmVzdFVSTCA9IGluZm8ubV9tYW5pZmVz
dC5zdHJpbmcoKTsKKyAgICAgICAgaWYgKCFtYW5pZmVzdFVSTC5pc0VtcHR5KCkpIHsKKyAgICAg
ICAgICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHZhbHVlID0gSW5zcGVjdG9yT2JqZWN0Ojpj
cmVhdGUoKTsKKyAgICAgICAgICAgIHZhbHVlLT5zZXRTdHJpbmcoImZyYW1lSWQiLCBtX3BhZ2VB
Z2VudC0+ZnJhbWVJZChmcmFtZSkpOworICAgICAgICAgICAgdmFsdWUtPnNldFN0cmluZygibWFu
aWZlc3RVUkwiLCBtYW5pZmVzdFVSTCk7CisgICAgICAgICAgICB2YWx1ZS0+c2V0TnVtYmVyKCJz
dGF0dXMiLCBob3N0LT5zdGF0dXMoKSk7CisgICAgICAgICAgICAoKnJlc3VsdCktPnB1c2hPYmpl
Y3QodmFsdWUpOworICAgICAgICB9CisgICAgfQorfQorCit2b2lkIEluc3BlY3RvckFwcGxpY2F0
aW9uQ2FjaGVBZ2VudDo6Z2V0TWFuaWZlc3RGb3JGcmFtZShFcnJvclN0cmluZyogZXJyb3JTdHJp
bmcsIGNvbnN0IFN0cmluZyYgZnJhbWVJZCwgU3RyaW5nKiBtYW5pZmVzdFVSTCkKK3sKKyAgICBG
cmFtZSogZnJhbWUgPSBtX3BhZ2VBZ2VudC0+ZnJhbWVGb3JJZChmcmFtZUlkKTsKKyAgICBpZiAo
IWZyYW1lKSB7CisgICAgICAgICplcnJvclN0cmluZyA9ICJObyBmcmFtZSBmb3IgZ2l2ZW4gaWQg
Zm91bmQiOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgRG9jdW1lbnRMb2FkZXIqIGRv
Y3VtZW50TG9hZGVyID0gZnJhbWUtPmxvYWRlcigpLT5kb2N1bWVudExvYWRlcigpOworICAgIGlm
ICghZG9jdW1lbnRMb2FkZXIpIHsKKyAgICAgICAgKmVycm9yU3RyaW5nID0gIk5vIGRvY3VtZW50
TG9hZGVyIGZvciBnaXZlbiBmcmFtZSBmb3VuZCI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBBcHBsaWNhdGlvbkNhY2hlSG9zdCogaG9zdCA9IGRvY3VtZW50TG9hZGVyLT5hcHBsaWNh
dGlvbkNhY2hlSG9zdCgpOworICAgIEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpDYWNoZUluZm8gaW5m
byA9IGhvc3QtPmFwcGxpY2F0aW9uQ2FjaGVJbmZvKCk7CisgICAgKm1hbmlmZXN0VVJMID0gaW5m
by5tX21hbmlmZXN0LnN0cmluZygpOworfQorCit2b2lkIEluc3BlY3RvckFwcGxpY2F0aW9uQ2Fj
aGVBZ2VudDo6Z2V0QXBwbGljYXRpb25DYWNoZUZvckZyYW1lKEVycm9yU3RyaW5nKiBlcnJvclN0
cmluZywgY29uc3QgU3RyaW5nJiBmcmFtZUlkLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogYXBw
bGljYXRpb25DYWNoZSkKK3sKKyAgICBGcmFtZSogZnJhbWUgPSBtX3BhZ2VBZ2VudC0+ZnJhbWVG
b3JJZChmcmFtZUlkKTsKKyAgICBpZiAoIWZyYW1lKSB7CisgICAgICAgICplcnJvclN0cmluZyA9
ICJObyBmcmFtZSBmb3IgZ2l2ZW4gaWQgZm91bmQiOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyID0gZnJhbWUtPmxvYWRlcigpLT5k
b2N1bWVudExvYWRlcigpOworICAgIGlmICghZG9jdW1lbnRMb2FkZXIpIHsKKyAgICAgICAgKmVy
cm9yU3RyaW5nID0gIk5vIGRvY3VtZW50TG9hZGVyIGZvciBnaXZlbiBmcmFtZSBmb3VuZCI7CiAg
ICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBBcHBsaWNhdGlvbkNhY2hlSG9zdCogaG9zdCA9
IGRvY3VtZW50TG9hZGVyLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpOwogICAgIEFwcGxpY2F0aW9u
Q2FjaGVIb3N0OjpDYWNoZUluZm8gaW5mbyA9IGhvc3QtPmFwcGxpY2F0aW9uQ2FjaGVJbmZvKCk7
CiAKICAgICBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6UmVzb3VyY2VJbmZvTGlzdCByZXNvdXJjZXM7
CiAgICAgaG9zdC0+ZmlsbFJlc291cmNlTGlzdCgmcmVzb3VyY2VzKTsKLSAgICAqYXBwbGljYXRp
b25DYWNoZXMgPSBidWlsZE9iamVjdEZvckFwcGxpY2F0aW9uQ2FjaGUocmVzb3VyY2VzLCBpbmZv
KTsKKworICAgICphcHBsaWNhdGlvbkNhY2hlID0gYnVpbGRPYmplY3RGb3JBcHBsaWNhdGlvbkNh
Y2hlKHJlc291cmNlcywgaW5mbyk7CiB9CiAKIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBJ
bnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yQXBwbGljYXRpb25D
YWNoZShjb25zdCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6UmVzb3VyY2VJbmZvTGlzdCYgYXBwbGlj
YXRpb25DYWNoZVJlc291cmNlcywgY29uc3QgQXBwbGljYXRpb25DYWNoZUhvc3Q6OkNhY2hlSW5m
byYgYXBwbGljYXRpb25DYWNoZUluZm8pCiB7CiAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4g
dmFsdWUgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwogICAgIHZhbHVlLT5zZXROdW1iZXIo
InNpemUiLCBhcHBsaWNhdGlvbkNhY2hlSW5mby5tX3NpemUpOwotICAgIHZhbHVlLT5zZXRTdHJp
bmcoIm1hbmlmZXN0IiwgYXBwbGljYXRpb25DYWNoZUluZm8ubV9tYW5pZmVzdC5zdHJpbmcoKSk7
Ci0gICAgdmFsdWUtPnNldFN0cmluZygibGFzdFBhdGhDb21wb25lbnQiLCBhcHBsaWNhdGlvbkNh
Y2hlSW5mby5tX21hbmlmZXN0Lmxhc3RQYXRoQ29tcG9uZW50KCkpOworICAgIHZhbHVlLT5zZXRT
dHJpbmcoIm1hbmlmZXN0VVJMIiwgYXBwbGljYXRpb25DYWNoZUluZm8ubV9tYW5pZmVzdC5zdHJp
bmcoKSk7CiAgICAgdmFsdWUtPnNldE51bWJlcigiY3JlYXRpb25UaW1lIiwgYXBwbGljYXRpb25D
YWNoZUluZm8ubV9jcmVhdGlvblRpbWUpOwogICAgIHZhbHVlLT5zZXROdW1iZXIoInVwZGF0ZVRp
bWUiLCBhcHBsaWNhdGlvbkNhY2hlSW5mby5tX3VwZGF0ZVRpbWUpOwogICAgIHZhbHVlLT5zZXRB
cnJheSgicmVzb3VyY2VzIiwgYnVpbGRBcnJheUZvckFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZXMo
YXBwbGljYXRpb25DYWNoZVJlc291cmNlcykpOwpAQCAtMTEzLDcgKzE3NCw3IEBAIFBhc3NSZWZQ
dHI8SW5zcGVjdG9yQXJyYXk+IEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6YnVpbGRB
cnJheUZvckFwcGxpY2F0CiBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gSW5zcGVjdG9yQXBw
bGljYXRpb25DYWNoZUFnZW50OjpidWlsZE9iamVjdEZvckFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJj
ZShjb25zdCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6UmVzb3VyY2VJbmZvJiByZXNvdXJjZUluZm8p
CiB7CiAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gdmFsdWUgPSBJbnNwZWN0b3JPYmplY3Q6
OmNyZWF0ZSgpOwotICAgIHZhbHVlLT5zZXRTdHJpbmcoIm5hbWUiLCByZXNvdXJjZUluZm8ubV9y
ZXNvdXJjZS5zdHJpbmcoKSk7CisgICAgdmFsdWUtPnNldFN0cmluZygidXJsIiwgcmVzb3VyY2VJ
bmZvLm1fcmVzb3VyY2Uuc3RyaW5nKCkpOwogICAgIHZhbHVlLT5zZXROdW1iZXIoInNpemUiLCBy
ZXNvdXJjZUluZm8ubV9zaXplKTsKIAogICAgIFN0cmluZyB0eXBlczsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQu
aAppbmRleCA1YjM3Nzg4ODIwOGEyYmI1NzcwODgxMDk0YjdiMjFkNmRjMTA5NmVhLi4xYTZlMDM4
NDA2YThlMjhmMTkzMTMyYWI4ZmE3NTg1MjQ1OThiZTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oCkBA
IC0zOSw2ICszOSw3IEBAIGNsYXNzIEluc3BlY3RvckFycmF5OwogY2xhc3MgSW5zcGVjdG9yQWdl
bnQ7CiBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZDsKIGNsYXNzIEluc3BlY3Rvck9iamVjdDsKK2Ns
YXNzIEluc3BlY3RvclBhZ2VBZ2VudDsKIGNsYXNzIEluc3BlY3RvclZhbHVlOwogY2xhc3MgSW5z
dHJ1bWVudGluZ0FnZW50czsKIGNsYXNzIFBhZ2U7CkBAIC00OSw3ICs1MCw3IEBAIHR5cGVkZWYg
U3RyaW5nIEVycm9yU3RyaW5nOwogY2xhc3MgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50
IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdl
bnQpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBJbnNwZWN0b3JBcHBs
aWNhdGlvbkNhY2hlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIFBhZ2UqKTsKKyAgICBJbnNw
ZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3Rv
clBhZ2VBZ2VudCopOwogICAgIH5JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQoKSB7IH0K
IAogICAgIHZvaWQgc2V0RnJvbnRlbmQoSW5zcGVjdG9yRnJvbnRlbmQqKTsKQEAgLTYwLDcgKzYx
LDkgQEAgcHVibGljOgogICAgIHZvaWQgbmV0d29ya1N0YXRlQ2hhbmdlZCgpOwogCiAgICAgLy8g
RnJvbSBGcm9udGVuZAotICAgIHZvaWQgZ2V0QXBwbGljYXRpb25DYWNoZXMoRXJyb3JTdHJpbmcq
LCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogYXBwbGljYXRpb25DYWNoZXMpOworICAgIHZvaWQg
Z2V0RnJhbWVzV2l0aE1hbmlmZXN0cyhFcnJvclN0cmluZyosIFJlZlB0cjxJbnNwZWN0b3JBcnJh
eT4qIHJlc3VsdCk7CisgICAgdm9pZCBnZXRNYW5pZmVzdEZvckZyYW1lKEVycm9yU3RyaW5nKiwg
Y29uc3QgU3RyaW5nJiBmcmFtZUlkLCBTdHJpbmcqIG1hbmlmZXN0VVJMKTsKKyAgICB2b2lkIGdl
dEFwcGxpY2F0aW9uQ2FjaGVGb3JGcmFtZShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgZnJh
bWVJZCwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIGFwcGxpY2F0aW9uQ2FjaGUpOwogCiBwcml2
YXRlOgogICAgIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBidWlsZE9iamVjdEZvckFwcGxp
Y2F0aW9uQ2FjaGUoY29uc3QgQXBwbGljYXRpb25DYWNoZUhvc3Q6OlJlc291cmNlSW5mb0xpc3Qm
LCBjb25zdCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6Q2FjaGVJbmZvJik7CkBAIC02OCw3ICs3MSw3
IEBAIHByaXZhdGU6CiAgICAgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJ1aWxkT2JqZWN0
Rm9yQXBwbGljYXRpb25DYWNoZVJlc291cmNlKGNvbnN0IEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpS
ZXNvdXJjZUluZm8mKTsKIAogICAgIEluc3RydW1lbnRpbmdBZ2VudHMqIG1faW5zdHJ1bWVudGlu
Z0FnZW50czsKLSAgICBQYWdlKiBtX2luc3BlY3RlZFBhZ2U7CisgICAgSW5zcGVjdG9yUGFnZUFn
ZW50KiBtX3BhZ2VBZ2VudDsKICAgICBJbnNwZWN0b3JGcm9udGVuZDo6QXBwbGljYXRpb25DYWNo
ZSogbV9mcm9udGVuZDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCA4MjUzNDhlNmU3MDU1YjRlZDg5NThjODI1MjE5Yjk4
ZGJkNjBiODdkLi45ZmEyNWUxMDgxZGU0ZTg4MWYyMDFkMGQ0NWRmNGZiZDM4Y2EyMGEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBA
IC0xMDYsNyArMTA2LDcgQEAgSW5zcGVjdG9yQ29udHJvbGxlcjo6SW5zcGVjdG9yQ29udHJvbGxl
cihQYWdlKiBwYWdlLCBJbnNwZWN0b3JDbGllbnQqIGluc3BlY3RvckMKICNlbmRpZgogICAgICwg
bV9kb21TdG9yYWdlQWdlbnQoSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpjcmVhdGUobV9pbnN0
cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLmdldCgpKSkKICAgICAsIG1fdGltZWxpbmVB
Z2VudChJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRz
LmdldCgpLCBtX3N0YXRlLmdldCgpKSkKLSAgICAsIG1fYXBwbGljYXRpb25DYWNoZUFnZW50KGFk
b3B0UHRyKG5ldyBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQobV9pbnN0cnVtZW50aW5n
QWdlbnRzLmdldCgpLCBwYWdlKSkpCisgICAgLCBtX2FwcGxpY2F0aW9uQ2FjaGVBZ2VudChhZG9w
dFB0cihuZXcgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50KG1faW5zdHJ1bWVudGluZ0Fn
ZW50cy5nZXQoKSwgbV9wYWdlQWdlbnQuZ2V0KCkpKSkKICAgICAsIG1fcmVzb3VyY2VBZ2VudChJ
bnNwZWN0b3JSZXNvdXJjZUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgp
LCBtX3BhZ2VBZ2VudC5nZXQoKSwgaW5zcGVjdG9yQ2xpZW50LCBtX3N0YXRlLmdldCgpKSkKICAg
ICAsIG1fcnVudGltZUFnZW50KGFkb3B0UHRyKG5ldyBQYWdlUnVudGltZUFnZW50KG1faW5zdHJ1
bWVudGluZ0FnZW50cy5nZXQoKSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCksIHBhZ2Us
IG1fcGFnZUFnZW50LmdldCgpKSkpCiAgICAgLCBtX2NvbnNvbGVBZ2VudChhZG9wdFB0cihuZXcg
SW5zcGVjdG9yQ29uc29sZUFnZW50KG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9pbnNw
ZWN0b3JBZ2VudC5nZXQoKSwgbV9zdGF0ZS5nZXQoKSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIu
Z2V0KCksIG1fZG9tQWdlbnQuZ2V0KCkpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvQXBwbGljYXRpb25DYWNoZUl0ZW1zVmlldy5qcyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXBwbGljYXRpb25DYWNoZUl0ZW1zVmlldy5qcwpp
bmRleCBhNzhlMTc0NGUxZjYzMjc4ODZkNDE0YzAyMWJjNjgwZWMxNzBiNDM0Li5kNGVlMTgyMjk1
MzI0ODM0NmNiOTE4YWE0NzQ2ZDA1YTY4NDY0MmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0FwcGxpY2F0aW9uQ2FjaGVJdGVtc1ZpZXcuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BcHBsaWNhdGlvbkNhY2hlSXRlbXNW
aWV3LmpzCkBAIC0yNyw3ICsyNyw3IEBACiAgKiBAY29uc3RydWN0b3IKICAqIEBleHRlbmRzIHtX
ZWJJbnNwZWN0b3IuVmlld30KICAqLwotV2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVJdGVt
c1ZpZXcgPSBmdW5jdGlvbihtb2RlbCwgdHJlZUVsZW1lbnQsIGFwcGNhY2hlRG9tYWluKQorV2Vi
SW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVJdGVtc1ZpZXcgPSBmdW5jdGlvbihtb2RlbCwgZnJh
bWVJZCwgc3RhdHVzKQogewogICAgIFdlYkluc3BlY3Rvci5WaWV3LmNhbGwodGhpcyk7CiAgICAg
CkBAIC02NCwxMyArNjQsMTIgQEAgV2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVJdGVtc1Zp
ZXcgPSBmdW5jdGlvbihtb2RlbCwgdHJlZUVsZW1lbnQsIGFwcGNhY2hlRG8KICAgICB0aGlzLnN0
YXR1c01lc3NhZ2UuY2xhc3NOYW1lID0gInN0b3JhZ2UtYXBwbGljYXRpb24tY2FjaGUtc3RhdHVz
IjsKICAgICB0aGlzLnN0YXR1c01lc3NhZ2UudGV4dENvbnRlbnQgPSAiIjsKIAotICAgIHRoaXMu
X3RyZWVFbGVtZW50ID0gdHJlZUVsZW1lbnQ7Ci0gICAgdGhpcy5fYXBwY2FjaGVEb21haW4gPSBh
cHBjYWNoZURvbWFpbjsKKyAgICB0aGlzLl9mcmFtZUlkID0gZnJhbWVJZDsKIAogICAgIHRoaXMu
X2VtcHR5VmlldyA9IG5ldyBXZWJJbnNwZWN0b3IuRW1wdHlWaWV3KFdlYkluc3BlY3Rvci5VSVN0
cmluZygiTm8gQXBwbGljYXRpb24gQ2FjaGUgaW5mb3JtYXRpb24gYXZhaWxhYmxlLiIpKTsKICAg
ICB0aGlzLl9lbXB0eVZpZXcuc2hvdyh0aGlzLmVsZW1lbnQpOwogCi0gICAgdGhpcy51cGRhdGVT
dGF0dXMoYXBwbGljYXRpb25DYWNoZS5VTkNBQ0hFRCk7CisgICAgdGhpcy51cGRhdGVTdGF0dXMo
c3RhdHVzKTsKIAogICAgIC8vIEZJWE1FOiBTdGF0dXMgYmFyIGl0ZW1zIGRvbid0IHdvcmsgd2Vs
bCBlbm91Z2ggeWV0LCBzbyB0aGV5IGFyZSBiZWluZyBoaWRkZW4uCiAgICAgLy8gaHR0cDovL3dl
YmtpdC5vcmcvYi80MTYzNyBXZWIgSW5zcGVjdG9yOiBHaXZlIFNlbWFudGljcyB0byAiUmVmcmVz
aCIgYW5kICJEZWxldGUiIEJ1dHRvbnMgaW4gQXBwbGljYXRpb25DYWNoZSBEYXRhR3JpZApAQCAt
MTE2LDYgKzExNSw5IEBAIFdlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlSXRlbXNWaWV3LnBy
b3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5kZWxldGVCdXR0b24udmlzaWJsZSA9IGZhbHNlOwog
ICAgIH0sCiAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge251bWJlcn0gc3RhdHVzCisgICAgICov
CiAgICAgdXBkYXRlU3RhdHVzOiBmdW5jdGlvbihzdGF0dXMpCiAgICAgewogICAgICAgICB2YXIg
c3RhdHVzSW5mb3JtYXRpb24gPSB7fTsKQEAgLTEzNiw2ICsxMzgsOSBAQCBXZWJJbnNwZWN0b3Iu
QXBwbGljYXRpb25DYWNoZUl0ZW1zVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuc3Rh
dHVzTWVzc2FnZS50ZXh0Q29udGVudCA9IGluZm8udGV4dDsKICAgICB9LAogCisgICAgLyoqCisg
ICAgICogQHBhcmFtIHtib29sZWFufSBpc05vd09ubGluZQorICAgICAqLwogICAgIHVwZGF0ZU5l
dHdvcmtTdGF0ZTogZnVuY3Rpb24oaXNOb3dPbmxpbmUpCiAgICAgewogICAgICAgICBpZiAoUHJl
ZmVyZW5jZXMub25saW5lRGV0ZWN0aW9uRW5hYmxlZCkgewpAQCAtMTUxLDIxICsxNTYsMTUgQEAg
V2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVJdGVtc1ZpZXcucHJvdG90eXBlID0gewogCiAg
ICAgX3VwZGF0ZTogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgdGhpcy5fbW9kZWwuZ2V0QXBw
bGljYXRpb25DYWNoZXNBc3luYyh0aGlzLl91cGRhdGVDYWxsYmFjay5iaW5kKHRoaXMpKTsKKyAg
ICAgICAgdGhpcy5fbW9kZWwucmVxdWVzdEFwcGxpY2F0aW9uQ2FjaGUodGhpcy5fZnJhbWVJZCwg
dGhpcy5fdXBkYXRlQ2FsbGJhY2suYmluZCh0aGlzKSk7CiAgICAgfSwKIAotICAgIF91cGRhdGVD
YWxsYmFjazogZnVuY3Rpb24oYXBwbGljYXRpb25DYWNoZXMpCisgICAgLyoqCisgICAgICogQHBh
cmFtIHtPYmplY3R9IGFwcGxpY2F0aW9uQ2FjaGUKKyAgICAgKi8KKyAgICBfdXBkYXRlQ2FsbGJh
Y2s6IGZ1bmN0aW9uKGFwcGxpY2F0aW9uQ2FjaGUpCiAgICAgewotICAgICAgICAvLyBGSVhNRTog
YXBwbGljYXRpb25DYWNoZXMgaXMganVzdCBvbmUgY2FjaGUuCi0gICAgICAgIC8vIEZJWE1FOiBh
cmUgdGhlc2UgdmFyaWFibGVzIG5lZWRlZCBhbnl3aGVyZSBlbHNlPwotICAgICAgICB0aGlzLl9t
YW5pZmVzdCA9IGFwcGxpY2F0aW9uQ2FjaGVzLm1hbmlmZXN0OwotICAgICAgICB0aGlzLl9jcmVh
dGlvblRpbWUgPSBhcHBsaWNhdGlvbkNhY2hlcy5jcmVhdGlvblRpbWU7Ci0gICAgICAgIHRoaXMu
X3VwZGF0ZVRpbWUgPSBhcHBsaWNhdGlvbkNhY2hlcy51cGRhdGVUaW1lOwotICAgICAgICB0aGlz
Ll9zaXplID0gYXBwbGljYXRpb25DYWNoZXMuc2l6ZTsKLSAgICAgICAgdGhpcy5fcmVzb3VyY2Vz
ID0gYXBwbGljYXRpb25DYWNoZXMucmVzb3VyY2VzOwotICAgICAgICB2YXIgbGFzdFBhdGhDb21w
b25lbnQgPSBhcHBsaWNhdGlvbkNhY2hlcy5sYXN0UGF0aENvbXBvbmVudDsKLQotICAgICAgICBp
ZiAoIXRoaXMuX21hbmlmZXN0KSB7CisgICAgICAgIGlmICghYXBwbGljYXRpb25DYWNoZSB8fCAh
YXBwbGljYXRpb25DYWNoZS5tYW5pZmVzdFVSTCkgewogICAgICAgICAgICAgdGhpcy5fZW1wdHlW
aWV3LnNob3codGhpcy5lbGVtZW50KTsKICAgICAgICAgICAgIHRoaXMuZGVsZXRlQnV0dG9uLnZp
c2libGUgPSBmYWxzZTsKICAgICAgICAgICAgIGlmICh0aGlzLl9kYXRhR3JpZCkKQEAgLTE3Myw2
ICsxNzIsMTUgQEAgV2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVJdGVtc1ZpZXcucHJvdG90
eXBlID0gewogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKKyAgICAgICAgLy8gRklY
TUU6IGFwcGxpY2F0aW9uQ2FjaGVzIGlzIGp1c3Qgb25lIGNhY2hlLgorICAgICAgICAvLyBGSVhN
RTogYXJlIHRoZXNlIHZhcmlhYmxlcyBuZWVkZWQgYW55d2hlcmUgZWxzZT8KKyAgICAgICAgdGhp
cy5fbWFuaWZlc3QgPSBhcHBsaWNhdGlvbkNhY2hlLm1hbmlmZXN0VVJMOworICAgICAgICB0aGlz
Ll9jcmVhdGlvblRpbWUgPSBhcHBsaWNhdGlvbkNhY2hlLmNyZWF0aW9uVGltZTsKKyAgICAgICAg
dGhpcy5fdXBkYXRlVGltZSA9IGFwcGxpY2F0aW9uQ2FjaGUudXBkYXRlVGltZTsKKyAgICAgICAg
dGhpcy5fc2l6ZSA9IGFwcGxpY2F0aW9uQ2FjaGUuc2l6ZTsKKyAgICAgICAgdGhpcy5fcmVzb3Vy
Y2VzID0gYXBwbGljYXRpb25DYWNoZS5yZXNvdXJjZXM7CisgICAgICAgIHZhciBsYXN0UGF0aENv
bXBvbmVudCA9IGFwcGxpY2F0aW9uQ2FjaGUubGFzdFBhdGhDb21wb25lbnQ7CisKICAgICAgICAg
aWYgKCF0aGlzLl9kYXRhR3JpZCkKICAgICAgICAgICAgIHRoaXMuX2NyZWF0ZURhdGFHcmlkKCk7
CiAKQEAgLTE4Miw5ICsxOTAsNiBAQCBXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZUl0ZW1z
Vmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX2VtcHR5Vmlldy5kZXRhY2goKTsKICAg
ICAgICAgdGhpcy5kZWxldGVCdXR0b24udmlzaWJsZSA9IHRydWU7CiAKLSAgICAgICAgdmFyIHRv
dGFsU2l6ZVN0cmluZyA9IE51bWJlci5ieXRlc1RvU3RyaW5nKHRoaXMuX3NpemUpOwotICAgICAg
ICB0aGlzLl90cmVlRWxlbWVudC5zdWJ0aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiJXMg
KCVzKSIsIGxhc3RQYXRoQ29tcG9uZW50LCB0b3RhbFNpemVTdHJpbmcpOwotCiAgICAgICAgIC8v
IEZJWE1FOiBGb3IgQ2hyb21lLCBwdXQgY3JlYXRpb25UaW1lIGFuZCB1cGRhdGVUaW1lIHNvbWV3
aGVyZS4KICAgICAgICAgLy8gTk9URTogbG9jYWxpemVkU3RyaW5nIGhhcyBub3QgeWV0IGJlZW4g
YWRkZWQuCiAgICAgICAgIC8vIFdlYkluc3BlY3Rvci5VSVN0cmluZygiKCVzKSBDcmVhdGVkOiAl
cyBVcGRhdGVkOiAlcyIsIHRoaXMuX3NpemUsIHRoaXMuX2NyZWF0aW9uVGltZSwgdGhpcy5fdXBk
YXRlVGltZSk7CkBAIC0yMzUsNyArMjQwLDcgQEAgV2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2Fj
aGVJdGVtc1ZpZXcucHJvdG90eXBlID0gewogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRo
aXMuX3Jlc291cmNlcy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgdmFyIGRhdGEgPSB7fTsK
ICAgICAgICAgICAgIHZhciByZXNvdXJjZSA9IHRoaXMuX3Jlc291cmNlc1tpXTsKLSAgICAgICAg
ICAgIGRhdGFbMF0gPSByZXNvdXJjZS5uYW1lOworICAgICAgICAgICAgZGF0YVswXSA9IHJlc291
cmNlLnVybDsKICAgICAgICAgICAgIGRhdGFbMV0gPSByZXNvdXJjZS50eXBlOwogICAgICAgICAg
ICAgZGF0YVsyXSA9IE51bWJlci5ieXRlc1RvU3RyaW5nKHJlc291cmNlLnNpemUpOwogICAgICAg
ICAgICAgdmFyIG5vZGUgPSBuZXcgV2ViSW5zcGVjdG9yLkRhdGFHcmlkTm9kZShkYXRhKTsKQEAg
LTI0OCw3ICsyNTMsNyBAQCBXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZUl0ZW1zVmlldy5w
cm90b3R5cGUgPSB7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoIW5v
ZGVUb1NlbGVjdCkKKyAgICAgICAgaWYgKCFub2RlVG9TZWxlY3QgJiYgdGhpcy5fZGF0YUdyaWQu
Y2hpbGRyZW4ubGVuZ3RoKQogICAgICAgICAgICAgdGhpcy5fZGF0YUdyaWQuY2hpbGRyZW5bMF0u
c2VsZWN0ZWQgPSB0cnVlOwogICAgIH0sCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvQXBwbGljYXRpb25DYWNoZU1vZGVsLmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BcHBsaWNhdGlvbkNhY2hlTW9kZWwuanMKaW5kZXggMWIw
MWM2MmNiN2VhN2ZlODUxODZkZjk5ZjZhNTE5OTU4MTkxMmQ2OS4uODFhODJiZDUyY2RiMjdiZjNl
ZWRmNDI2MDQwNzdjYWYyMDc0MTBlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9BcHBsaWNhdGlvbkNhY2hlTW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BcHBsaWNhdGlvbkNhY2hlTW9kZWwuanMKQEAgLTMzLDE5
ICszMywxNzAgQEAKIFdlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlTW9kZWwgPSBmdW5jdGlv
bigpCiB7CiAgICAgSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckFwcGxpY2F0aW9uQ2FjaGVEaXNw
YXRjaGVyKG5ldyBXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZURpc3BhdGNoZXIodGhpcykp
OworICAgIAorICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5hZGRFdmVudExpc3Rl
bmVyKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLkZyYW1lTmF2aWdh
dGVkLCB0aGlzLl9mcmFtZU5hdmlnYXRlZCwgdGhpcyk7CisgICAgV2ViSW5zcGVjdG9yLnJlc291
cmNlVHJlZU1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1v
ZGVsLkV2ZW50VHlwZXMuRnJhbWVEZXRhY2hlZCwgdGhpcy5fZnJhbWVEZXRhY2hlZCwgdGhpcyk7
CisgICAgCisgICAgdGhpcy5fbWFpbkZyYW1lTmF2aWdhdGVkKCk7Cit9CisKK1dlYkluc3BlY3Rv
ci5BcHBsaWNhdGlvbkNhY2hlTW9kZWwuRXZlbnRUeXBlcyA9IHsKKyAgICBGcmFtZU1hbmlmZXN0
U3RhdHVzVXBkYXRlZDogIkZyYW1lTWFuaWZlc3RTdGF0dXNVcGRhdGVkIiwKKyAgICBGcmFtZU1h
bmlmZXN0QWRkZWQ6ICJGcmFtZU1hbmlmZXN0QWRkZWQiLAorICAgIEZyYW1lTWFuaWZlc3RSZW1v
dmVkOiAiRnJhbWVNYW5pZmVzdFJlbW92ZWQiLAorICAgIE5ldHdvcmtTdGF0ZUNoYW5nZWQ6ICJO
ZXR3b3JrU3RhdGVDaGFuZ2VkIgogfQogCiBXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZU1v
ZGVsLnByb3RvdHlwZSA9IHsKLSAgICBnZXRBcHBsaWNhdGlvbkNhY2hlc0FzeW5jOiBmdW5jdGlv
bihjYWxsYmFjaykKKyAgICBfZnJhbWVOYXZpZ2F0ZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsK
LSAgICAgICAgZnVuY3Rpb24gbXljYWxsYmFjayhlcnJvciwgYXBwbGljYXRpb25DYWNoZXMpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBDdXJyZW50bHksIHRoaXMgbGlzdCBvbmx5
IHJldHVybnMgYSBzaW5nbGUgYXBwbGljYXRpb24gY2FjaGUuCi0gICAgICAgICAgICBpZiAoIWVy
cm9yICYmIGFwcGxpY2F0aW9uQ2FjaGVzKQotICAgICAgICAgICAgICAgIGNhbGxiYWNrKGFwcGxp
Y2F0aW9uQ2FjaGVzKTsKKyAgICAgICAgaWYgKGV2ZW50LmRhdGEuaXNNYWluRnJhbWUpIHsKKyAg
ICAgICAgICAgIHRoaXMuX21haW5GcmFtZU5hdmlnYXRlZCgpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisKKyAgICAgICAgdmFyIGZyYW1lSWQgPSBldmVudC5kYXRhLmZyYW1lLmlk
OworICAgICAgICBBcHBsaWNhdGlvbkNhY2hlQWdlbnQuZ2V0TWFuaWZlc3RGb3JGcmFtZShmcmFt
ZUlkLCB0aGlzLl9tYW5pZmVzdEZvckZyYW1lTG9hZGVkLmJpbmQodGhpcywgZnJhbWVJZCkpOwor
ICAgIH0sCisgICAgCisgICAgX2ZyYW1lRGV0YWNoZWQ6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsK
KyAgICAgICAgdmFyIGZyYW1lSWQgPSBldmVudC5kYXRhOworICAgICAgICB0aGlzLl9mcmFtZU1h
bmlmZXN0UmVtb3ZlZChmcmFtZUlkKTsKKyAgICB9LAorICAgIAorICAgIF9tYWluRnJhbWVOYXZp
Z2F0ZWQ6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMuX3Jlc2V0KCk7CisgICAgICAg
IEFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5nZXRGcmFtZXNXaXRoTWFuaWZlc3RzKHRoaXMuX2ZyYW1l
c1dpdGhNYW5pZmVzdHNMb2FkZWQuYmluZCh0aGlzKSk7CisgICAgfSwKKworICAgIF9yZXNldDog
ZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5fc3RhdHVzZXMgPSB7fTsKKyAgICAgICAg
dGhpcy5fbWFuaWZlc3RVUkxzQnlGcmFtZSA9IHt9OworICAgIH0sCisgICAgCisgICAgLyoqCisg
ICAgICogQHBhcmFtIHtzdHJpbmd9IGZyYW1lSWQKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gZXJy
b3IKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gbWFuaWZlc3RVUkwKKyAgICAgKi8KKyAgICBfbWFu
aWZlc3RGb3JGcmFtZUxvYWRlZDogZnVuY3Rpb24oZnJhbWVJZCwgZXJyb3IsIG1hbmlmZXN0VVJM
KQorICAgIHsKKyAgICAgICAgaWYgKGVycm9yKQorICAgICAgICAgICAgY29uc29sZS5lcnJvcihl
cnJvcik7CisgICAgICAgIAorICAgICAgICBpZiAoIW1hbmlmZXN0VVJMKQorICAgICAgICAgICAg
dGhpcy5fZnJhbWVNYW5pZmVzdFJlbW92ZWQoZnJhbWVJZCk7CisgICAgfSwKKyAgICAKKyAgICBf
ZnJhbWVzV2l0aE1hbmlmZXN0c0xvYWRlZDogZnVuY3Rpb24oZXJyb3IsIGZyYW1lc1dpdGhNYW5p
ZmVzdHMpCisgICAgeworICAgICAgICBpZiAoZXJyb3IpCisgICAgICAgICAgICBjb25zb2xlLmVy
cm9yKGVycm9yKTsKKworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZyYW1lc1dpdGhNYW5p
ZmVzdHMubGVuZ3RoOyArK2kpCisgICAgICAgICAgICB0aGlzLl9mcmFtZU1hbmlmZXN0VXBkYXRl
ZChmcmFtZXNXaXRoTWFuaWZlc3RzW2ldLmZyYW1lSWQsIGZyYW1lc1dpdGhNYW5pZmVzdHNbaV0u
bWFuaWZlc3RVUkwsIGZyYW1lc1dpdGhNYW5pZmVzdHNbaV0uc3RhdHVzKTsKKyAgICB9LAorICAg
IAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBmcmFtZUlkCisgICAgICogQHBhcmFt
IHtzdHJpbmd9IG1hbmlmZXN0VVJMCisgICAgICogQHBhcmFtIHtudW1iZXJ9IHN0YXR1cworICAg
ICAqLworICAgIF9mcmFtZU1hbmlmZXN0VXBkYXRlZDogZnVuY3Rpb24oZnJhbWVJZCwgbWFuaWZl
c3RVUkwsIHN0YXR1cykKKyAgICB7CisgICAgICAgIGlmIChzdGF0dXMgPT09IGFwcGxpY2F0aW9u
Q2FjaGUuVU5DQUNIRUQpIHsKKyAgICAgICAgICAgIHRoaXMuX2ZyYW1lTWFuaWZlc3RSZW1vdmVk
KGZyYW1lSWQpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgICAgICAK
KyAgICAgICAgaWYgKCFtYW5pZmVzdFVSTCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICAgIAorICAgICAgICBpZiAodGhpcy5fbWFuaWZlc3RVUkxzQnlGcmFtZVtmcmFtZUlkXSAmJiBt
YW5pZmVzdFVSTCAhPT0gdGhpcy5fbWFuaWZlc3RVUkxzQnlGcmFtZVtmcmFtZUlkXSkKKyAgICAg
ICAgICAgIHRoaXMuX2ZyYW1lTWFuaWZlc3RSZW1vdmVkKGZyYW1lSWQpOworICAgICAgICAKKyAg
ICAgICAgdmFyIHN0YXR1c0NoYW5nZWQgPSB0aGlzLl9zdGF0dXNlc1tmcmFtZUlkXSAhPT0gc3Rh
dHVzOworICAgICAgICB0aGlzLl9zdGF0dXNlc1tmcmFtZUlkXSA9IHN0YXR1czsKKyAgICAgICAg
CisgICAgICAgIGlmICghdGhpcy5fbWFuaWZlc3RVUkxzQnlGcmFtZVtmcmFtZUlkXSkgeworICAg
ICAgICAgICAgdGhpcy5fbWFuaWZlc3RVUkxzQnlGcmFtZVtmcmFtZUlkXSA9IG1hbmlmZXN0VVJM
OworICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9y
LkFwcGxpY2F0aW9uQ2FjaGVNb2RlbC5FdmVudFR5cGVzLkZyYW1lTWFuaWZlc3RBZGRlZCwgZnJh
bWVJZCk7CiAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICBpZiAoc3RhdHVzQ2hhbmdl
ZCkKKyAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rv
ci5BcHBsaWNhdGlvbkNhY2hlTW9kZWwuRXZlbnRUeXBlcy5GcmFtZU1hbmlmZXN0U3RhdHVzVXBk
YXRlZCwgZnJhbWVJZCk7CisgICAgfSwKKyAgICAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge3N0
cmluZ30gZnJhbWVJZAorICAgICAqLworICAgIF9mcmFtZU1hbmlmZXN0UmVtb3ZlZDogZnVuY3Rp
b24oZnJhbWVJZCkKKyAgICB7CisgICAgICAgIGlmICghdGhpcy5fbWFuaWZlc3RVUkxzQnlGcmFt
ZVtmcmFtZUlkXSkKKyAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBBcHBsaWNhdGlvbkNh
Y2hlQWdlbnQuZ2V0QXBwbGljYXRpb25DYWNoZXMobXljYWxsYmFjayk7CisgICAgICAgIHZhciBt
YW5pZmVzdFVSTCA9IHRoaXMuX21hbmlmZXN0VVJMc0J5RnJhbWVbZnJhbWVJZF07CisgICAgICAg
IGRlbGV0ZSB0aGlzLl9tYW5pZmVzdFVSTHNCeUZyYW1lW2ZyYW1lSWRdOworICAgICAgICBkZWxl
dGUgdGhpcy5fc3RhdHVzZXNbZnJhbWVJZF07CisgICAgICAgIAorICAgICAgICB0aGlzLmRpc3Bh
dGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZU1vZGVsLkV2
ZW50VHlwZXMuRnJhbWVNYW5pZmVzdFJlbW92ZWQsIGZyYW1lSWQpOworICAgIH0sCisgICAgCisg
ICAgLyoqCisgICAgICogQHBhcmFtIHtzdHJpbmd9IGZyYW1lSWQKKyAgICAgKiBAcmV0dXJuIHtz
dHJpbmd9CisgICAgICovCisgICAgZnJhbWVNYW5pZmVzdFVSTDogZnVuY3Rpb24oZnJhbWVJZCkK
KyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9tYW5pZmVzdFVSTHNCeUZyYW1lW2ZyYW1lSWRd
OworICAgIH0sCisgICAgCisgICAgLyoqCisgICAgICogQHBhcmFtIHtzdHJpbmd9IGZyYW1lSWQK
KyAgICAgKiBAcmV0dXJuIHtudW1iZXJ9CisgICAgICovCisgICAgZnJhbWVNYW5pZmVzdFN0YXR1
czogZnVuY3Rpb24oZnJhbWVJZCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9zdGF0dXNl
c1tmcmFtZUlkXSB8fCBhcHBsaWNhdGlvbkNhY2hlLlVOQ0FDSEVEOworICAgIH0sCisgICAgCisg
ICAgLyoqCisgICAgICogQHBhcmFtIHtzdHJpbmd9IGZyYW1lSWQKKyAgICAgKiBAcGFyYW0ge3N0
cmluZ30gbWFuaWZlc3RVUkwKKyAgICAgKiBAcGFyYW0ge251bWJlcn0gc3RhdHVzCisgICAgICov
CisgICAgX3N0YXR1c1VwZGF0ZWQ6IGZ1bmN0aW9uKGZyYW1lSWQsIG1hbmlmZXN0VVJMLCBzdGF0
dXMpCisgICAgeworICAgICAgICB0aGlzLl9mcmFtZU1hbmlmZXN0VXBkYXRlZChmcmFtZUlkLCBt
YW5pZmVzdFVSTCwgc3RhdHVzKTsKKyAgICB9LAorICAgIAorICAgIC8qKgorICAgICAqIEBwYXJh
bSB7c3RyaW5nfSBmcmFtZUlkCisgICAgICogQHBhcmFtIHtmdW5jdGlvbihPYmplY3QpfSBjYWxs
YmFjaworICAgICAqLworICAgIHJlcXVlc3RBcHBsaWNhdGlvbkNhY2hlOiBmdW5jdGlvbihmcmFt
ZUlkLCBjYWxsYmFjaykKKyAgICB7CisgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrV3JhcHBlcihl
cnJvciwgYXBwbGljYXRpb25DYWNoZSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGVycm9y
KSB7CisgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7CisgICAgICAgICAgICAg
ICAgY2FsbGJhY2sobnVsbCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYWxsYmFjayhh
cHBsaWNhdGlvbkNhY2hlKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgQXBwbGljYXRp
b25DYWNoZUFnZW50LmdldEFwcGxpY2F0aW9uQ2FjaGVGb3JGcmFtZShmcmFtZUlkLCBjYWxsYmFj
a1dyYXBwZXIuYmluZCh0aGlzKSk7CisgICAgfSwKKyAgICAKKyAgICAvKioKKyAgICAgKiBAcGFy
YW0ge2Jvb2xlYW59IGlzTm93T25saW5lCisgICAgICovCisgICAgX25ldHdvcmtTdGF0ZVVwZGF0
ZWQ6IGZ1bmN0aW9uKGlzTm93T25saW5lKQorICAgIHsKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2
ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVNb2RlbC5FdmVudFR5
cGVzLk5ldHdvcmtTdGF0ZUNoYW5nZWQsIGlzTm93T25saW5lKTsKICAgICB9CiB9CiAKQEAgLTYy
LDE4ICsyMTMsMjAgQEAgV2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVEaXNwYXRjaGVyID0g
ZnVuY3Rpb24oYXBwbGljYXRpb25DYWNoZU1vZGVsKQogCiBXZWJJbnNwZWN0b3IuQXBwbGljYXRp
b25DYWNoZURpc3BhdGNoZXIucHJvdG90eXBlID0gewogICAgIC8qKgorICAgICAqIEBwYXJhbSB7
c3RyaW5nfSBmcmFtZUlkCisgICAgICogQHBhcmFtIHtzdHJpbmd9IG1hbmlmZXN0VVJMCiAgICAg
ICogQHBhcmFtIHtudW1iZXJ9IHN0YXR1cwogICAgICAqLwotICAgIHVwZGF0ZUFwcGxpY2F0aW9u
Q2FjaGVTdGF0dXM6IGZ1bmN0aW9uKHN0YXR1cykKKyAgICB1cGRhdGVBcHBsaWNhdGlvbkNhY2hl
U3RhdHVzOiBmdW5jdGlvbihmcmFtZUlkLCBtYW5pZmVzdFVSTCwgc3RhdHVzKQogICAgIHsKLSAg
ICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5yZXNvdXJjZXMudXBkYXRlQXBwbGljYXRpb25DYWNo
ZVN0YXR1cyhzdGF0dXMpOworICAgICAgICB0aGlzLl9hcHBsaWNhdGlvbkNhY2hlTW9kZWwuX3N0
YXR1c1VwZGF0ZWQoZnJhbWVJZCwgbWFuaWZlc3RVUkwsIHN0YXR1cyk7CiAgICAgfSwKLQorICAg
IAogICAgIC8qKgogICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNOb3dPbmxpbmUKICAgICAgKi8K
ICAgICB1cGRhdGVOZXR3b3JrU3RhdGU6IGZ1bmN0aW9uKGlzTm93T25saW5lKQogICAgIHsKLSAg
ICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5yZXNvdXJjZXMudXBkYXRlTmV0d29ya1N0YXRlKGlz
Tm93T25saW5lKTsKLSAgICB9CisgICAgICAgIHRoaXMuX2FwcGxpY2F0aW9uQ2FjaGVNb2RlbC5f
bmV0d29ya1N0YXRlVXBkYXRlZChpc05vd09ubGluZSk7CisgICAgfSwKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUcmVlTW9kZWwuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVHJlZU1vZGVsLmpz
CmluZGV4IGY1NDJhYjg0ZTFiOWExYzBkY2Y2ODZmYjg2YjFhYzA1OGI3YzUxM2YuLjM5N2IzMDlj
OWE5ZjEzMTgyYjU5N2YwNWUyOTdhZDZmNmNmZDQxN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUcmVlTW9kZWwuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVRyZWVNb2RlbC5qcwpAQCAtMTE0
LDYgKzExNCwxMSBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwucHJvdG90eXBlID0g
ewogICAgICAgICByZXR1cm4gdGhpcy5fc3ViZnJhbWVzW3BhcmVudEZyYW1lSWRdIHx8IFtdOwog
ICAgIH0sCiAKKyAgICBmcmFtZUZvcklkOiBmdW5jdGlvbihmcmFtZUlkKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIHRoaXMuX2ZyYW1lSWRzW2ZyYW1lSWRdOworICAgIH0sCisKICAgICByZXNvdXJj
ZXM6IGZ1bmN0aW9uKGZyYW1lSWQpCiAgICAgewogICAgICAgICB2YXIgcmVzdWx0ID0gW107CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1Bh
bmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5l
bC5qcwppbmRleCBiMGZmZDA4YmZlMGU2MjFlNjFmMWMwZTZlZTM1YWY2Zjk2NTI4MDkxLi4zMjUw
YzVlNzA4NzgxZTFhZWRjZTNlMDZiNzBlOGMwY2JkYjlmOGZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMKQEAgLTc3LDYg
Kzc3LDcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsID0gZnVuY3Rpb24oZGF0YWJhc2Up
CiAgICAgdGhpcy5fb3JpZ2lucyA9IHt9OwogICAgIHRoaXMuX2RvbWFpbnMgPSB7fTsKIAorCiAg
ICAgdGhpcy5zaWRlYmFyRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLCB0aGlz
Ll9vbm1vdXNlbW92ZS5iaW5kKHRoaXMpLCBmYWxzZSk7CiAgICAgdGhpcy5zaWRlYmFyRWxlbWVu
dC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW91dCIsIHRoaXMuX29ubW91c2VvdXQuYmluZCh0aGlz
KSwgZmFsc2UpOwogCkBAIC0xMTAsMTAgKzExMSw5IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQ
YW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUu
d2FzU2hvd24uY2FsbCh0aGlzKTsKICAgICAgICAgaWYgKCF0aGlzLl9pbml0aWFsaXplZCkgewog
ICAgICAgICAgICAgdGhpcy5fcG9wdWxhdGVSZXNvdXJjZVRyZWUoKTsKLSAgICAgICAgICAgIHRo
aXMuX2luaXRpYWxpemVBcHBsaWNhdGlvbkNhY2hlTW9kZWwoKTsKLQorICAgICAgICAgICAgdGhp
cy5fcG9wdWxhdGVBcHBsaWNhdGlvbkNhY2hlVHJlZSgpOwogICAgICAgICAgICAgdGhpcy5faW5p
dERlZmF1bHRTZWxlY3Rpb24oKTsKLSAgICAgICAgICAgIAorCiAgICAgICAgICAgICB0aGlzLl9p
bml0aWFsaXplZCA9IHRydWU7CiAgICAgICAgIH0KICAgICB9LApAQCAtMTY3LDE0ICsxNjcsMTAg
QEAgV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZSA9IHsKIAogICAgICAgICB0
aGlzLl9jb29raWVWaWV3cyA9IHt9OwogCi0gICAgICAgIHRoaXMuX2FwcGxpY2F0aW9uQ2FjaGVW
aWV3ID0gbnVsbDsKLSAgICAgICAgZGVsZXRlIHRoaXMuX2NhY2hlZEFwcGxpY2F0aW9uQ2FjaGVW
aWV3U3RhdHVzOwotCiAgICAgICAgIHRoaXMuZGF0YWJhc2VzTGlzdFRyZWVFbGVtZW50LnJlbW92
ZUNoaWxkcmVuKCk7CiAgICAgICAgIHRoaXMubG9jYWxTdG9yYWdlTGlzdFRyZWVFbGVtZW50LnJl
bW92ZUNoaWxkcmVuKCk7CiAgICAgICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VMaXN0VHJlZUVsZW1l
bnQucmVtb3ZlQ2hpbGRyZW4oKTsKICAgICAgICAgdGhpcy5jb29raWVMaXN0VHJlZUVsZW1lbnQu
cmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICAgICAgdGhpcy5hcHBsaWNhdGlvbkNhY2hlTGlzdFRyZWVF
bGVtZW50LnJlbW92ZUNoaWxkcmVuKCk7CiAKICAgICAgICAgaWYgKHRoaXMudmlzaWJsZVZpZXcp
CiAgICAgICAgICAgICB0aGlzLnZpc2libGVWaWV3LmRldGFjaCgpOwpAQCAtMjYyLDYgKzI1OCwx
MCBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB2
YXIgZnJhbWVUcmVlRWxlbWVudCA9IHRoaXMuX3RyZWVFbGVtZW50Rm9yRnJhbWVJZFtmcmFtZUlk
XTsKICAgICAgICAgaWYgKGZyYW1lVHJlZUVsZW1lbnQpCiAgICAgICAgICAgICBmcmFtZVRyZWVF
bGVtZW50LmZyYW1lTmF2aWdhdGVkKGV2ZW50LmRhdGEuZnJhbWUpOworCisgICAgICAgIHZhciBh
cHBsaWNhdGlvbkNhY2hlRnJhbWVUcmVlRWxlbWVudCA9IHRoaXMuX2FwcGxpY2F0aW9uQ2FjaGVG
cmFtZUVsZW1lbnRzW2ZyYW1lSWRdOworICAgICAgICBpZiAoYXBwbGljYXRpb25DYWNoZUZyYW1l
VHJlZUVsZW1lbnQpCisgICAgICAgICAgICBhcHBsaWNhdGlvbkNhY2hlRnJhbWVUcmVlRWxlbWVu
dC5mcmFtZU5hdmlnYXRlZChldmVudC5kYXRhLmZyYW1lKTsKICAgICB9LAogCiAgICAgX2NhY2hl
ZFJlc291cmNlc0xvYWRlZDogZnVuY3Rpb24oKQpAQCAtMjkwLDkgKzI5MCw2IEBAIFdlYkluc3Bl
Y3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgICAgIHZhciBjb29r
aWVEb21haW5UcmVlRWxlbWVudCA9IG5ldyBXZWJJbnNwZWN0b3IuQ29va2llVHJlZUVsZW1lbnQo
dGhpcywgZG9tYWluKTsKICAgICAgICAgICAgIHRoaXMuY29va2llTGlzdFRyZWVFbGVtZW50LmFw
cGVuZENoaWxkKGNvb2tpZURvbWFpblRyZWVFbGVtZW50KTsKLQotICAgICAgICAgICAgdmFyIGFw
cGxpY2F0aW9uQ2FjaGVUcmVlRWxlbWVudCA9IG5ldyBXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25D
YWNoZVRyZWVFbGVtZW50KHRoaXMsIGRvbWFpbik7Ci0gICAgICAgICAgICB0aGlzLmFwcGxpY2F0
aW9uQ2FjaGVMaXN0VHJlZUVsZW1lbnQuYXBwZW5kQ2hpbGQoYXBwbGljYXRpb25DYWNoZVRyZWVF
bGVtZW50KTsKICAgICAgICAgfQogICAgIH0sCiAKQEAgLTQ4MCwxOCArNDc3LDE5IEBAIFdlYklu
c3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX2lubmVy
U2hvd1ZpZXcodmlldyk7CiAgICAgfSwKIAotICAgIHNob3dBcHBsaWNhdGlvbkNhY2hlOiBmdW5j
dGlvbih0cmVlRWxlbWVudCwgYXBwY2FjaGVEb21haW4pCisgICAgc2hvd0FwcGxpY2F0aW9uQ2Fj
aGU6IGZ1bmN0aW9uKGZyYW1lSWQpCiAgICAgewotICAgICAgICB2YXIgdmlldyA9IHRoaXMuX2Fw
cGxpY2F0aW9uQ2FjaGVWaWV3OwotICAgICAgICBpZiAoIXZpZXcpIHsKLSAgICAgICAgICAgIHZp
ZXcgPSBuZXcgV2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVJdGVtc1ZpZXcodGhpcy5fYXBw
bGljYXRpb25DYWNoZU1vZGVsLCB0cmVlRWxlbWVudCwgYXBwY2FjaGVEb21haW4pOwotICAgICAg
ICAgICAgdGhpcy5fYXBwbGljYXRpb25DYWNoZVZpZXcgPSB2aWV3OwotICAgICAgICB9CisgICAg
ICAgIHZhciBzdGF0dXMgPSB0aGlzLl9hcHBsaWNhdGlvbkNhY2hlTW9kZWwuZnJhbWVNYW5pZmVz
dFN0YXR1cyhmcmFtZUlkKQogCi0gICAgICAgIHRoaXMuX2lubmVyU2hvd1ZpZXcodmlldyk7Cisg
ICAgICAgIGlmICghdGhpcy5fYXBwbGljYXRpb25DYWNoZVZpZXdzW2ZyYW1lSWRdKSB7CisgICAg
ICAgICAgICB0aGlzLl9hcHBsaWNhdGlvbkNhY2hlVmlld3NbZnJhbWVJZF0gPSBuZXcgV2ViSW5z
cGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVJdGVtc1ZpZXcodGhpcy5fYXBwbGljYXRpb25DYWNoZU1v
ZGVsLCBmcmFtZUlkLCBzdGF0dXMpOwogCi0gICAgICAgIGlmICgiX2NhY2hlZEFwcGxpY2F0aW9u
Q2FjaGVWaWV3U3RhdHVzIiBpbiB0aGlzKQotICAgICAgICAgICAgdGhpcy5fYXBwbGljYXRpb25D
YWNoZVZpZXcudXBkYXRlU3RhdHVzKHRoaXMuX2NhY2hlZEFwcGxpY2F0aW9uQ2FjaGVWaWV3U3Rh
dHVzKTsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBNYWtlIHN1cmUgdGhpcy5fY2FjaGVkQXBwbGlj
YXRpb25DYWNoZU5ldHdvcmtTdGF0ZSBpcyBhbHdheXMgc2V0IGFuZCBpcyBhbHdheXMgdXAgdG8g
ZGF0ZS4KKyAgICAgICAgICAgIGlmICh0eXBlb2YodGhpcy5fY2FjaGVkQXBwbGljYXRpb25DYWNo
ZU5ldHdvcmtTdGF0ZSkgPT09ICJudW1iZXIiKQorICAgICAgICAgICAgICAgIHRoaXMuX2FwcGxp
Y2F0aW9uQ2FjaGVWaWV3c1tmcmFtZUlkXS51cGRhdGVOZXR3b3JrU3RhdGUodGhpcy5fY2FjaGVk
QXBwbGljYXRpb25DYWNoZU5ldHdvcmtTdGF0ZSk7CisgICAgICAgIH0KKworICAgICAgICB0aGlz
Ll9pbm5lclNob3dWaWV3KHRoaXMuX2FwcGxpY2F0aW9uQ2FjaGVWaWV3c1tmcmFtZUlkXSk7CiAg
ICAgfSwKIAogICAgIHNob3dDYXRlZ29yeVZpZXc6IGZ1bmN0aW9uKGNhdGVnb3J5TmFtZSkKQEAg
LTU2NiwyOCArNTY0LDc2IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUg
PSB7CiAgICAgICAgICAgICBkb21TdG9yYWdlLl9kb21TdG9yYWdlVmlldy51cGRhdGUoKTsKICAg
ICB9LAogCi0gICAgX2luaXRpYWxpemVBcHBsaWNhdGlvbkNhY2hlTW9kZWw6IGZ1bmN0aW9uKCkK
KyAgICBfcG9wdWxhdGVBcHBsaWNhdGlvbkNhY2hlVHJlZTogZnVuY3Rpb24oKQogICAgIHsKICAg
ICAgICAgdGhpcy5fYXBwbGljYXRpb25DYWNoZU1vZGVsID0gbmV3IFdlYkluc3BlY3Rvci5BcHBs
aWNhdGlvbkNhY2hlTW9kZWwoKTsKKyAgICAgICAgCisgICAgICAgIHRoaXMuX2FwcGxpY2F0aW9u
Q2FjaGVWaWV3cyA9IHt9OworICAgICAgICB0aGlzLl9hcHBsaWNhdGlvbkNhY2hlRnJhbWVFbGVt
ZW50cyA9IHt9OworICAgICAgICB0aGlzLl9hcHBsaWNhdGlvbkNhY2hlTWFuaWZlc3RFbGVtZW50
cyA9IHt9OworICAgICAgICAKKyAgICAgICAgdGhpcy5fYXBwbGljYXRpb25DYWNoZU1vZGVsLmFk
ZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVNb2RlbC5FdmVudFR5
cGVzLkZyYW1lTWFuaWZlc3RBZGRlZCwgdGhpcy5fYXBwbGljYXRpb25DYWNoZUZyYW1lTWFuaWZl
c3RBZGRlZCwgdGhpcyk7CisgICAgICAgIHRoaXMuX2FwcGxpY2F0aW9uQ2FjaGVNb2RlbC5hZGRF
dmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlTW9kZWwuRXZlbnRUeXBl
cy5GcmFtZU1hbmlmZXN0UmVtb3ZlZCwgdGhpcy5fYXBwbGljYXRpb25DYWNoZUZyYW1lTWFuaWZl
c3RSZW1vdmVkLCB0aGlzKTsKKworICAgICAgICB0aGlzLl9hcHBsaWNhdGlvbkNhY2hlTW9kZWwu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZU1vZGVsLkV2ZW50
VHlwZXMuRnJhbWVNYW5pZmVzdFN0YXR1c1VwZGF0ZWQsIHRoaXMuX2FwcGxpY2F0aW9uQ2FjaGVG
cmFtZU1hbmlmZXN0U3RhdHVzQ2hhbmdlZCwgdGhpcyk7CisgICAgICAgIHRoaXMuX2FwcGxpY2F0
aW9uQ2FjaGVNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNh
Y2hlTW9kZWwuRXZlbnRUeXBlcy5OZXR3b3JrU3RhdGVDaGFuZ2VkLCB0aGlzLl9hcHBsaWNhdGlv
bkNhY2hlTmV0d29ya1N0YXRlQ2hhbmdlZCwgdGhpcyk7CisgICAgfSwKKworICAgIF9hcHBsaWNh
dGlvbkNhY2hlRnJhbWVNYW5pZmVzdEFkZGVkOiBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAg
ICAgIHZhciBmcmFtZUlkID0gZXZlbnQuZGF0YTsKKyAgICAgICAgdmFyIG1hbmlmZXN0VVJMID0g
dGhpcy5fYXBwbGljYXRpb25DYWNoZU1vZGVsLmZyYW1lTWFuaWZlc3RVUkwoZnJhbWVJZCk7Cisg
ICAgICAgIHZhciBzdGF0dXMgPSB0aGlzLl9hcHBsaWNhdGlvbkNhY2hlTW9kZWwuZnJhbWVNYW5p
ZmVzdFN0YXR1cyhmcmFtZUlkKQorCisgICAgICAgIHZhciBtYW5pZmVzdFRyZWVFbGVtZW50ID0g
dGhpcy5fYXBwbGljYXRpb25DYWNoZU1hbmlmZXN0RWxlbWVudHNbbWFuaWZlc3RVUkxdCisgICAg
ICAgIGlmICghbWFuaWZlc3RUcmVlRWxlbWVudCkgeworICAgICAgICAgICAgbWFuaWZlc3RUcmVl
RWxlbWVudCA9IG5ldyBXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZU1hbmlmZXN0VHJlZUVs
ZW1lbnQodGhpcywgbWFuaWZlc3RVUkwpOworICAgICAgICAgICAgdGhpcy5hcHBsaWNhdGlvbkNh
Y2hlTGlzdFRyZWVFbGVtZW50LmFwcGVuZENoaWxkKG1hbmlmZXN0VHJlZUVsZW1lbnQpOworICAg
ICAgICAgICAgdGhpcy5fYXBwbGljYXRpb25DYWNoZU1hbmlmZXN0RWxlbWVudHNbbWFuaWZlc3RV
UkxdID0gbWFuaWZlc3RUcmVlRWxlbWVudDsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBmcmFt
ZVRyZWVFbGVtZW50ID0gbmV3IFdlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlRnJhbWVUcmVl
RWxlbWVudCh0aGlzLCBmcmFtZUlkLCBtYW5pZmVzdFVSTCk7CisgICAgICAgIG1hbmlmZXN0VHJl
ZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZnJhbWVUcmVlRWxlbWVudCk7CisgICAgICAgIG1hbmlmZXN0
VHJlZUVsZW1lbnQuZXhwYW5kKCk7CisgICAgICAgIHRoaXMuX2FwcGxpY2F0aW9uQ2FjaGVGcmFt
ZUVsZW1lbnRzW2ZyYW1lSWRdID0gZnJhbWVUcmVlRWxlbWVudDsKICAgICB9LAotICAgIAotICAg
IHVwZGF0ZUFwcGxpY2F0aW9uQ2FjaGVTdGF0dXM6IGZ1bmN0aW9uKHN0YXR1cykKKworICAgIF9h
cHBsaWNhdGlvbkNhY2hlRnJhbWVNYW5pZmVzdFJlbW92ZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAg
IHsKLSAgICAgICAgdGhpcy5fY2FjaGVkQXBwbGljYXRpb25DYWNoZVZpZXdTdGF0dXMgPSBzdGF0
dXM7Ci0gICAgICAgIGlmICh0aGlzLl9hcHBsaWNhdGlvbkNhY2hlVmlldyAmJiB0aGlzLl9hcHBs
aWNhdGlvbkNhY2hlVmlldyA9PT0gdGhpcy52aXNpYmxlVmlldykKLSAgICAgICAgICAgIHRoaXMu
X2FwcGxpY2F0aW9uQ2FjaGVWaWV3LnVwZGF0ZVN0YXR1cyhzdGF0dXMpOworICAgICAgICB2YXIg
ZnJhbWVJZCA9IGV2ZW50LmRhdGE7CisgICAgICAgIHZhciBmcmFtZVRyZWVFbGVtZW50ID0gdGhp
cy5fYXBwbGljYXRpb25DYWNoZUZyYW1lRWxlbWVudHNbZnJhbWVJZF07CisgICAgICAgIGlmICgh
ZnJhbWVUcmVlRWxlbWVudCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB2YXIgbWFu
aWZlc3RVUkwgPSBmcmFtZVRyZWVFbGVtZW50Lm1hbmlmZXN0VVJMOworICAgICAgICBkZWxldGUg
dGhpcy5fYXBwbGljYXRpb25DYWNoZUZyYW1lRWxlbWVudHNbZnJhbWVJZF07CisgICAgICAgIGRl
bGV0ZSB0aGlzLl9hcHBsaWNhdGlvbkNhY2hlVmlld3NbZnJhbWVJZF07CisgICAgICAgIGZyYW1l
VHJlZUVsZW1lbnQucGFyZW50LnJlbW92ZUNoaWxkKGZyYW1lVHJlZUVsZW1lbnQpOworCisgICAg
ICAgIHZhciBtYW5pZmVzdFRyZWVFbGVtZW50ID0gdGhpcy5fYXBwbGljYXRpb25DYWNoZU1hbmlm
ZXN0RWxlbWVudHNbbWFuaWZlc3RVUkxdOworICAgICAgICBpZiAobWFuaWZlc3RUcmVlRWxlbWVu
dC5jaGlsZHJlbi5sZW5ndGggIT09IDApCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
ZGVsZXRlIHRoaXMuX2FwcGxpY2F0aW9uQ2FjaGVNYW5pZmVzdEVsZW1lbnRzW21hbmlmZXN0VVJM
XTsKKyAgICAgICAgbWFuaWZlc3RUcmVlRWxlbWVudC5wYXJlbnQucmVtb3ZlQ2hpbGQobWFuaWZl
c3RUcmVlRWxlbWVudCk7CiAgICAgfSwKIAotICAgIHVwZGF0ZU5ldHdvcmtTdGF0ZTogZnVuY3Rp
b24oaXNOb3dPbmxpbmUpCisgICAgX2FwcGxpY2F0aW9uQ2FjaGVGcmFtZU1hbmlmZXN0U3RhdHVz
Q2hhbmdlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewotICAgICAgICBpZiAodGhpcy5fYXBwbGlj
YXRpb25DYWNoZVZpZXcgJiYgdGhpcy5fYXBwbGljYXRpb25DYWNoZVZpZXcgPT09IHRoaXMudmlz
aWJsZVZpZXcpCi0gICAgICAgICAgICB0aGlzLl9hcHBsaWNhdGlvbkNhY2hlVmlldy51cGRhdGVO
ZXR3b3JrU3RhdGUoaXNOb3dPbmxpbmUpOworICAgICAgICB2YXIgZnJhbWVJZCA9IGV2ZW50LmRh
dGE7CisgICAgICAgIHZhciBzdGF0dXMgPSB0aGlzLl9hcHBsaWNhdGlvbkNhY2hlTW9kZWwuZnJh
bWVNYW5pZmVzdFN0YXR1cyhmcmFtZUlkKQorCisgICAgICAgIGlmICh0aGlzLl9hcHBsaWNhdGlv
bkNhY2hlVmlld3NbZnJhbWVJZF0pCisgICAgICAgICAgICB0aGlzLl9hcHBsaWNhdGlvbkNhY2hl
Vmlld3NbZnJhbWVJZF0udXBkYXRlU3RhdHVzKHN0YXR1cyk7CiAgICAgfSwKIAotICAgIHVwZGF0
ZU1hbmlmZXN0OiBmdW5jdGlvbihtYW5pZmVzdCkKKyAgICBfYXBwbGljYXRpb25DYWNoZU5ldHdv
cmtTdGF0ZUNoYW5nZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMu
X2FwcGxpY2F0aW9uQ2FjaGVWaWV3ICYmIHRoaXMuX2FwcGxpY2F0aW9uQ2FjaGVWaWV3ID09PSB0
aGlzLnZpc2libGVWaWV3KQotICAgICAgICAgICAgdGhpcy5fYXBwbGljYXRpb25DYWNoZVZpZXcu
dXBkYXRlTWFuaWZlc3QobWFuaWZlc3QpOworICAgICAgICB2YXIgaXNOb3dPbmxpbmUgPSBldmVu
dC5kYXRhOworCisgICAgICAgIHRoaXMuX2NhY2hlZEFwcGxpY2F0aW9uQ2FjaGVOZXR3b3JrU3Rh
dGUgPSBpc05vd09ubGluZTsKKyAgICAgICAgZm9yICh2YXIgbWFuaWZlc3RVUkwgaW4gdGhpcy5f
YXBwbGljYXRpb25DYWNoZVZpZXdzKQorICAgICAgICAgICAgdGhpcy5fYXBwbGljYXRpb25DYWNo
ZVZpZXdzW21hbmlmZXN0VVJMXS51cGRhdGVOZXR3b3JrU3RhdGUoaXNOb3dPbmxpbmUpOwogICAg
IH0sCiAKICAgICBfZG9tU3RvcmFnZUZvcklkOiBmdW5jdGlvbihzdG9yYWdlSWQpCkBAIC0xNTAy
LDI1ICsxNTQ4LDg0IEBAIFdlYkluc3BlY3Rvci5Db29raWVUcmVlRWxlbWVudC5wcm90b3R5cGUu
X19wcm90b19fID0gV2ViSW5zcGVjdG9yLkJhc2VTdG9yYWdlVHJlCiAgKiBAY29uc3RydWN0b3IK
ICAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuQmFzZVN0b3JhZ2VUcmVlRWxlbWVudH0KICAqLwot
V2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVUcmVlRWxlbWVudCA9IGZ1bmN0aW9uKHN0b3Jh
Z2VQYW5lbCwgYXBwY2FjaGVEb21haW4pCitXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZU1h
bmlmZXN0VHJlZUVsZW1lbnQgPSBmdW5jdGlvbihzdG9yYWdlUGFuZWwsIG1hbmlmZXN0VVJMKQor
eworICAgIHZhciB0aXRsZSA9IFdlYkluc3BlY3Rvci5SZXNvdXJjZS5kaXNwbGF5TmFtZShtYW5p
ZmVzdFVSTCk7CisgICAgV2ViSW5zcGVjdG9yLkJhc2VTdG9yYWdlVHJlZUVsZW1lbnQuY2FsbCh0
aGlzLCBzdG9yYWdlUGFuZWwsIG51bGwsIHRpdGxlLCBbImFwcGxpY2F0aW9uLWNhY2hlLXN0b3Jh
Z2UtdHJlZS1pdGVtIl0pOworICAgIHRoaXMudG9vbHRpcCA9IG1hbmlmZXN0VVJMOworICAgIHRo
aXMuX21hbmlmZXN0VVJMID0gbWFuaWZlc3RVUkw7Cit9CisKK1dlYkluc3BlY3Rvci5BcHBsaWNh
dGlvbkNhY2hlTWFuaWZlc3RUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CisgICAgZ2V0IGl0ZW1V
UkwoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICJhcHBjYWNoZTovLyIgKyB0aGlzLl9tYW5pZmVz
dFVSTDsKKyAgICB9LAorCisgICAgZ2V0IG1hbmlmZXN0VVJMKCkKKyAgICB7CisgICAgICAgIHJl
dHVybiB0aGlzLl9tYW5pZmVzdFVSTDsKKyAgICB9LAorCisgICAgb25zZWxlY3Q6IGZ1bmN0aW9u
KCkKKyAgICB7CisgICAgICAgIFdlYkluc3BlY3Rvci5CYXNlU3RvcmFnZVRyZWVFbGVtZW50LnBy
b3RvdHlwZS5vbnNlbGVjdC5jYWxsKHRoaXMpOworICAgICAgICB0aGlzLl9zdG9yYWdlUGFuZWwu
c2hvd0NhdGVnb3J5Vmlldyh0aGlzLl9tYW5pZmVzdFVSTCk7CisgICAgfQorfQorV2ViSW5zcGVj
dG9yLkFwcGxpY2F0aW9uQ2FjaGVNYW5pZmVzdFRyZWVFbGVtZW50LnByb3RvdHlwZS5fX3Byb3Rv
X18gPSBXZWJJbnNwZWN0b3IuQmFzZVN0b3JhZ2VUcmVlRWxlbWVudC5wcm90b3R5cGU7CisKKy8q
KgorICogQGNvbnN0cnVjdG9yCisgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLkJhc2VTdG9yYWdl
VHJlZUVsZW1lbnR9CisgKi8KK1dlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlRnJhbWVUcmVl
RWxlbWVudCA9IGZ1bmN0aW9uKHN0b3JhZ2VQYW5lbCwgZnJhbWVJZCwgbWFuaWZlc3RVUkwpCiB7
Ci0gICAgV2ViSW5zcGVjdG9yLkJhc2VTdG9yYWdlVHJlZUVsZW1lbnQuY2FsbCh0aGlzLCBzdG9y
YWdlUGFuZWwsIG51bGwsIGFwcGNhY2hlRG9tYWluID8gYXBwY2FjaGVEb21haW4gOiBXZWJJbnNw
ZWN0b3IuVUlTdHJpbmcoIkxvY2FsIEZpbGVzIiksIFsiYXBwbGljYXRpb24tY2FjaGUtc3RvcmFn
ZS10cmVlLWl0ZW0iXSk7Ci0gICAgdGhpcy5fYXBwY2FjaGVEb21haW4gPSBhcHBjYWNoZURvbWFp
bjsKKyAgICBXZWJJbnNwZWN0b3IuQmFzZVN0b3JhZ2VUcmVlRWxlbWVudC5jYWxsKHRoaXMsIHN0
b3JhZ2VQYW5lbCwgbnVsbCwgIiIsIFsiZnJhbWUtc3RvcmFnZS10cmVlLWl0ZW0iXSk7CisgICAg
dGhpcy5fZnJhbWVJZCA9IGZyYW1lSWQ7CisgICAgdGhpcy5fbWFuaWZlc3RVUkwgPSBtYW5pZmVz
dFVSTDsKKyAgICB0aGlzLl9yZWZyZXNoVGl0bGVzKCk7CiB9CiAKLVdlYkluc3BlY3Rvci5BcHBs
aWNhdGlvbkNhY2hlVHJlZUVsZW1lbnQucHJvdG90eXBlID0geworV2ViSW5zcGVjdG9yLkFwcGxp
Y2F0aW9uQ2FjaGVGcmFtZVRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICBnZXQgaXRlbVVS
TCgpCiAgICAgewotICAgICAgICByZXR1cm4gImFwcGNhY2hlOi8vIiArIHRoaXMuX2FwcGNhY2hl
RG9tYWluOworICAgICAgICByZXR1cm4gImFwcGNhY2hlOi8vIiArIHRoaXMuX21hbmlmZXN0VVJM
ICsgIi8iICsgZW5jb2RlVVJJKHRoaXMuZGlzcGxheU5hbWUpOworICAgIH0sCisKKyAgICBnZXQg
ZnJhbWVJZCgpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fZnJhbWVJZDsKKyAgICB9LAor
CisgICAgZ2V0IG1hbmlmZXN0VVJMKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9tYW5p
ZmVzdFVSTDsKKyAgICB9LAorCisgICAgX3JlZnJlc2hUaXRsZXM6IGZ1bmN0aW9uKCkKKyAgICB7
CisgICAgICAgIHZhciBmcmFtZSA9IFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5mcmFt
ZUZvcklkKHRoaXMuX2ZyYW1lSWQpOworICAgICAgICBpZiAoIWZyYW1lKSB7CisgICAgICAgICAg
ICB0aGlzLnN1YnRpdGxlVGV4dCA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygibmV3IGZyYW1lIik7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgdGhpcy50aXRsZVRleHQg
PSBmcmFtZS5uYW1lOworICAgICAgICB0aGlzLnN1YnRpdGxlVGV4dCA9IFdlYkluc3BlY3Rvci5S
ZXNvdXJjZS5kaXNwbGF5TmFtZShmcmFtZS51cmwpOworICAgIH0sCisKKyAgICBmcmFtZU5hdmln
YXRlZDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5fcmVmcmVzaFRpdGxlcygpOwog
ICAgIH0sCiAKICAgICBvbnNlbGVjdDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgV2ViSW5z
cGVjdG9yLkJhc2VTdG9yYWdlVHJlZUVsZW1lbnQucHJvdG90eXBlLm9uc2VsZWN0LmNhbGwodGhp
cyk7Ci0gICAgICAgIHRoaXMuX3N0b3JhZ2VQYW5lbC5zaG93QXBwbGljYXRpb25DYWNoZSh0aGlz
LCB0aGlzLl9hcHBjYWNoZURvbWFpbik7CisgICAgICAgIHRoaXMuX3N0b3JhZ2VQYW5lbC5zaG93
QXBwbGljYXRpb25DYWNoZSh0aGlzLl9mcmFtZUlkKTsKICAgICB9CiB9Ci1XZWJJbnNwZWN0b3Iu
QXBwbGljYXRpb25DYWNoZVRyZWVFbGVtZW50LnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNw
ZWN0b3IuQmFzZVN0b3JhZ2VUcmVlRWxlbWVudC5wcm90b3R5cGU7CitXZWJJbnNwZWN0b3IuQXBw
bGljYXRpb25DYWNoZUZyYW1lVHJlZUVsZW1lbnQucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYklu
c3BlY3Rvci5CYXNlU3RvcmFnZVRyZWVFbGVtZW50LnByb3RvdHlwZTsKIAogLyoqCiAgKiBAY29u
c3RydWN0b3IKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCBlZTFmNjJjYTRiZjEwYTY3MmFkMTc1MDZkZGQ3ZjI4MjNjMWQ2N2E3
Li5hNWU5NzliNGZlMWE5OWJhZDgzZDcxYjVhODhmYzg1Mjg4NDQ0NTdmIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMTEtMTEtMDkgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogQXBwbGljYXRpb25DYWNoZSBVSSBpcyBjb25m
dXNpbmcgYW5kIGluY29ycmVjdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTY0NTgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL2FwcGNhY2hl
LWlmcmFtZS1tYW5pZmVzdHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL2FwcGNhY2hlLWlmcmFtZS1tYW5pZmVzdHMuaHRt
bDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9y
ZXNvdXJjZXMvbWFuaWZlc3QucGhwOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3Bl
Y3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlcy9wYWdlLXdpdGgtbWFuaWZlc3QucGhwOiBBZGRl
ZC4KKwogMjAxMS0xMS0wOSAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CiAK
ICAgICAgICAgTm90IHJldmlld2VkOiBtYWtlIG5ldyBpbnNwZWN0b3IgdGVzdCBwYXNzIG9uIFF0
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2Ut
dHJlZS9hcHBjYWNoZS1pZnJhbWUtbWFuaWZlc3RzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvYXBwY2FjaGUtaWZyYW1lLW1hbmlm
ZXN0cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWQ0MDUwZWJkOTZjMGY1MWYzNDk2MzZmZDk1
YjlkOTY5ZjhhZmI2NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvYXBwY2FjaGUtaWZyYW1lLW1hbmlmZXN0cy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwyMSBAQAorVGVzdHMgdGhhdCBhcHBsaWNhdGlvbiBjYWNoZSBtb2Rl
bCBrZWVwcyB0cmFjayBvZiBtYW5pZmVzdCB1cmxzIGFuZCBzdGF0dXNlcyBjb3JyZWN0bHkuCisK
K0J1ZyA2NDU4MQorRHVtcGluZyBhcHBsaWNhdGlvbiBjYWNoZSBtb2RlbDoKKworRHVtcGluZyBh
cHBsaWNhdGlvbiBjYWNoZSBtb2RlbDoKKyAgICBGcmFtZTogZnJhbWUxIChodHRwOi8vMTI3LjAu
MC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2VzL3BhZ2Utd2l0aC1tYW5p
ZmVzdC5waHA/bWFuaWZlc3RJZD0xKSBoYXMgbWFuaWZlc3QgdXJsOiBodHRwOi8vMTI3LjAuMC4x
OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2VzL21hbmlmZXN0LnBocD9tYW5p
ZmVzdElkPTEKKworRHVtcGluZyBhcHBsaWNhdGlvbiBjYWNoZSBtb2RlbDoKKyAgICBGcmFtZTog
ZnJhbWUxIChodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVz
b3VyY2VzL3BhZ2Utd2l0aC1tYW5pZmVzdC5waHA/bWFuaWZlc3RJZD0yKSBoYXMgbWFuaWZlc3Qg
dXJsOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3Vy
Y2VzL21hbmlmZXN0LnBocD9tYW5pZmVzdElkPTIKKworRHVtcGluZyBhcHBsaWNhdGlvbiBjYWNo
ZSBtb2RlbDoKKyAgICBGcmFtZTogZnJhbWUxIChodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVj
dG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2VzL3BhZ2Utd2l0aC1tYW5pZmVzdC5waHA/bWFuaWZl
c3RJZD0yKSBoYXMgbWFuaWZlc3QgdXJsOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9y
L3Jlc291cmNlLXRyZWUvcmVzb3VyY2VzL21hbmlmZXN0LnBocD9tYW5pZmVzdElkPTIKKyAgICBG
cmFtZTogZnJhbWUyIChodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlLXRy
ZWUvcmVzb3VyY2VzL3BhZ2Utd2l0aC1tYW5pZmVzdC5waHA/bWFuaWZlc3RJZD0xKSBoYXMgbWFu
aWZlc3QgdXJsOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUv
cmVzb3VyY2VzL21hbmlmZXN0LnBocD9tYW5pZmVzdElkPTEKKworRHVtcGluZyBhcHBsaWNhdGlv
biBjYWNoZSBtb2RlbDoKKyAgICBGcmFtZTogZnJhbWUxIChodHRwOi8vMTI3LjAuMC4xOjgwMDAv
aW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2VzL3BhZ2Utd2l0aC1tYW5pZmVzdC5waHA/
bWFuaWZlc3RJZD0yKSBoYXMgbWFuaWZlc3QgdXJsOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5z
cGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2VzL21hbmlmZXN0LnBocD9tYW5pZmVzdElkPTIK
KyAgICBGcmFtZTogZnJhbWUyIChodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291
cmNlLXRyZWUvcmVzb3VyY2VzL3BhZ2Utd2l0aC1tYW5pZmVzdC5waHA/bWFuaWZlc3RJZD0xKSBo
YXMgbWFuaWZlc3QgdXJsOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNl
LXRyZWUvcmVzb3VyY2VzL21hbmlmZXN0LnBocD9tYW5pZmVzdElkPTEKKyAgICBGcmFtZTogZnJh
bWUzIChodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3Vy
Y2VzL3BhZ2Utd2l0aC1tYW5pZmVzdC5waHA/bWFuaWZlc3RJZD0xKSBoYXMgbWFuaWZlc3QgdXJs
OiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2Vz
L21hbmlmZXN0LnBocD9tYW5pZmVzdElkPTEKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL2FwcGNhY2hlLWlmcmFtZS1tYW5pZmVz
dHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUv
YXBwY2FjaGUtaWZyYW1lLW1hbmlmZXN0cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjNmJiNWYyYzZlYTQ4
YWUyZmFiOTZhNmM4ZGE5ZTY5Yzk1ZDYyMzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL2FwcGNhY2hlLWlmcmFtZS1tYW5p
ZmVzdHMuaHRtbApAQCAtMCwwICsxLDE1OCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgordmFyIGZyYW1lc0Nv
dW50ID0gMDsKKworZnVuY3Rpb24gY3JlYXRlQW5kTmF2aWdhdGVJRnJhbWUodXJsKQoreworICAg
IGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgIGlmcmFtZS5z
cmMgPSB1cmw7CisgICAgaWZyYW1lLm5hbWUgPSAiZnJhbWUiICsgKytmcmFtZXNDb3VudDsKKyAg
ICBpZnJhbWUuaWQgPSBpZnJhbWUubmFtZTsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxk
KGlmcmFtZSk7Cit9CisKK2Z1bmN0aW9uIG5hdmlnYXRlSUZyYW1lKG5hbWUsIHVybCkKK3sKKyAg
ICBpZnJhbWUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjIiArIG5hbWUpOworICAgIGlmcmFt
ZS5zcmMgPSB1cmw7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGZ1bmN0aW9uIGNyZWF0
ZUFuZE5hdmlnYXRlSUZyYW1lKHVybCwgY2FsbGJhY2spCisgICAgeworICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLnByb3RvdHlw
ZSwgIl9mcmFtZU5hdmlnYXRlZCIsIGZyYW1lTmF2aWdhdGVkKTsKKyAgICAgICAgSW5zcGVjdG9y
VGVzdC5ldmFsdWF0ZUluUGFnZSgiY3JlYXRlQW5kTmF2aWdhdGVJRnJhbWUodW5lc2NhcGUoJyIg
KyBlc2NhcGUodXJsKSArICInKSkiKTsKKworICAgICAgICBmdW5jdGlvbiBmcmFtZU5hdmlnYXRl
ZChmcmFtZSkKKyAgICAgICAgeworICAgICAgICAgICAgY2FsbGJhY2soZnJhbWUuaWQpOworICAg
ICAgICB9CisgICAgfQorCisgICAgZnVuY3Rpb24gbmF2aWdhdGVJRnJhbWUoZnJhbWVJZCwgdXJs
LCBjYWxsYmFjaykKKyAgICB7CisgICAgICAgIHZhciBmcmFtZSA9IFdlYkluc3BlY3Rvci5yZXNv
dXJjZVRyZWVNb2RlbC5mcmFtZUZvcklkKGZyYW1lSWQpCisgICAgICAgIEluc3BlY3RvclRlc3Qu
ZXZhbHVhdGVJblBhZ2UoIm5hdmlnYXRlSUZyYW1lKHVuZXNjYXBlKCciICsgZXNjYXBlKGZyYW1l
Lm5hbWUpICsiJyksIHVuZXNjYXBlKCciICsgZXNjYXBlKHVybCkgKyAiJykpIik7CisgICAgICAg
IEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwu
cHJvdG90eXBlLCAiX2ZyYW1lTmF2aWdhdGVkIiwgZnJhbWVOYXZpZ2F0ZWQpOworCisgICAgICAg
IGZ1bmN0aW9uIGZyYW1lTmF2aWdhdGVkKGZyYW1lKQorICAgICAgICB7CisgICAgICAgICAgICBj
YWxsYmFjayhmcmFtZS5pZCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBmdW5jdGlvbiBkdW1w
QXBwbGljYXRpb25DYWNoZU1vZGVsKCkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KCJEdW1waW5nIGFwcGxpY2F0aW9uIGNhY2hlIG1vZGVsOiIpOworICAgICAgICB2YXIg
bW9kZWwgPSBXZWJJbnNwZWN0b3IucGFuZWxzLnJlc291cmNlcy5fYXBwbGljYXRpb25DYWNoZU1v
ZGVsOworCisgICAgICAgIHZhciBmcmFtZUlkcyA9IFtdOworICAgICAgICBmb3IgKHZhciBmcmFt
ZUlkIGluIG1vZGVsLl9tYW5pZmVzdFVSTHNCeUZyYW1lKSB7CisgICAgICAgICAgICBmcmFtZUlk
cy5wdXNoKGZyYW1lSWQpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY29tcGFyZUZ1
bmMoYSwgYikgeworICAgICAgICAgICAgdmFyIGFGcmFtZSA9IFdlYkluc3BlY3Rvci5yZXNvdXJj
ZVRyZWVNb2RlbC5mcmFtZUZvcklkKGEpOworICAgICAgICAgICAgdmFyIGJGcmFtZSA9IFdlYklu
c3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5mcmFtZUZvcklkKGIpOworICAgICAgICAgICAgcmV0
dXJuIGFGcmFtZS5uYW1lLmxvY2FsZUNvbXBhcmUoYkZyYW1lLm5hbWUpOworICAgICAgICB9Cisg
ICAgICAgIGZyYW1lSWRzLnNvcnQoY29tcGFyZUZ1bmMpOworCisgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgZnJhbWVJZHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHZhciBmcmFtZUlk
ID0gZnJhbWVJZHNbaV07CisgICAgICAgICAgICB2YXIgZnJhbWUgPSBXZWJJbnNwZWN0b3IucmVz
b3VyY2VUcmVlTW9kZWwuZnJhbWVGb3JJZChmcmFtZUlkKTsKKyAgICAgICAgICAgIHZhciBtYW5p
ZmVzdFVSTCA9IG1vZGVsLl9tYW5pZmVzdFVSTHNCeUZyYW1lW2ZyYW1lSWRdOworICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICBGcmFtZTogIiArIGZyYW1lLm5hbWUgKyAi
ICgiICsgZnJhbWUudXJsICsgIikgaGFzIG1hbmlmZXN0IHVybDogIiArIG1hbmlmZXN0VVJMKTsK
KyAgICAgICAgfQorICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiIik7CisgICAgfQor
CisgICAgZnVuY3Rpb24gd2FpdEZvckZyYW1lc01hbmlmZXN0VVJMQW5kU3RhdHVzKGZyYW1lRGF0
YSwgY2FsbGJhY2ssIGlkLCBtYW4sIHN0KQorICAgIHsKKyAgICAgICAgZm9yICh2YXIgZnJhbWVJ
ZCBpbiBmcmFtZURhdGEpIHsKKyAgICAgICAgICAgIHZhciBmcmFtZU1hbmlmZXN0U3RhdHVzID0g
V2ViSW5zcGVjdG9yLnBhbmVscy5yZXNvdXJjZXMuX2FwcGxpY2F0aW9uQ2FjaGVNb2RlbC5mcmFt
ZU1hbmlmZXN0U3RhdHVzKGZyYW1lSWQpOworICAgICAgICAgICAgdmFyIGZyYW1lTWFuaWZlc3RV
UkwgPSBXZWJJbnNwZWN0b3IucGFuZWxzLnJlc291cmNlcy5fYXBwbGljYXRpb25DYWNoZU1vZGVs
LmZyYW1lTWFuaWZlc3RVUkwoZnJhbWVJZCk7CisgICAgICAgICAgICBpZiAoZnJhbWVNYW5pZmVz
dFN0YXR1cyA9PT0gZnJhbWVEYXRhW2ZyYW1lSWRdLnN0YXR1cyAmJiBmcmFtZU1hbmlmZXN0VVJM
LmluZGV4T2YoZnJhbWVEYXRhW2ZyYW1lSWRdLm1hbmlmZXN0VVJMKSAhPT0gLTEpCisgICAgICAg
ICAgICAgICAgZGVsZXRlIGZyYW1lRGF0YVtmcmFtZUlkXTsKKyAgICAgICAgfQorCisgICAgICAg
IGZvciAodmFyIGlkIGluIGZyYW1lRGF0YSkgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlTW9kZWwucHJvdG90eXBlLCAi
X2ZyYW1lTWFuaWZlc3RVcGRhdGVkIiwgd2FpdEZvckZyYW1lc01hbmlmZXN0VVJMQW5kU3RhdHVz
LmJpbmQodGhpcywgZnJhbWVEYXRhLCBjYWxsYmFjaykpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisKKyAgICAgICAgY2FsbGJhY2soKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB3
YWl0Rm9yRnJhbWVNYW5pZmVzdFVSTEFuZFN0YXR1cyhmcmFtZUlkLCBtYW5pZmVzdFVSTCwgc3Rh
dHVzLCBjYWxsYmFjaykKKyAgICB7CisgICAgICAgIHZhciBmcmFtZURhdGEgPSB7fTsKKyAgICAg
ICAgZnJhbWVEYXRhW2ZyYW1lSWRdID0ge3N0YXR1czogc3RhdHVzLCBtYW5pZmVzdFVSTDogbWFu
aWZlc3RVUkx9OworICAgICAgICB3YWl0Rm9yRnJhbWVzTWFuaWZlc3RVUkxBbmRTdGF0dXMoZnJh
bWVEYXRhLCBjYWxsYmFjayk7CisgICAgfQorCisgICAgdmFyIGZyYW1lSWQxOworICAgIHZhciBm
cmFtZUlkMjsKKyAgICB2YXIgZnJhbWVJZDM7CisKKyAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVs
KCJyZXNvdXJjZXMiKTsKKyAgICBkdW1wQXBwbGljYXRpb25DYWNoZU1vZGVsKCk7CisgICAgY3Jl
YXRlQW5kTmF2aWdhdGVJRnJhbWUoInJlc291cmNlcy9wYWdlLXdpdGgtbWFuaWZlc3QucGhwP21h
bmlmZXN0SWQ9MSIsIHN0ZXAxKTsKKworICAgIGZ1bmN0aW9uIHN0ZXAxKGZyYW1lSWQpCisgICAg
eworICAgICAgICBmcmFtZUlkMSA9IGZyYW1lSWQ7CisgICAgICAgIHdhaXRGb3JGcmFtZU1hbmlm
ZXN0VVJMQW5kU3RhdHVzKGZyYW1lSWQxLCAibWFuaWZlc3QucGhwP21hbmlmZXN0SWQ9MSIsIGFw
cGxpY2F0aW9uQ2FjaGUuSURMRSwgc3RlcDIpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0ZXAy
KCkKKyAgICB7CisgICAgICAgIGR1bXBBcHBsaWNhdGlvbkNhY2hlTW9kZWwoKTsKKyAgICAgICAg
bmF2aWdhdGVJRnJhbWUoZnJhbWVJZDEsICJyZXNvdXJjZXMvcGFnZS13aXRoLW1hbmlmZXN0LnBo
cD9tYW5pZmVzdElkPTIiLCBzdGVwMyk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDMoZnJh
bWVJZCkKKyAgICB7CisgICAgICAgIHdhaXRGb3JGcmFtZU1hbmlmZXN0VVJMQW5kU3RhdHVzKGZy
YW1lSWQxLCAibWFuaWZlc3QucGhwP21hbmlmZXN0SWQ9MiIsIGFwcGxpY2F0aW9uQ2FjaGUuSURM
RSwgc3RlcDQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0ZXA0KCkKKyAgICB7CisgICAgICAg
IGR1bXBBcHBsaWNhdGlvbkNhY2hlTW9kZWwoKTsKKyAgICAgICAgY3JlYXRlQW5kTmF2aWdhdGVJ
RnJhbWUoInJlc291cmNlcy9wYWdlLXdpdGgtbWFuaWZlc3QucGhwP21hbmlmZXN0SWQ9MSIsIHN0
ZXA1KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdGVwNShmcmFtZUlkKQorICAgIHsKKyAgICAg
ICAgZnJhbWVJZDIgPSBmcmFtZUlkOworICAgICAgICB3YWl0Rm9yRnJhbWVNYW5pZmVzdFVSTEFu
ZFN0YXR1cyhmcmFtZUlkMiwgIm1hbmlmZXN0LnBocD9tYW5pZmVzdElkPTEiLCBhcHBsaWNhdGlv
bkNhY2hlLklETEUsIHN0ZXA2KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdGVwNigpCisgICAg
eworICAgICAgICBkdW1wQXBwbGljYXRpb25DYWNoZU1vZGVsKCk7CisgICAgICAgIGNyZWF0ZUFu
ZE5hdmlnYXRlSUZyYW1lKCJyZXNvdXJjZXMvcGFnZS13aXRoLW1hbmlmZXN0LnBocD9tYW5pZmVz
dElkPTEiLCBzdGVwNyk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDcoZnJhbWVJZCkKKyAg
ICB7CisgICAgICAgIGZyYW1lSWQzID0gZnJhbWVJZDsKKyAgICAgICAgd2FpdEZvckZyYW1lTWFu
aWZlc3RVUkxBbmRTdGF0dXMoZnJhbWVJZDMsICJtYW5pZmVzdC5waHA/bWFuaWZlc3RJZD0xIiwg
YXBwbGljYXRpb25DYWNoZS5JRExFLCBzdGVwOCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3Rl
cDgoKQorICAgIHsKKyAgICAgICAgZHVtcEFwcGxpY2F0aW9uQ2FjaGVNb2RlbCgpOworICAgICAg
ICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgIH0KK30KKzwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+VGVzdHMgdGhhdCBhcHBsaWNhdGlv
biBjYWNoZSBtb2RlbCBrZWVwcyB0cmFjayBvZiBtYW5pZmVzdCB1cmxzIGFuZCBzdGF0dXNlcyBj
b3JyZWN0bHkuPC9wPgorPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTY0NTgxIj5CdWcgNjQ1ODE8L2E+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNl
cy9tYW5pZmVzdC5waHAgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJj
ZS10cmVlL3Jlc291cmNlcy9tYW5pZmVzdC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjdhNWQxMjA2ZGM1MzZi
NGU5NjUzMDE2MDhkOTIyNjIxZDVmY2E2NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2VzL21hbmlmZXN0LnBo
cApAQCAtMCwwICsxLDEyIEBACis8P3BocAorICAgIGhlYWRlcigiRXhwaXJlczogVGh1LCAwMSBE
ZWMgMjAwMyAxNjowMDowMCBHTVQiKTsKKyAgICBoZWFkZXIoIkNhY2hlLUNvbnRyb2w6IG5vLWNh
Y2hlLCBtdXN0LXJldmFsaWRhdGUiKTsKKyAgICBoZWFkZXIoIlByYWdtYTogbm8tY2FjaGUiKTsK
KyAgICBoZWFkZXIoIkNvbnRlbnQtVHlwZTogdGV4dC9jYWNoZS1tYW5pZmVzdCIpOworCisgICAg
JG1hbmlmZXN0SWQgPSAkX0dFVFsibWFuaWZlc3RJZCJdOworCisgICAgZWNobygiQ0FDSEUgTUFO
SUZFU1RcbiIpOworICAgIGVjaG8oIiMgIiAuICRtYW5pZmVzdElkIC4gIlxuIik7CisgICAgZWNo
bygicGFnZS13aXRoLW1hbmlmZXN0LnBocD9tYW5pZmVzdElkPSIgLiAkbWFuaWZlc3RJZCk7Cis/
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2Ut
dHJlZS9yZXNvdXJjZXMvcGFnZS13aXRoLW1hbmlmZXN0LnBocCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2VzL3BhZ2Utd2l0aC1tYW5pZmVz
dC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYzA4ZGMwNzUzOWI0MTBkYWJlNWZhZmRlMjYxMzBmYTVhNDVlZmMx
MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jl
c291cmNlLXRyZWUvcmVzb3VyY2VzL3BhZ2Utd2l0aC1tYW5pZmVzdC5waHAKQEAgLTAsMCArMSwx
MyBAQAorPD9waHAKKyRtYW5pZmVzdElkID0gJF9HRVRbIm1hbmlmZXN0SWQiXTsKK2VjaG8gIjxo
dG1sIG1hbmlmZXN0PVwibWFuaWZlc3QucGhwP21hbmlmZXN0SWQ9IiAuICRtYW5pZmVzdElkIC4g
IlwiPlxuIjsKKz8+Cis8aGVhZD4KKzwvaGVhZD4KKzxib2R5PgorPD9waHAKKyRtYW5pZmVzdElk
ID0gJF9HRVRbIm1hbmlmZXN0SWQiXTsKK2VjaG8gIlBhZ2Ugd2l0aCBtYW5pZmVzdCAjIiAuICRt
YW5pZmVzdElkLiAiLlxuIjsKKz8+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114479</attachid>
            <date>2011-11-10 05:46:03 -0800</date>
            <delta_ts>2011-11-10 08:37:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64581-20111110174601.patch</filename>
            <type>text/plain</type>
            <size>61199</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTk4MzYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmMTJiOGNhODIzOGIyOTBk
YjUwNmNlZGU0YjRkMmNmZjgwZGZjMWZkLi5jOTYyODc4YjBhNTcxODgyNmRjMzNlNmIzNjYwNTMx
ODY2Mjc4Nzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODkgQEAKKzIwMTEtMTEtMTAgIFZzZXZv
bG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogQXBwbGljYXRpb25DYWNoZSBVSSBpcyBjb25mdXNpbmcgYW5kIGluY29ycmVjdC4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0NTgxCisKKyAgICAg
ICAgRml4ZWQgcmVzb3VyY2VzIHBhbmVsIGFwcGxpY2F0aW9uIGNhY2hlIFVJLgorICAgICAgICBN
YW5pZmVzdCB1cmxzIGFyZSBub3cgc2hvd24gdW5kZXIgYXBwbGljYXRpb24gY2FjaGUgdHJlZSBl
bGVtZW50LgorICAgICAgICBVbmRlciBlYWNoIG1hbmlmZXN0IHVybCB0cmVlIGVsZW1lbnQgZnJh
bWVzIHVzaW5nIHJlbGV2YW50IGFwcGxpY2F0aW9uCisgICAgICAgIGNhY2hlIGFyZSBsaXN0ZWQu
IEFwcGxpY2F0aW9uIGNhY2hlIGRldGFpbGVkIHZpZXdzIGNvdWxkIGJlIG9wZW5lZCBmb3IgZWFj
aAorICAgICAgICBmcmFtZS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL2FwcGNh
Y2hlLWlmcmFtZS1tYW5pZmVzdHMuaHRtbAorCisgICAgICAgICogRW5nbGlzaC5scHJvai9sb2Nh
bGl6ZWRTdHJpbmdzLmpzOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3IuanNvbjoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6SW5zcGVjdG9y
QXBwbGljYXRpb25DYWNoZUFnZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFwcGxp
Y2F0aW9uQ2FjaGVBZ2VudDo6c2V0RnJvbnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yQXBwbGljYXRpb25DYWNoZUFnZW50Ojp1cGRhdGVBcHBsaWNhdGlvbkNhY2hlU3RhdHVzKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6bmV0d29y
a1N0YXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBcHBsaWNhdGlvbkNh
Y2hlQWdlbnQ6OmVuYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBcHBsaWNhdGlv
bkNhY2hlQWdlbnQ6OmdldEZyYW1lc1dpdGhNYW5pZmVzdHMpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50Ojphc3NlcnRGcmFtZVdpdGhEb2N1bWVudExv
YWRlcik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6
OmdldE1hbmlmZXN0Rm9yRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQXBwbGlj
YXRpb25DYWNoZUFnZW50OjpnZXRBcHBsaWNhdGlvbkNhY2hlRm9yRnJhbWUpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50OjpidWlsZE9iamVjdEZvckFw
cGxpY2F0aW9uQ2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQXBwbGljYXRpb25D
YWNoZUFnZW50OjpidWlsZE9iamVjdEZvckFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZSk6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckNvbnRyb2xsZXI6Okluc3BlY3RvckNvbnRyb2xsZXIpOgorICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yUGFnZUFnZW50OjpyZXNvdXJjZUNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yUGFnZUFnZW50OjpnZXRSZXNvdXJjZUNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yUGFnZUFnZW50Ojphc3NlcnRGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JQYWdlQWdlbnQ6OmFzc2VydERvY3VtZW50TG9hZGVyKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9yUGFnZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclN0eWxl
U2hlZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGVTaGVldDo6cmVzb3Vy
Y2VTdHlsZVNoZWV0VGV4dCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9BcHBsaWNh
dGlvbkNhY2hlSXRlbXNWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9u
Q2FjaGVJdGVtc1ZpZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVJ
dGVtc1ZpZXcucHJvdG90eXBlLl91cGRhdGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkFwcGxp
Y2F0aW9uQ2FjaGVJdGVtc1ZpZXcucHJvdG90eXBlLl91cGRhdGVDYWxsYmFjayk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZUl0ZW1zVmlldy5wcm90b3R5cGUuX3BvcHVs
YXRlRGF0YUdyaWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQXBwbGljYXRpb25D
YWNoZU1vZGVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVNb2Rl
bCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZU1vZGVsLnByb3RvdHlw
ZS5fZnJhbWVOYXZpZ2F0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2Fj
aGVNb2RlbC5wcm90b3R5cGUuX2ZyYW1lRGV0YWNoZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkFwcGxpY2F0aW9uQ2FjaGVNb2RlbC5wcm90b3R5cGUuX21haW5GcmFtZU5hdmlnYXRlZCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZU1vZGVsLnByb3RvdHlwZS5fbWFu
aWZlc3RGb3JGcmFtZUxvYWRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25D
YWNoZU1vZGVsLnByb3RvdHlwZS5fZnJhbWVzV2l0aE1hbmlmZXN0c0xvYWRlZCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZU1vZGVsLnByb3RvdHlwZS5fZnJhbWVNYW5p
ZmVzdFVwZGF0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVNb2Rl
bC5wcm90b3R5cGUuX2ZyYW1lTWFuaWZlc3RSZW1vdmVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5BcHBsaWNhdGlvbkNhY2hlTW9kZWwucHJvdG90eXBlLmZyYW1lTWFuaWZlc3RVUkwpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVNb2RlbC5wcm90b3R5cGUuZnJhbWVN
YW5pZmVzdFN0YXR1cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZU1v
ZGVsLnByb3RvdHlwZS5fc3RhdHVzVXBkYXRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXBw
bGljYXRpb25DYWNoZU1vZGVsLnByb3RvdHlwZS5yZXF1ZXN0QXBwbGljYXRpb25DYWNoZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZU1vZGVsLnByb3RvdHlwZS5fbmV0
d29ya1N0YXRlVXBkYXRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNo
ZURpc3BhdGNoZXIucHJvdG90eXBlLmFwcGxpY2F0aW9uQ2FjaGVTdGF0dXNVcGRhdGVkKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlRGlzcGF0Y2hlci5wcm90b3R5cGUu
bmV0d29ya1N0YXRlVXBkYXRlZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNv
dXJjZVRyZWVNb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2Rl
bC5wcm90b3R5cGUuZnJhbWVGb3JJZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9S
ZXNvdXJjZXNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5w
cm90b3R5cGUud2FzU2hvd24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVs
LnByb3RvdHlwZS5yZXNldCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwu
cHJvdG90eXBlLl9mcmFtZU5hdmlnYXRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3Vy
Y2VzUGFuZWwucHJvdG90eXBlLmFkZERvY3VtZW50VVJMKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUuc2hvd0FwcGxpY2F0aW9uQ2FjaGUpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZS5fcG9wdWxhdGVBcHBsaWNh
dGlvbkNhY2hlVHJlZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJv
dG90eXBlLl9hcHBsaWNhdGlvbkNhY2hlRnJhbWVNYW5pZmVzdEFkZGVkKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUuX2FwcGxpY2F0aW9uQ2FjaGVGcmFt
ZU1hbmlmZXN0UmVtb3ZlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwu
cHJvdG90eXBlLl9hcHBsaWNhdGlvbkNhY2hlRnJhbWVNYW5pZmVzdFN0YXR1c0NoYW5nZWQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZS5fYXBwbGljYXRp
b25DYWNoZU5ldHdvcmtTdGF0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkFwcGxp
Y2F0aW9uQ2FjaGVNYW5pZmVzdFRyZWVFbGVtZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5B
cHBsaWNhdGlvbkNhY2hlTWFuaWZlc3RUcmVlRWxlbWVudC5wcm90b3R5cGUuZ2V0IGl0ZW1VUkwp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVNYW5pZmVzdFRyZWVFbGVt
ZW50LnByb3RvdHlwZS5nZXQgbWFuaWZlc3RVUkwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkFw
cGxpY2F0aW9uQ2FjaGVNYW5pZmVzdFRyZWVFbGVtZW50LnByb3RvdHlwZS5vbnNlbGVjdCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZUZyYW1lVHJlZUVsZW1lbnQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVGcmFtZVRyZWVFbGVtZW50LnBy
b3RvdHlwZS5nZXQgaXRlbVVSTCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25D
YWNoZUZyYW1lVHJlZUVsZW1lbnQucHJvdG90eXBlLmdldCBmcmFtZUlkKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlRnJhbWVUcmVlRWxlbWVudC5wcm90b3R5cGUuZ2V0
IG1hbmlmZXN0VVJMKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlRnJh
bWVUcmVlRWxlbWVudC5wcm90b3R5cGUuX3JlZnJlc2hUaXRsZXMpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVGcmFtZVRyZWVFbGVtZW50LnByb3RvdHlwZS5mcmFtZU5h
dmlnYXRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZUZyYW1lVHJl
ZUVsZW1lbnQucHJvdG90eXBlLm9uc2VsZWN0KToKKwogMjAxMS0xMS0xMCAgTmlrb2xhcyBaaW1t
ZXJtYW5uICA8bnppbW1lcm1hbm5AcmltLmNvbT4KIAogICAgICAgICBOb3QgcmV2aWV3ZWQuIEZp
eCBidWlsZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZjFiZmE2ZTZjODMxZTQyOWFj
YWJjMjg3ZjNiNGI4MThmMmFkNTU1Ni4uMTM3NTkyODg2ODk4MTNkZmUzMTY1ZTcyYmU1NmVmOGFk
YmRmMmFjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAx
MS0xMS0xMCAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBBcHBsaWNhdGlvbkNhY2hlIFVJIGlzIGNvbmZ1c2luZyBhbmQgaW5j
b3JyZWN0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NjQ1ODEKKworICAgICAgICBSb2xsZWQgREVQUy4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIERFUFM6CisKIDIwMTEtMTEtMTAgIEpheSBDaXZlbGxp
ICA8amNpdmVsbGlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEZpeCBwcm9ncmVzcyBsb2FkIHJl
cG9ydGluZyBmb3IgTUhUTUwgZG9jdW1lbnRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
RW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIvU291cmNlL1dlYkNvcmUvRW5nbGlz
aC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCmluZGV4IGRhZWYyYjkyODI1NWMwMTQ4MmViYTU5
Yzc5ZjZjNTcxZTAwM2UwODYuLmMyZmY5NmEzNmUxNWVmYzY4MzcxOTc5ODBiMTY4ZDQ1ZTM5YWQ5
ZjUgMTAwNjQ0CkdJVCBiaW5hcnkgcGF0Y2gKZGVsdGEgNDgKemNtYUVgb01xUHZtV0N+aTR9PlNy
KE5TVHxWQFBFdnBCJEphSWVGZWJIWCNMdUc9P0lFTTIxfFRzMWshVTB+WjRUCkRzWGgocAoKZGVs
dGEgMTEKU2NtZG5CZzV8Ky1tV0N+aTR9PHxCajBHQTEKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yLmpzb24KaW5kZXggZTJhMGMwZGIyMGU4NmFlNTYyN2MyODExMmFjMzFhODgxYTM1
MDY0Yi4uNzY0ZjA3MGQ1NDhlZjExYTcwNTUzMjllMDdjY2UwNzAxYjYyNTkwOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgpAQCAtOTI1LDI4ICs5MjUsODIgQEAKICAg
ICAgICAgImhpZGRlbiI6IHRydWUsCiAgICAgICAgICJ0eXBlcyI6IFsKICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAiaWQiOiAiQXBwQ2FjaGUiLAorICAgICAgICAgICAgICAgICJpZCI6
ICJBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UiLAogICAgICAgICAgICAgICAgICJ0eXBlIjogIm9i
amVjdCIsCi0gICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkFwcENhY2hlLiIKKyAgICAg
ICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRGV0YWlsZWQgYXBwbGljYXRpb24gY2FjaGUgcmVz
b3VyY2UgaW5mb3JtYXRpb24uIiwKKyAgICAgICAgICAgICAgICAicHJvcGVydGllcyI6IFsKKyAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ1cmwiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVz
Y3JpcHRpb24iOiAiUmVzb3VyY2UgdXJsLiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJzaXplIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlJlc291cmNlIHNp
emUuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInR5cGUiLCAidHlwZSI6ICJz
dHJpbmciLCAiZGVzY3JpcHRpb24iOiAiUmVzb3VyY2UgdHlwZS4iIH0KKyAgICAgICAgICAgICAg
ICBdCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJpZCI6
ICJBcHBsaWNhdGlvbkNhY2hlIiwKKyAgICAgICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAor
ICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJEZXRhaWxlZCBhcHBsaWNhdGlvbiBjYWNo
ZSBpbmZvcm1hdGlvbi4iLAorICAgICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWworICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogIm1hbmlmZXN0VVJMIiwgInR5cGUiOiAic3RyaW5nIiwg
ImRlc2NyaXB0aW9uIjogIk1hbmlmZXN0IFVSTC4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAic2l6ZSIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJBcHBsaWNh
dGlvbiBjYWNoZSBzaXplLiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjcmVh
dGlvblRpbWUiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiQXBwbGljYXRpb24g
Y2FjaGUgY3JlYXRpb24gdGltZS4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
dXBkYXRlVGltZSIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJBcHBsaWNhdGlv
biBjYWNoZSB1cGRhdGUgdGltZS4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
cmVzb3VyY2VzIiwgInR5cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7ICIkcmVmIjogIkFwcGxpY2F0
aW9uQ2FjaGVSZXNvdXJjZSIgfSwgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIGNhY2hlIHJl
c291cmNlcy4iIH0KKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9LAorICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgICJpZCI6ICJGcmFtZVdpdGhNYW5pZmVzdCIsCisgICAgICAg
ICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKKyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24i
OiAiRnJhbWUgaWRlbnRpZmllciAtIG1hbmlmZXN0IFVSTCBwYWlyLiIsCisgICAgICAgICAgICAg
ICAgInByb3BlcnRpZXMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZnJhbWVJ
ZCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJGcmFtZSBpZGVudGlmaWVyLiIg
fSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJtYW5pZmVzdFVSTCIsICJ0eXBlIjog
InN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJNYW5pZmVzdCBVUkwuIiB9LAorICAgICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogInN0YXR1cyIsICJ0eXBlIjogImludGVnZXIiLCAiZGVzY3JpcHRp
b24iOiAiQXBwbGljYXRpb24gY2FjaGUgc3RhdHVzLiIgfQorICAgICAgICAgICAgICAgIF0KICAg
ICAgICAgICAgIH0KICAgICAgICAgXSwKICAgICAgICAgImNvbW1hbmRzIjogWwogICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgICJuYW1lIjogImdldEFwcGxpY2F0aW9uQ2FjaGVzIiwKKyAg
ICAgICAgICAgICAgICAibmFtZSI6ICJnZXRGcmFtZXNXaXRoTWFuaWZlc3RzIiwKICAgICAgICAg
ICAgICAgICAicmV0dXJucyI6IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJhcHBs
aWNhdGlvbkNhY2hlcyIsICIkcmVmIjogIkFwcENhY2hlIiB9Ci0gICAgICAgICAgICAgICAgXQor
ICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZyYW1lSWRzIiwgInR5cGUiOiAiYXJyYXki
LCAiaXRlbXMiOiB7ICIkcmVmIjogIkZyYW1lV2l0aE1hbmlmZXN0IiB9LCAiZGVzY3JpcHRpb24i
OiAiQXJyYXkgb2YgZnJhbWUgaWRlbnRpZmllcnMgd2l0aCBtYW5pZmVzdCB1cmxzIGZvciBlYWNo
IGZyYW1lIGNvbnRhaW5pbmcgYSBkb2N1bWVudCBhc3NvY2lhdGVkIHdpdGggc29tZSBhcHBsaWNh
dGlvbiBjYWNoZS4iIH0KKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICJkZXNj
cmlwdGlvbiI6ICJSZXR1cm5zIGFycmF5IG9mIGZyYW1lIGlkZW50aWZpZXJzIHdpdGggbWFuaWZl
c3QgdXJscyBmb3IgZWFjaCBmcmFtZSBjb250YWluaW5nIGEgZG9jdW1lbnQgYXNzb2NpYXRlZCB3
aXRoIHNvbWUgYXBwbGljYXRpb24gY2FjaGUuIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJlbmFibGUiLAorICAgICAgICAgICAgICAgICJk
ZXNjcmlwdGlvbiI6ICJFbmFibGVzIGFwcGxpY2F0aW9uIGNhY2hlIGRvbWFpbiBub3RpZmljYXRp
b25zLiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5h
bWUiOiAiZ2V0TWFuaWZlc3RGb3JGcmFtZSIsCisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMi
OiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZnJhbWVJZCIsICJ0eXBlIjogInN0
cmluZyIsICJkZXNjcmlwdGlvbiI6ICJJZGVudGlmaWVyIG9mIHRoZSBmcmFtZSBjb250YWluaW5n
IGRvY3VtZW50IHdob3NlIG1hbmlmZXN0IGlzIHJldHJpZXZlZC4iIH0KKyAgICAgICAgICAgICAg
ICBdLAorICAgICAgICAgICAgICAgICJyZXR1cm5zIjogWworICAgICAgICAgICAgICAgICAgICB7
ICJuYW1lIjogIm1hbmlmZXN0VVJMIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjog
Ik1hbmlmZXN0IFVSTCBmb3IgZG9jdW1lbnQgaW4gdGhlIGdpdmVuIGZyYW1lLiIgfQorICAgICAg
ICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlJldHVybnMgbWFu
aWZlc3QgVVJMIGZvciBkb2N1bWVudCBpbiB0aGUgZ2l2ZW4gZnJhbWUuIgorICAgICAgICAgICAg
fSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJnZXRBcHBsaWNhdGlv
bkNhY2hlRm9yRnJhbWUiLAorICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImZyYW1lSWQiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVz
Y3JpcHRpb24iOiAiSWRlbnRpZmllciBvZiB0aGUgZnJhbWUgY29udGFpbmluZyBkb2N1bWVudCB3
aG9zZSBhcHBsaWNhdGlvbiBjYWNoZSBpcyByZXRyaWV2ZWQuIiB9CisgICAgICAgICAgICAgICAg
XSwKKyAgICAgICAgICAgICAgICAicmV0dXJucyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJhcHBsaWNhdGlvbkNhY2hlIiwgIiRyZWYiOiAiQXBwbGljYXRpb25DYWNoZSIsICJk
ZXNjcmlwdGlvbiI6ICJSZWxldmFudCBhcHBsaWNhdGlvbiBjYWNoZSBkYXRhIGZvciB0aGUgZG9j
dW1lbnQgaW4gZ2l2ZW4gZnJhbWUuIiB9CisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAg
ICAgICAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyByZWxldmFudCBhcHBsaWNhdGlvbiBjYWNoZSBk
YXRhIGZvciB0aGUgZG9jdW1lbnQgaW4gZ2l2ZW4gZnJhbWUuIgogICAgICAgICAgICAgfQogICAg
ICAgICBdLAogICAgICAgICAiZXZlbnRzIjogWwogICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgICJuYW1lIjogInVwZGF0ZUFwcGxpY2F0aW9uQ2FjaGVTdGF0dXMiLAorICAgICAgICAgICAg
ICAgICJuYW1lIjogImFwcGxpY2F0aW9uQ2FjaGVTdGF0dXNVcGRhdGVkIiwKICAgICAgICAgICAg
ICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzdGF0
dXMiLCAidHlwZSI6ICJpbnRlZ2VyIiB9CisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
ZnJhbWVJZCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJJZGVudGlmaWVyIG9m
IHRoZSBmcmFtZSBjb250YWluaW5nIGRvY3VtZW50IHdob3NlIGFwcGxpY2F0aW9uIGNhY2hlIHVw
ZGF0ZWQgc3RhdHVzLiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJtYW5pZmVz
dFVSTCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJNYW5pZmVzdCBVUkwuIiB9
LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInN0YXR1cyIsICJ0eXBlIjogImludGVn
ZXIiLCAiZGVzY3JpcHRpb24iOiAiVXBkYXRlZCBhcHBsaWNhdGlvbiBjYWNoZSBzdGF0dXMuIiB9
CiAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICAibmFtZSI6ICJ1cGRhdGVOZXR3b3JrU3RhdGUiLAorICAgICAgICAgICAgICAg
ICJuYW1lIjogIm5ldHdvcmtTdGF0ZVVwZGF0ZWQiLAogICAgICAgICAgICAgICAgICJwYXJhbWV0
ZXJzIjogWwogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImlzTm93T25saW5lIiwgInR5
cGUiOiAiYm9vbGVhbiIgfQogICAgICAgICAgICAgICAgIF0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAK
aW5kZXggMDVhMzU5M2Q2MzRmMWRmNmFhNDRiYTk3NzdkMmFjZTY2YjhmMTNlYS4uMzVhNTFlMGEy
ZWY5Njg3MWRlZTUzZDdhY2QwMzVlNGUzNWY2YTE3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAK
QEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIklu
c3BlY3RvckFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKKyNpbmNsdWRl
ICJJbnNwZWN0b3JQYWdlQWdlbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JWYWx1ZXMuaCIKICNp
bmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1N0YXRlTm90
aWZpZXIuaCIKQEAgLTQyLDkgKzQzLDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1JbnNw
ZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6Okluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2Vu
dChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBQYWdlKiBpbnNwZWN0
ZWRQYWdlKQorSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50OjpJbnNwZWN0b3JBcHBsaWNh
dGlvbkNhY2hlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywg
SW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQpCiAgICAgOiBtX2luc3RydW1lbnRpbmdBZ2Vu
dHMoaW5zdHJ1bWVudGluZ0FnZW50cykKLSAgICAsIG1faW5zcGVjdGVkUGFnZShpbnNwZWN0ZWRQ
YWdlKQorICAgICwgbV9wYWdlQWdlbnQocGFnZUFnZW50KQogICAgICwgbV9mcm9udGVuZCgwKQog
ewogfQpAQCAtNTIsNyArNTMsNiBAQCBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6Oklu
c3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudChJbnN0cnVtZW50aW5nQWdlbgogdm9pZCBJbnNw
ZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OnNldEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5k
KiBmcm9udGVuZCkKIHsKICAgICBtX2Zyb250ZW5kID0gZnJvbnRlbmQtPmFwcGxpY2F0aW9uY2Fj
aGUoKTsKLSAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNldEluc3BlY3RvckFwcGxpY2F0aW9u
Q2FjaGVBZ2VudCh0aGlzKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdl
bnQ6OmNsZWFyRnJvbnRlbmQoKQpAQCAtNjMsMzUgKzYzLDkxIEBAIHZvaWQgSW5zcGVjdG9yQXBw
bGljYXRpb25DYWNoZUFnZW50OjpjbGVhckZyb250ZW5kKCkKIAogdm9pZCBJbnNwZWN0b3JBcHBs
aWNhdGlvbkNhY2hlQWdlbnQ6OnVwZGF0ZUFwcGxpY2F0aW9uQ2FjaGVTdGF0dXMoRnJhbWUqIGZy
YW1lKQogewotICAgIEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpTdGF0dXMgc3RhdHVzID0gZnJhbWUt
PmxvYWRlcigpLT5kb2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLT5zdGF0
dXMoKTsKLSAgICBtX2Zyb250ZW5kLT51cGRhdGVBcHBsaWNhdGlvbkNhY2hlU3RhdHVzKHN0YXR1
cyk7CisgICAgRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyID0gZnJhbWUtPmxvYWRlcigp
LT5kb2N1bWVudExvYWRlcigpOworICAgIGlmICghZG9jdW1lbnRMb2FkZXIpCisgICAgICAgIHJl
dHVybjsKKworICAgIEFwcGxpY2F0aW9uQ2FjaGVIb3N0KiBob3N0ID0gZG9jdW1lbnRMb2FkZXIt
PmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCk7CisgICAgQXBwbGljYXRpb25DYWNoZUhvc3Q6OlN0YXR1
cyBzdGF0dXMgPSBob3N0LT5zdGF0dXMoKTsKKyAgICBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6Q2Fj
aGVJbmZvIGluZm8gPSBob3N0LT5hcHBsaWNhdGlvbkNhY2hlSW5mbygpOworCisgICAgU3RyaW5n
IG1hbmlmZXN0VVJMID0gaW5mby5tX21hbmlmZXN0LnN0cmluZygpOworICAgIG1fZnJvbnRlbmQt
PmFwcGxpY2F0aW9uQ2FjaGVTdGF0dXNVcGRhdGVkKG1fcGFnZUFnZW50LT5mcmFtZUlkKGZyYW1l
KSwgbWFuaWZlc3RVUkwsIHN0YXR1cyk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yQXBwbGljYXRpb25D
YWNoZUFnZW50OjpuZXR3b3JrU3RhdGVDaGFuZ2VkKCkKIHsKICAgICBib29sIGlzTm93T25saW5l
ID0gbmV0d29ya1N0YXRlTm90aWZpZXIoKS5vbkxpbmUoKTsKLSAgICBtX2Zyb250ZW5kLT51cGRh
dGVOZXR3b3JrU3RhdGUoaXNOb3dPbmxpbmUpOworICAgIG1fZnJvbnRlbmQtPm5ldHdvcmtTdGF0
ZVVwZGF0ZWQoaXNOb3dPbmxpbmUpOworfQorCit2b2lkIEluc3BlY3RvckFwcGxpY2F0aW9uQ2Fj
aGVBZ2VudDo6ZW5hYmxlKEVycm9yU3RyaW5nKikKK3sKKyAgICBtX2luc3RydW1lbnRpbmdBZ2Vu
dHMtPnNldEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudCh0aGlzKTsKK30KKwordm9pZCBJ
bnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OmdldEZyYW1lc1dpdGhNYW5pZmVzdHMoRXJy
b3JTdHJpbmcqLCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+KiByZXN1bHQpCit7CisgICAgKnJlc3Vs
dCA9IEluc3BlY3RvckFycmF5OjpjcmVhdGUoKTsKKworICAgIEZyYW1lKiBtYWluRnJhbWUgPSBt
X3BhZ2VBZ2VudC0+bWFpbkZyYW1lKCk7CisgICAgZm9yIChGcmFtZSogZnJhbWUgPSBtYWluRnJh
bWU7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCktPnRyYXZlcnNlTmV4dChtYWluRnJhbWUp
KSB7CisgICAgICAgIERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlciA9IGZyYW1lLT5sb2Fk
ZXIoKS0+ZG9jdW1lbnRMb2FkZXIoKTsKKyAgICAgICAgaWYgKCFkb2N1bWVudExvYWRlcikKKyAg
ICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIEFwcGxpY2F0aW9uQ2FjaGVIb3N0KiBob3N0
ID0gZG9jdW1lbnRMb2FkZXItPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCk7CisgICAgICAgIEFwcGxp
Y2F0aW9uQ2FjaGVIb3N0OjpDYWNoZUluZm8gaW5mbyA9IGhvc3QtPmFwcGxpY2F0aW9uQ2FjaGVJ
bmZvKCk7CisgICAgICAgIFN0cmluZyBtYW5pZmVzdFVSTCA9IGluZm8ubV9tYW5pZmVzdC5zdHJp
bmcoKTsKKyAgICAgICAgaWYgKCFtYW5pZmVzdFVSTC5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAg
IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHZhbHVlID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUo
KTsKKyAgICAgICAgICAgIHZhbHVlLT5zZXRTdHJpbmcoImZyYW1lSWQiLCBtX3BhZ2VBZ2VudC0+
ZnJhbWVJZChmcmFtZSkpOworICAgICAgICAgICAgdmFsdWUtPnNldFN0cmluZygibWFuaWZlc3RV
UkwiLCBtYW5pZmVzdFVSTCk7CisgICAgICAgICAgICB2YWx1ZS0+c2V0TnVtYmVyKCJzdGF0dXMi
LCBob3N0LT5zdGF0dXMoKSk7CisgICAgICAgICAgICAoKnJlc3VsdCktPnB1c2hPYmplY3QodmFs
dWUpOworICAgICAgICB9CisgICAgfQogfQogCi12b2lkIEluc3BlY3RvckFwcGxpY2F0aW9uQ2Fj
aGVBZ2VudDo6Z2V0QXBwbGljYXRpb25DYWNoZXMoRXJyb3JTdHJpbmcqLCBSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0PiogYXBwbGljYXRpb25DYWNoZXMpCitEb2N1bWVudExvYWRlciogSW5zcGVjdG9y
QXBwbGljYXRpb25DYWNoZUFnZW50Ojphc3NlcnRGcmFtZVdpdGhEb2N1bWVudExvYWRlcihFcnJv
clN0cmluZyogZXJyb3JTdHJpbmcsIFN0cmluZyBmcmFtZUlkKQogewotICAgIERvY3VtZW50TG9h
ZGVyKiBkb2N1bWVudExvYWRlciA9IG1faW5zcGVjdGVkUGFnZS0+bWFpbkZyYW1lKCktPmxvYWRl
cigpLT5kb2N1bWVudExvYWRlcigpOworICAgIEZyYW1lKiBmcmFtZSA9IG1fcGFnZUFnZW50LT5h
c3NlcnRGcmFtZShlcnJvclN0cmluZywgZnJhbWVJZCk7CisgICAgaWYgKCFmcmFtZSkKKyAgICAg
ICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gSW5zcGVjdG9yUGFnZUFnZW50Ojphc3NlcnREb2N1
bWVudExvYWRlcihlcnJvclN0cmluZywgZnJhbWUpOworfQorCit2b2lkIEluc3BlY3RvckFwcGxp
Y2F0aW9uQ2FjaGVBZ2VudDo6Z2V0TWFuaWZlc3RGb3JGcmFtZShFcnJvclN0cmluZyogZXJyb3JT
dHJpbmcsIGNvbnN0IFN0cmluZyYgZnJhbWVJZCwgU3RyaW5nKiBtYW5pZmVzdFVSTCkKK3sKKyAg
ICBEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIgPSBhc3NlcnRGcmFtZVdpdGhEb2N1bWVu
dExvYWRlcihlcnJvclN0cmluZywgZnJhbWVJZCk7CiAgICAgaWYgKCFkb2N1bWVudExvYWRlcikK
ICAgICAgICAgcmV0dXJuOworCisgICAgQXBwbGljYXRpb25DYWNoZUhvc3Q6OkNhY2hlSW5mbyBp
bmZvID0gZG9jdW1lbnRMb2FkZXItPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCktPmFwcGxpY2F0aW9u
Q2FjaGVJbmZvKCk7CisgICAgKm1hbmlmZXN0VVJMID0gaW5mby5tX21hbmlmZXN0LnN0cmluZygp
OworfQorCit2b2lkIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6Z2V0QXBwbGljYXRp
b25DYWNoZUZvckZyYW1lKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBm
cmFtZUlkLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogYXBwbGljYXRpb25DYWNoZSkKK3sKKyAg
ICBEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIgPSBhc3NlcnRGcmFtZVdpdGhEb2N1bWVu
dExvYWRlcihlcnJvclN0cmluZywgZnJhbWVJZCk7CisgICAgaWYgKCFkb2N1bWVudExvYWRlcikK
KyAgICAgICAgcmV0dXJuOworCiAgICAgQXBwbGljYXRpb25DYWNoZUhvc3QqIGhvc3QgPSBkb2N1
bWVudExvYWRlci0+YXBwbGljYXRpb25DYWNoZUhvc3QoKTsKICAgICBBcHBsaWNhdGlvbkNhY2hl
SG9zdDo6Q2FjaGVJbmZvIGluZm8gPSBob3N0LT5hcHBsaWNhdGlvbkNhY2hlSW5mbygpOwogCiAg
ICAgQXBwbGljYXRpb25DYWNoZUhvc3Q6OlJlc291cmNlSW5mb0xpc3QgcmVzb3VyY2VzOwogICAg
IGhvc3QtPmZpbGxSZXNvdXJjZUxpc3QoJnJlc291cmNlcyk7Ci0gICAgKmFwcGxpY2F0aW9uQ2Fj
aGVzID0gYnVpbGRPYmplY3RGb3JBcHBsaWNhdGlvbkNhY2hlKHJlc291cmNlcywgaW5mbyk7CisK
KyAgICAqYXBwbGljYXRpb25DYWNoZSA9IGJ1aWxkT2JqZWN0Rm9yQXBwbGljYXRpb25DYWNoZShy
ZXNvdXJjZXMsIGluZm8pOwogfQogCiBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gSW5zcGVj
dG9yQXBwbGljYXRpb25DYWNoZUFnZW50OjpidWlsZE9iamVjdEZvckFwcGxpY2F0aW9uQ2FjaGUo
Y29uc3QgQXBwbGljYXRpb25DYWNoZUhvc3Q6OlJlc291cmNlSW5mb0xpc3QmIGFwcGxpY2F0aW9u
Q2FjaGVSZXNvdXJjZXMsIGNvbnN0IEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpDYWNoZUluZm8mIGFw
cGxpY2F0aW9uQ2FjaGVJbmZvKQogewogICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHZhbHVl
ID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKICAgICB2YWx1ZS0+c2V0TnVtYmVyKCJzaXpl
IiwgYXBwbGljYXRpb25DYWNoZUluZm8ubV9zaXplKTsKLSAgICB2YWx1ZS0+c2V0U3RyaW5nKCJt
YW5pZmVzdCIsIGFwcGxpY2F0aW9uQ2FjaGVJbmZvLm1fbWFuaWZlc3Quc3RyaW5nKCkpOwotICAg
IHZhbHVlLT5zZXRTdHJpbmcoImxhc3RQYXRoQ29tcG9uZW50IiwgYXBwbGljYXRpb25DYWNoZUlu
Zm8ubV9tYW5pZmVzdC5sYXN0UGF0aENvbXBvbmVudCgpKTsKKyAgICB2YWx1ZS0+c2V0U3RyaW5n
KCJtYW5pZmVzdFVSTCIsIGFwcGxpY2F0aW9uQ2FjaGVJbmZvLm1fbWFuaWZlc3Quc3RyaW5nKCkp
OwogICAgIHZhbHVlLT5zZXROdW1iZXIoImNyZWF0aW9uVGltZSIsIGFwcGxpY2F0aW9uQ2FjaGVJ
bmZvLm1fY3JlYXRpb25UaW1lKTsKICAgICB2YWx1ZS0+c2V0TnVtYmVyKCJ1cGRhdGVUaW1lIiwg
YXBwbGljYXRpb25DYWNoZUluZm8ubV91cGRhdGVUaW1lKTsKICAgICB2YWx1ZS0+c2V0QXJyYXko
InJlc291cmNlcyIsIGJ1aWxkQXJyYXlGb3JBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2VzKGFwcGxp
Y2F0aW9uQ2FjaGVSZXNvdXJjZXMpKTsKQEAgLTExMyw3ICsxNjksNyBAQCBQYXNzUmVmUHRyPElu
c3BlY3RvckFycmF5PiBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OmJ1aWxkQXJyYXlG
b3JBcHBsaWNhdAogUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IEluc3BlY3RvckFwcGxpY2F0
aW9uQ2FjaGVBZ2VudDo6YnVpbGRPYmplY3RGb3JBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UoY29u
c3QgQXBwbGljYXRpb25DYWNoZUhvc3Q6OlJlc291cmNlSW5mbyYgcmVzb3VyY2VJbmZvKQogewog
ICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHZhbHVlID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVh
dGUoKTsKLSAgICB2YWx1ZS0+c2V0U3RyaW5nKCJuYW1lIiwgcmVzb3VyY2VJbmZvLm1fcmVzb3Vy
Y2Uuc3RyaW5nKCkpOworICAgIHZhbHVlLT5zZXRTdHJpbmcoInVybCIsIHJlc291cmNlSW5mby5t
X3Jlc291cmNlLnN0cmluZygpKTsKICAgICB2YWx1ZS0+c2V0TnVtYmVyKCJzaXplIiwgcmVzb3Vy
Y2VJbmZvLm1fc2l6ZSk7CiAKICAgICBTdHJpbmcgdHlwZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmgKaW5k
ZXggNWIzNzc4ODgyMDhhMmJiNTc3MDg4MTA5NGI3YjIxZDZkYzEwOTZlYS4uOGRkNGVmMjk2MWI0
NTljZTNmZjk0ZTgzOGIxMWZiZjhlYjA3MzZiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaApAQCAtMzks
NiArMzksNyBAQCBjbGFzcyBJbnNwZWN0b3JBcnJheTsKIGNsYXNzIEluc3BlY3RvckFnZW50Owog
Y2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQ7CiBjbGFzcyBJbnNwZWN0b3JPYmplY3Q7CitjbGFzcyBJ
bnNwZWN0b3JQYWdlQWdlbnQ7CiBjbGFzcyBJbnNwZWN0b3JWYWx1ZTsKIGNsYXNzIEluc3RydW1l
bnRpbmdBZ2VudHM7CiBjbGFzcyBQYWdlOwpAQCAtNDksMjYgKzUwLDMyIEBAIHR5cGVkZWYgU3Ry
aW5nIEVycm9yU3RyaW5nOwogY2xhc3MgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50IHsK
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQp
OyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBJbnNwZWN0b3JBcHBsaWNh
dGlvbkNhY2hlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIFBhZ2UqKTsKKyAgICBJbnNwZWN0
b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvclBh
Z2VBZ2VudCopOwogICAgIH5JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQoKSB7IH0KIAor
ICAgIC8vIEluc3BlY3RvciBDb250cm9sbGVyIEFQSQogICAgIHZvaWQgc2V0RnJvbnRlbmQoSW5z
cGVjdG9yRnJvbnRlbmQqKTsKICAgICB2b2lkIGNsZWFyRnJvbnRlbmQoKTsKIAotICAgIC8vIEJh
Y2tlbmQgdG8gRnJvbnRlbmQKKyAgICAvLyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24gQVBJCiAg
ICAgdm9pZCB1cGRhdGVBcHBsaWNhdGlvbkNhY2hlU3RhdHVzKEZyYW1lKik7CiAgICAgdm9pZCBu
ZXR3b3JrU3RhdGVDaGFuZ2VkKCk7CiAKLSAgICAvLyBGcm9tIEZyb250ZW5kCi0gICAgdm9pZCBn
ZXRBcHBsaWNhdGlvbkNhY2hlcyhFcnJvclN0cmluZyosIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+
KiBhcHBsaWNhdGlvbkNhY2hlcyk7CisgICAgLy8gQXBwbGljYXRpb25DYWNoZSBBUEkgZm9yIElu
c3BlY3RvckZyb250ZW5kCisgICAgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcqKTsKKyAgICB2b2lk
IGdldEZyYW1lc1dpdGhNYW5pZmVzdHMoRXJyb3JTdHJpbmcqLCBSZWZQdHI8SW5zcGVjdG9yQXJy
YXk+KiByZXN1bHQpOworICAgIHZvaWQgZ2V0TWFuaWZlc3RGb3JGcmFtZShFcnJvclN0cmluZyos
IGNvbnN0IFN0cmluZyYgZnJhbWVJZCwgU3RyaW5nKiBtYW5pZmVzdFVSTCk7CisgICAgdm9pZCBn
ZXRBcHBsaWNhdGlvbkNhY2hlRm9yRnJhbWUoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIGZy
YW1lSWQsIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiBhcHBsaWNhdGlvbkNhY2hlKTsKIAogcHJp
dmF0ZToKICAgICBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gYnVpbGRPYmplY3RGb3JBcHBs
aWNhdGlvbkNhY2hlKGNvbnN0IEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpSZXNvdXJjZUluZm9MaXN0
JiwgY29uc3QgQXBwbGljYXRpb25DYWNoZUhvc3Q6OkNhY2hlSW5mbyYpOwogICAgIFBhc3NSZWZQ
dHI8SW5zcGVjdG9yQXJyYXk+IGJ1aWxkQXJyYXlGb3JBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2Vz
KGNvbnN0IEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpSZXNvdXJjZUluZm9MaXN0Jik7CiAgICAgUGFz
c1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJ1aWxkT2JqZWN0Rm9yQXBwbGljYXRpb25DYWNoZVJl
c291cmNlKGNvbnN0IEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpSZXNvdXJjZUluZm8mKTsKIAorICAg
IERvY3VtZW50TG9hZGVyKiBhc3NlcnRGcmFtZVdpdGhEb2N1bWVudExvYWRlcihFcnJvclN0cmlu
ZyosIFN0cmluZyBmcmFtZUlkKTsKKwogICAgIEluc3RydW1lbnRpbmdBZ2VudHMqIG1faW5zdHJ1
bWVudGluZ0FnZW50czsKLSAgICBQYWdlKiBtX2luc3BlY3RlZFBhZ2U7CisgICAgSW5zcGVjdG9y
UGFnZUFnZW50KiBtX3BhZ2VBZ2VudDsKICAgICBJbnNwZWN0b3JGcm9udGVuZDo6QXBwbGljYXRp
b25DYWNoZSogbV9mcm9udGVuZDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCA4MjUzNDhlNmU3MDU1YjRlZDg5NThjODI1
MjE5Yjk4ZGJkNjBiODdkLi45ZmEyNWUxMDgxZGU0ZTg4MWYyMDFkMGQ0NWRmNGZiZDM4Y2EyMGEz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIu
Y3BwCkBAIC0xMDYsNyArMTA2LDcgQEAgSW5zcGVjdG9yQ29udHJvbGxlcjo6SW5zcGVjdG9yQ29u
dHJvbGxlcihQYWdlKiBwYWdlLCBJbnNwZWN0b3JDbGllbnQqIGluc3BlY3RvckMKICNlbmRpZgog
ICAgICwgbV9kb21TdG9yYWdlQWdlbnQoSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpjcmVhdGUo
bV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLmdldCgpKSkKICAgICAsIG1fdGlt
ZWxpbmVBZ2VudChJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5n
QWdlbnRzLmdldCgpLCBtX3N0YXRlLmdldCgpKSkKLSAgICAsIG1fYXBwbGljYXRpb25DYWNoZUFn
ZW50KGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQobV9pbnN0cnVt
ZW50aW5nQWdlbnRzLmdldCgpLCBwYWdlKSkpCisgICAgLCBtX2FwcGxpY2F0aW9uQ2FjaGVBZ2Vu
dChhZG9wdFB0cihuZXcgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50KG1faW5zdHJ1bWVu
dGluZ0FnZW50cy5nZXQoKSwgbV9wYWdlQWdlbnQuZ2V0KCkpKSkKICAgICAsIG1fcmVzb3VyY2VB
Z2VudChJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRz
LmdldCgpLCBtX3BhZ2VBZ2VudC5nZXQoKSwgaW5zcGVjdG9yQ2xpZW50LCBtX3N0YXRlLmdldCgp
KSkKICAgICAsIG1fcnVudGltZUFnZW50KGFkb3B0UHRyKG5ldyBQYWdlUnVudGltZUFnZW50KG1f
aW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCks
IHBhZ2UsIG1fcGFnZUFnZW50LmdldCgpKSkpCiAgICAgLCBtX2NvbnNvbGVBZ2VudChhZG9wdFB0
cihuZXcgSW5zcGVjdG9yQ29uc29sZUFnZW50KG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwg
bV9pbnNwZWN0b3JBZ2VudC5nZXQoKSwgbV9zdGF0ZS5nZXQoKSwgbV9pbmplY3RlZFNjcmlwdE1h
bmFnZXIuZ2V0KCksIG1fZG9tQWdlbnQuZ2V0KCkpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKaW5kZXggYTY0NjkyZjc5ZDdkMGU1MzRlYWY3
NGEyMjhmZWE2MDI0YTNiZGVhOC4uMzIzOWUzN2Y4ZmNmNTlmMTkzMWIxOWViNjE3MWJhOTQ2Mjhh
MDhkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VB
Z2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2Vu
dC5jcHAKQEAgLTE4NiwxOCArMTg2LDkgQEAgUGFzc093blB0cjxJbnNwZWN0b3JQYWdlQWdlbnQ+
IEluc3BlY3RvclBhZ2VBZ2VudDo6Y3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGkKIC8vIHN0
YXRpYwogdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OnJlc291cmNlQ29udGVudChFcnJvclN0cmlu
ZyogZXJyb3JTdHJpbmcsIEZyYW1lKiBmcmFtZSwgY29uc3QgS1VSTCYgdXJsLCBTdHJpbmcqIHJl
c3VsdCwgYm9vbCogYmFzZTY0RW5jb2RlZCkKIHsKLSAgICBpZiAoIWZyYW1lKSB7Ci0gICAgICAg
ICplcnJvclN0cmluZyA9ICJObyBmcmFtZSB0byBnZXQgcmVzb3VyY2UgY29udGVudCBmb3IiOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgRnJhbWVMb2FkZXIqIGZyYW1lTG9hZGVyID0g
ZnJhbWUtPmxvYWRlcigpOwotICAgIERvY3VtZW50TG9hZGVyKiBsb2FkZXIgPSBmcmFtZUxvYWRl
ci0+ZG9jdW1lbnRMb2FkZXIoKTsKLQotICAgIGlmICghbG9hZGVyKSB7Ci0gICAgICAgICplcnJv
clN0cmluZyA9ICJObyBkb2N1bWVudExvYWRlciBmb3IgZnJhbWUgdG8gZ2V0IHJlc291cmNlIGNv
bnRlbnQgZm9yIjsKKyAgICBEb2N1bWVudExvYWRlciogbG9hZGVyID0gYXNzZXJ0RG9jdW1lbnRM
b2FkZXIoZXJyb3JTdHJpbmcsIGZyYW1lKTsKKyAgICBpZiAoIWxvYWRlcikKICAgICAgICAgcmV0
dXJuOwotICAgIH0KIAogICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlcjsKICAgICBib29s
IHN1Y2Nlc3MgPSBmYWxzZTsKQEAgLTQ4MSwxMSArNDcyLDEwIEBAIHZvaWQgSW5zcGVjdG9yUGFn
ZUFnZW50OjpnZXRSZXNvdXJjZVRyZWUoRXJyb3JTdHJpbmcqLCBSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PioKIAogdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmdldFJlc291cmNlQ29udGVudChFcnJv
clN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgZnJhbWVJZCwgY29uc3QgU3RyaW5n
JiB1cmwsIFN0cmluZyogY29udGVudCwgYm9vbCogYmFzZTY0RW5jb2RlZCkKIHsKLSAgICBGcmFt
ZSogZnJhbWUgPSBmcmFtZUZvcklkKGZyYW1lSWQpOwotICAgIGlmICghZnJhbWUpIHsKLSAgICAg
ICAgKmVycm9yU3RyaW5nID0gIk5vIGZyYW1lIGZvciBnaXZlbiBpZCBmb3VuZCI7CisgICAgRnJh
bWUqIGZyYW1lID0gYXNzZXJ0RnJhbWUoZXJyb3JTdHJpbmcsIGZyYW1lSWQpOworICAgIGlmICgh
ZnJhbWUpCiAgICAgICAgIHJldHVybjsKLSAgICB9CisKICAgICByZXNvdXJjZUNvbnRlbnQoZXJy
b3JTdHJpbmcsIGZyYW1lLCBLVVJMKFBhcnNlZFVSTFN0cmluZywgdXJsKSwgY29udGVudCwgYmFz
ZTY0RW5jb2RlZCk7CiB9CiAKQEAgLTY2MSw2ICs2NTEsMjYgQEAgU3RyaW5nIEluc3BlY3RvclBh
Z2VBZ2VudDo6bG9hZGVySWQoRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKICAgICByZXR1cm4gaWRl
bnRpZmllcjsKIH0KIAorRnJhbWUqIEluc3BlY3RvclBhZ2VBZ2VudDo6YXNzZXJ0RnJhbWUoRXJy
b3JTdHJpbmcqIGVycm9yU3RyaW5nLCBTdHJpbmcgZnJhbWVJZCkKK3sKKyAgICBGcmFtZSogZnJh
bWUgPSBmcmFtZUZvcklkKGZyYW1lSWQpOworICAgIGlmICghZnJhbWUpCisgICAgICAgICplcnJv
clN0cmluZyA9ICJObyBmcmFtZSBmb3IgZ2l2ZW4gaWQgZm91bmQiOworCisgICAgcmV0dXJuIGZy
YW1lOworfQorCisvLyBzdGF0aWMKK0RvY3VtZW50TG9hZGVyKiBJbnNwZWN0b3JQYWdlQWdlbnQ6
OmFzc2VydERvY3VtZW50TG9hZGVyKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgRnJhbWUqIGZy
YW1lKQoreworICAgIEZyYW1lTG9hZGVyKiBmcmFtZUxvYWRlciA9IGZyYW1lLT5sb2FkZXIoKTsK
KyAgICBEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIgPSBmcmFtZUxvYWRlciA/IGZyYW1l
TG9hZGVyLT5kb2N1bWVudExvYWRlcigpIDogMDsKKyAgICBpZiAoIWRvY3VtZW50TG9hZGVyKQor
ICAgICAgICAqZXJyb3JTdHJpbmcgPSAiTm8gZG9jdW1lbnRMb2FkZXIgZm9yIGdpdmVuIGZyYW1l
IGZvdW5kIjsKKworICAgIHJldHVybiBkb2N1bWVudExvYWRlcjsKK30KKwogdm9pZCBJbnNwZWN0
b3JQYWdlQWdlbnQ6OmxvYWRlckRldGFjaGVkRnJvbUZyYW1lKERvY3VtZW50TG9hZGVyKiBsb2Fk
ZXIpCiB7CiAgICAgSGFzaE1hcDxEb2N1bWVudExvYWRlciosIFN0cmluZz46Oml0ZXJhdG9yIGl0
ZXJhdG9yID0gbV9sb2FkZXJUb0lkZW50aWZpZXIuZmluZChsb2FkZXIpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oCmluZGV4IDFjOGVjNDYzNzhhY2Uw
MGZkN2QyYjM0YzhiMWI0NzU5ZmQ1OTU4ZDguLjA1Njg1MjU0Y2Q2NWVhMWY2MDk4ODhiMWY2ZWRj
YjI5Yzg5NjJiYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JQYWdlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFn
ZUFnZW50LmgKQEAgLTExOCw2ICsxMTgsOCBAQCBwdWJsaWM6CiAgICAgRnJhbWUqIGZyYW1lRm9y
SWQoY29uc3QgU3RyaW5nJiBmcmFtZUlkKTsKICAgICBTdHJpbmcgZnJhbWVJZChGcmFtZSopOwog
ICAgIFN0cmluZyBsb2FkZXJJZChEb2N1bWVudExvYWRlciopOworICAgIEZyYW1lKiBhc3NlcnRG
cmFtZShFcnJvclN0cmluZyosIFN0cmluZyBmcmFtZUlkKTsKKyAgICBzdGF0aWMgRG9jdW1lbnRM
b2FkZXIqIGFzc2VydERvY3VtZW50TG9hZGVyKEVycm9yU3RyaW5nKiwgRnJhbWUqKTsKIAogcHJp
dmF0ZToKICAgICBJbnNwZWN0b3JQYWdlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIFBhZ2Uq
LCBJbnNwZWN0b3JTdGF0ZSosIEluamVjdGVkU2NyaXB0TWFuYWdlciopOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCmluZGV4IDEwNDI4MjJl
NTgxOGU5OTUyMWYzOTY0MzBlM2EwNjRkZWVhMzU1NjguLjI4MWNkM2JhOWUxZDhhOTk2NmU4ZjE4
MjhlOTQ1ZTlmOThlMDEzNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yU3R5bGVTaGVldC5jcHAKQEAgLTk5MSw3ICs5OTEsNyBAQCBib29sIEluc3BlY3RvclN0
eWxlU2hlZXQ6OnJlc291cmNlU3R5bGVTaGVldFRleHQoU3RyaW5nKiByZXN1bHQpIGNvbnN0CiAg
ICAgaWYgKG1fb3JpZ2luID09ICJ1c2VyIiB8fCBtX29yaWdpbiA9PSAidXNlci1hZ2VudCIpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmICghbV9wYWdlU3R5bGVTaGVldCB8fCAhb3du
ZXJEb2N1bWVudCgpKQorICAgIGlmICghbV9wYWdlU3R5bGVTaGVldCB8fCAhb3duZXJEb2N1bWVu
dCgpIHx8ICFvd25lckRvY3VtZW50KCktPmZyYW1lKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgIFN0cmluZyBlcnJvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvQXBwbGljYXRpb25DYWNoZUl0ZW1zVmlldy5qcyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvQXBwbGljYXRpb25DYWNoZUl0ZW1zVmlldy5qcwppbmRleCBh
NzhlMTc0NGUxZjYzMjc4ODZkNDE0YzAyMWJjNjgwZWMxNzBiNDM0Li5kNGVlMTgyMjk1MzI0ODM0
NmNiOTE4YWE0NzQ2ZDA1YTY4NDY0MmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0FwcGxpY2F0aW9uQ2FjaGVJdGVtc1ZpZXcuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BcHBsaWNhdGlvbkNhY2hlSXRlbXNWaWV3Lmpz
CkBAIC0yNyw3ICsyNyw3IEBACiAgKiBAY29uc3RydWN0b3IKICAqIEBleHRlbmRzIHtXZWJJbnNw
ZWN0b3IuVmlld30KICAqLwotV2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVJdGVtc1ZpZXcg
PSBmdW5jdGlvbihtb2RlbCwgdHJlZUVsZW1lbnQsIGFwcGNhY2hlRG9tYWluKQorV2ViSW5zcGVj
dG9yLkFwcGxpY2F0aW9uQ2FjaGVJdGVtc1ZpZXcgPSBmdW5jdGlvbihtb2RlbCwgZnJhbWVJZCwg
c3RhdHVzKQogewogICAgIFdlYkluc3BlY3Rvci5WaWV3LmNhbGwodGhpcyk7CiAgICAgCkBAIC02
NCwxMyArNjQsMTIgQEAgV2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVJdGVtc1ZpZXcgPSBm
dW5jdGlvbihtb2RlbCwgdHJlZUVsZW1lbnQsIGFwcGNhY2hlRG8KICAgICB0aGlzLnN0YXR1c01l
c3NhZ2UuY2xhc3NOYW1lID0gInN0b3JhZ2UtYXBwbGljYXRpb24tY2FjaGUtc3RhdHVzIjsKICAg
ICB0aGlzLnN0YXR1c01lc3NhZ2UudGV4dENvbnRlbnQgPSAiIjsKIAotICAgIHRoaXMuX3RyZWVF
bGVtZW50ID0gdHJlZUVsZW1lbnQ7Ci0gICAgdGhpcy5fYXBwY2FjaGVEb21haW4gPSBhcHBjYWNo
ZURvbWFpbjsKKyAgICB0aGlzLl9mcmFtZUlkID0gZnJhbWVJZDsKIAogICAgIHRoaXMuX2VtcHR5
VmlldyA9IG5ldyBXZWJJbnNwZWN0b3IuRW1wdHlWaWV3KFdlYkluc3BlY3Rvci5VSVN0cmluZygi
Tm8gQXBwbGljYXRpb24gQ2FjaGUgaW5mb3JtYXRpb24gYXZhaWxhYmxlLiIpKTsKICAgICB0aGlz
Ll9lbXB0eVZpZXcuc2hvdyh0aGlzLmVsZW1lbnQpOwogCi0gICAgdGhpcy51cGRhdGVTdGF0dXMo
YXBwbGljYXRpb25DYWNoZS5VTkNBQ0hFRCk7CisgICAgdGhpcy51cGRhdGVTdGF0dXMoc3RhdHVz
KTsKIAogICAgIC8vIEZJWE1FOiBTdGF0dXMgYmFyIGl0ZW1zIGRvbid0IHdvcmsgd2VsbCBlbm91
Z2ggeWV0LCBzbyB0aGV5IGFyZSBiZWluZyBoaWRkZW4uCiAgICAgLy8gaHR0cDovL3dlYmtpdC5v
cmcvYi80MTYzNyBXZWIgSW5zcGVjdG9yOiBHaXZlIFNlbWFudGljcyB0byAiUmVmcmVzaCIgYW5k
ICJEZWxldGUiIEJ1dHRvbnMgaW4gQXBwbGljYXRpb25DYWNoZSBEYXRhR3JpZApAQCAtMTE2LDYg
KzExNSw5IEBAIFdlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlSXRlbXNWaWV3LnByb3RvdHlw
ZSA9IHsKICAgICAgICAgdGhpcy5kZWxldGVCdXR0b24udmlzaWJsZSA9IGZhbHNlOwogICAgIH0s
CiAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge251bWJlcn0gc3RhdHVzCisgICAgICovCiAgICAg
dXBkYXRlU3RhdHVzOiBmdW5jdGlvbihzdGF0dXMpCiAgICAgewogICAgICAgICB2YXIgc3RhdHVz
SW5mb3JtYXRpb24gPSB7fTsKQEAgLTEzNiw2ICsxMzgsOSBAQCBXZWJJbnNwZWN0b3IuQXBwbGlj
YXRpb25DYWNoZUl0ZW1zVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuc3RhdHVzTWVz
c2FnZS50ZXh0Q29udGVudCA9IGluZm8udGV4dDsKICAgICB9LAogCisgICAgLyoqCisgICAgICog
QHBhcmFtIHtib29sZWFufSBpc05vd09ubGluZQorICAgICAqLwogICAgIHVwZGF0ZU5ldHdvcmtT
dGF0ZTogZnVuY3Rpb24oaXNOb3dPbmxpbmUpCiAgICAgewogICAgICAgICBpZiAoUHJlZmVyZW5j
ZXMub25saW5lRGV0ZWN0aW9uRW5hYmxlZCkgewpAQCAtMTUxLDIxICsxNTYsMTUgQEAgV2ViSW5z
cGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVJdGVtc1ZpZXcucHJvdG90eXBlID0gewogCiAgICAgX3Vw
ZGF0ZTogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgdGhpcy5fbW9kZWwuZ2V0QXBwbGljYXRp
b25DYWNoZXNBc3luYyh0aGlzLl91cGRhdGVDYWxsYmFjay5iaW5kKHRoaXMpKTsKKyAgICAgICAg
dGhpcy5fbW9kZWwucmVxdWVzdEFwcGxpY2F0aW9uQ2FjaGUodGhpcy5fZnJhbWVJZCwgdGhpcy5f
dXBkYXRlQ2FsbGJhY2suYmluZCh0aGlzKSk7CiAgICAgfSwKIAotICAgIF91cGRhdGVDYWxsYmFj
azogZnVuY3Rpb24oYXBwbGljYXRpb25DYWNoZXMpCisgICAgLyoqCisgICAgICogQHBhcmFtIHtP
YmplY3R9IGFwcGxpY2F0aW9uQ2FjaGUKKyAgICAgKi8KKyAgICBfdXBkYXRlQ2FsbGJhY2s6IGZ1
bmN0aW9uKGFwcGxpY2F0aW9uQ2FjaGUpCiAgICAgewotICAgICAgICAvLyBGSVhNRTogYXBwbGlj
YXRpb25DYWNoZXMgaXMganVzdCBvbmUgY2FjaGUuCi0gICAgICAgIC8vIEZJWE1FOiBhcmUgdGhl
c2UgdmFyaWFibGVzIG5lZWRlZCBhbnl3aGVyZSBlbHNlPwotICAgICAgICB0aGlzLl9tYW5pZmVz
dCA9IGFwcGxpY2F0aW9uQ2FjaGVzLm1hbmlmZXN0OwotICAgICAgICB0aGlzLl9jcmVhdGlvblRp
bWUgPSBhcHBsaWNhdGlvbkNhY2hlcy5jcmVhdGlvblRpbWU7Ci0gICAgICAgIHRoaXMuX3VwZGF0
ZVRpbWUgPSBhcHBsaWNhdGlvbkNhY2hlcy51cGRhdGVUaW1lOwotICAgICAgICB0aGlzLl9zaXpl
ID0gYXBwbGljYXRpb25DYWNoZXMuc2l6ZTsKLSAgICAgICAgdGhpcy5fcmVzb3VyY2VzID0gYXBw
bGljYXRpb25DYWNoZXMucmVzb3VyY2VzOwotICAgICAgICB2YXIgbGFzdFBhdGhDb21wb25lbnQg
PSBhcHBsaWNhdGlvbkNhY2hlcy5sYXN0UGF0aENvbXBvbmVudDsKLQotICAgICAgICBpZiAoIXRo
aXMuX21hbmlmZXN0KSB7CisgICAgICAgIGlmICghYXBwbGljYXRpb25DYWNoZSB8fCAhYXBwbGlj
YXRpb25DYWNoZS5tYW5pZmVzdFVSTCkgewogICAgICAgICAgICAgdGhpcy5fZW1wdHlWaWV3LnNo
b3codGhpcy5lbGVtZW50KTsKICAgICAgICAgICAgIHRoaXMuZGVsZXRlQnV0dG9uLnZpc2libGUg
PSBmYWxzZTsKICAgICAgICAgICAgIGlmICh0aGlzLl9kYXRhR3JpZCkKQEAgLTE3Myw2ICsxNzIs
MTUgQEAgV2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVJdGVtc1ZpZXcucHJvdG90eXBlID0g
ewogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKKyAgICAgICAgLy8gRklYTUU6IGFw
cGxpY2F0aW9uQ2FjaGVzIGlzIGp1c3Qgb25lIGNhY2hlLgorICAgICAgICAvLyBGSVhNRTogYXJl
IHRoZXNlIHZhcmlhYmxlcyBuZWVkZWQgYW55d2hlcmUgZWxzZT8KKyAgICAgICAgdGhpcy5fbWFu
aWZlc3QgPSBhcHBsaWNhdGlvbkNhY2hlLm1hbmlmZXN0VVJMOworICAgICAgICB0aGlzLl9jcmVh
dGlvblRpbWUgPSBhcHBsaWNhdGlvbkNhY2hlLmNyZWF0aW9uVGltZTsKKyAgICAgICAgdGhpcy5f
dXBkYXRlVGltZSA9IGFwcGxpY2F0aW9uQ2FjaGUudXBkYXRlVGltZTsKKyAgICAgICAgdGhpcy5f
c2l6ZSA9IGFwcGxpY2F0aW9uQ2FjaGUuc2l6ZTsKKyAgICAgICAgdGhpcy5fcmVzb3VyY2VzID0g
YXBwbGljYXRpb25DYWNoZS5yZXNvdXJjZXM7CisgICAgICAgIHZhciBsYXN0UGF0aENvbXBvbmVu
dCA9IGFwcGxpY2F0aW9uQ2FjaGUubGFzdFBhdGhDb21wb25lbnQ7CisKICAgICAgICAgaWYgKCF0
aGlzLl9kYXRhR3JpZCkKICAgICAgICAgICAgIHRoaXMuX2NyZWF0ZURhdGFHcmlkKCk7CiAKQEAg
LTE4Miw5ICsxOTAsNiBAQCBXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZUl0ZW1zVmlldy5w
cm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX2VtcHR5Vmlldy5kZXRhY2goKTsKICAgICAgICAg
dGhpcy5kZWxldGVCdXR0b24udmlzaWJsZSA9IHRydWU7CiAKLSAgICAgICAgdmFyIHRvdGFsU2l6
ZVN0cmluZyA9IE51bWJlci5ieXRlc1RvU3RyaW5nKHRoaXMuX3NpemUpOwotICAgICAgICB0aGlz
Ll90cmVlRWxlbWVudC5zdWJ0aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiJXMgKCVzKSIs
IGxhc3RQYXRoQ29tcG9uZW50LCB0b3RhbFNpemVTdHJpbmcpOwotCiAgICAgICAgIC8vIEZJWE1F
OiBGb3IgQ2hyb21lLCBwdXQgY3JlYXRpb25UaW1lIGFuZCB1cGRhdGVUaW1lIHNvbWV3aGVyZS4K
ICAgICAgICAgLy8gTk9URTogbG9jYWxpemVkU3RyaW5nIGhhcyBub3QgeWV0IGJlZW4gYWRkZWQu
CiAgICAgICAgIC8vIFdlYkluc3BlY3Rvci5VSVN0cmluZygiKCVzKSBDcmVhdGVkOiAlcyBVcGRh
dGVkOiAlcyIsIHRoaXMuX3NpemUsIHRoaXMuX2NyZWF0aW9uVGltZSwgdGhpcy5fdXBkYXRlVGlt
ZSk7CkBAIC0yMzUsNyArMjQwLDcgQEAgV2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVJdGVt
c1ZpZXcucHJvdG90eXBlID0gewogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX3Jl
c291cmNlcy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgdmFyIGRhdGEgPSB7fTsKICAgICAg
ICAgICAgIHZhciByZXNvdXJjZSA9IHRoaXMuX3Jlc291cmNlc1tpXTsKLSAgICAgICAgICAgIGRh
dGFbMF0gPSByZXNvdXJjZS5uYW1lOworICAgICAgICAgICAgZGF0YVswXSA9IHJlc291cmNlLnVy
bDsKICAgICAgICAgICAgIGRhdGFbMV0gPSByZXNvdXJjZS50eXBlOwogICAgICAgICAgICAgZGF0
YVsyXSA9IE51bWJlci5ieXRlc1RvU3RyaW5nKHJlc291cmNlLnNpemUpOwogICAgICAgICAgICAg
dmFyIG5vZGUgPSBuZXcgV2ViSW5zcGVjdG9yLkRhdGFHcmlkTm9kZShkYXRhKTsKQEAgLTI0OCw3
ICsyNTMsNyBAQCBXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZUl0ZW1zVmlldy5wcm90b3R5
cGUgPSB7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoIW5vZGVUb1Nl
bGVjdCkKKyAgICAgICAgaWYgKCFub2RlVG9TZWxlY3QgJiYgdGhpcy5fZGF0YUdyaWQuY2hpbGRy
ZW4ubGVuZ3RoKQogICAgICAgICAgICAgdGhpcy5fZGF0YUdyaWQuY2hpbGRyZW5bMF0uc2VsZWN0
ZWQgPSB0cnVlOwogICAgIH0sCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvQXBwbGljYXRpb25DYWNoZU1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9BcHBsaWNhdGlvbkNhY2hlTW9kZWwuanMKaW5kZXggMWIwMWM2MmNi
N2VhN2ZlODUxODZkZjk5ZjZhNTE5OTU4MTkxMmQ2OS4uYjA0YjE4Zjc3MGM5NjEyNmQxY2FkZDhj
MDM2MmE5ZTI1NGExMTg0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9BcHBsaWNhdGlvbkNhY2hlTW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9BcHBsaWNhdGlvbkNhY2hlTW9kZWwuanMKQEAgLTMyLDIwICszMiwx
NzkgQEAKICAqLwogV2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVNb2RlbCA9IGZ1bmN0aW9u
KCkKIHsKKyAgICBBcHBsaWNhdGlvbkNhY2hlQWdlbnQuZW5hYmxlKCk7CiAgICAgSW5zcGVjdG9y
QmFja2VuZC5yZWdpc3RlckFwcGxpY2F0aW9uQ2FjaGVEaXNwYXRjaGVyKG5ldyBXZWJJbnNwZWN0
b3IuQXBwbGljYXRpb25DYWNoZURpc3BhdGNoZXIodGhpcykpOworICAgIAorICAgIFdlYkluc3Bl
Y3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SZXNv
dXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLkZyYW1lTmF2aWdhdGVkLCB0aGlzLl9mcmFtZU5hdmln
YXRlZCwgdGhpcyk7CisgICAgV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLmFkZEV2ZW50
TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLkV2ZW50VHlwZXMuRnJhbWVE
ZXRhY2hlZCwgdGhpcy5fZnJhbWVEZXRhY2hlZCwgdGhpcyk7CisgICAgCisgICAgdGhpcy5fc3Rh
dHVzZXMgPSB7fTsKKyAgICB0aGlzLl9tYW5pZmVzdFVSTHNCeUZyYW1lID0ge307CisKKyAgICB0
aGlzLl9tYWluRnJhbWVOYXZpZ2F0ZWQoKTsKK30KKworV2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9u
Q2FjaGVNb2RlbC5FdmVudFR5cGVzID0geworICAgIEZyYW1lTWFuaWZlc3RTdGF0dXNVcGRhdGVk
OiAiRnJhbWVNYW5pZmVzdFN0YXR1c1VwZGF0ZWQiLAorICAgIEZyYW1lTWFuaWZlc3RBZGRlZDog
IkZyYW1lTWFuaWZlc3RBZGRlZCIsCisgICAgRnJhbWVNYW5pZmVzdFJlbW92ZWQ6ICJGcmFtZU1h
bmlmZXN0UmVtb3ZlZCIsCisgICAgTmV0d29ya1N0YXRlQ2hhbmdlZDogIk5ldHdvcmtTdGF0ZUNo
YW5nZWQiCiB9CiAKIFdlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlTW9kZWwucHJvdG90eXBl
ID0gewotICAgIGdldEFwcGxpY2F0aW9uQ2FjaGVzQXN5bmM6IGZ1bmN0aW9uKGNhbGxiYWNrKQor
ICAgIF9mcmFtZU5hdmlnYXRlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewotICAgICAgICBmdW5j
dGlvbiBteWNhbGxiYWNrKGVycm9yLCBhcHBsaWNhdGlvbkNhY2hlcykKLSAgICAgICAgewotICAg
ICAgICAgICAgLy8gRklYTUU6IEN1cnJlbnRseSwgdGhpcyBsaXN0IG9ubHkgcmV0dXJucyBhIHNp
bmdsZSBhcHBsaWNhdGlvbiBjYWNoZS4KLSAgICAgICAgICAgIGlmICghZXJyb3IgJiYgYXBwbGlj
YXRpb25DYWNoZXMpCi0gICAgICAgICAgICAgICAgY2FsbGJhY2soYXBwbGljYXRpb25DYWNoZXMp
OworICAgICAgICBpZiAoZXZlbnQuZGF0YS5pc01haW5GcmFtZSkgeworICAgICAgICAgICAgdGhp
cy5fbWFpbkZyYW1lTmF2aWdhdGVkKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KworICAgICAgICB2YXIgZnJhbWUgPSAvKiogQHR5cGUge1BhZ2VBZ2VudC5GcmFtZX0gKi8gZXZl
bnQuZGF0YVsiZnJhbWUiXTsKKyAgICAgICAgdmFyIGZyYW1lSWQgPSBmcmFtZS5pZDsKKyAgICAg
ICAgQXBwbGljYXRpb25DYWNoZUFnZW50LmdldE1hbmlmZXN0Rm9yRnJhbWUoZnJhbWVJZCwgdGhp
cy5fbWFuaWZlc3RGb3JGcmFtZUxvYWRlZC5iaW5kKHRoaXMsIGZyYW1lSWQpKTsKKyAgICB9LAor
ICAgIAorICAgIF9mcmFtZURldGFjaGVkOiBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAg
IHZhciBmcmFtZUlkID0gZXZlbnQuZGF0YTsKKyAgICAgICAgdGhpcy5fZnJhbWVNYW5pZmVzdFJl
bW92ZWQoZnJhbWVJZCk7CisgICAgfSwKKyAgICAKKyAgICBfbWFpbkZyYW1lTmF2aWdhdGVkOiBm
dW5jdGlvbigpCisgICAgeworICAgICAgICBBcHBsaWNhdGlvbkNhY2hlQWdlbnQuZ2V0RnJhbWVz
V2l0aE1hbmlmZXN0cyh0aGlzLl9mcmFtZXNXaXRoTWFuaWZlc3RzTG9hZGVkLmJpbmQodGhpcykp
OworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gZnJhbWVJZAorICAg
ICAqIEBwYXJhbSB7c3RyaW5nfSBlcnJvcgorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBtYW5pZmVz
dFVSTAorICAgICAqLworICAgIF9tYW5pZmVzdEZvckZyYW1lTG9hZGVkOiBmdW5jdGlvbihmcmFt
ZUlkLCBlcnJvciwgbWFuaWZlc3RVUkwpCisgICAgeworICAgICAgICBpZiAoZXJyb3IpIHsKKyAg
ICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpOworICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoIW1hbmlmZXN0VVJMKQorICAgICAgICAgICAg
dGhpcy5fZnJhbWVNYW5pZmVzdFJlbW92ZWQoZnJhbWVJZCk7CisgICAgfSwKKyAgICAKKyAgICAv
KioKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gZXJyb3IKKyAgICAgKiBAcGFyYW0ge0FycmF5LjxB
cHBsaWNhdGlvbkNhY2hlQWdlbnQuRnJhbWVXaXRoTWFuaWZlc3Q+fSBmcmFtZXNXaXRoTWFuaWZl
c3RzCisgICAgICovCisgICAgX2ZyYW1lc1dpdGhNYW5pZmVzdHNMb2FkZWQ6IGZ1bmN0aW9uKGVy
cm9yLCBmcmFtZXNXaXRoTWFuaWZlc3RzKQorICAgIHsKKyAgICAgICAgaWYgKGVycm9yKSB7Cisg
ICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTsKKyAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQogCi0gICAgICAgIEFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5nZXRBcHBsaWNhdGlvbkNh
Y2hlcyhteWNhbGxiYWNrKTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBmcmFtZXNXaXRo
TWFuaWZlc3RzLmxlbmd0aDsgKytpKQorICAgICAgICAgICAgdGhpcy5fZnJhbWVNYW5pZmVzdFVw
ZGF0ZWQoZnJhbWVzV2l0aE1hbmlmZXN0c1tpXS5mcmFtZUlkLCBmcmFtZXNXaXRoTWFuaWZlc3Rz
W2ldLm1hbmlmZXN0VVJMLCBmcmFtZXNXaXRoTWFuaWZlc3RzW2ldLnN0YXR1cyk7CisgICAgfSwK
KyAgICAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gZnJhbWVJZAorICAgICAqIEBw
YXJhbSB7c3RyaW5nfSBtYW5pZmVzdFVSTAorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzdGF0dXMK
KyAgICAgKi8KKyAgICBfZnJhbWVNYW5pZmVzdFVwZGF0ZWQ6IGZ1bmN0aW9uKGZyYW1lSWQsIG1h
bmlmZXN0VVJMLCBzdGF0dXMpCisgICAgeworICAgICAgICBpZiAoc3RhdHVzID09PSBhcHBsaWNh
dGlvbkNhY2hlLlVOQ0FDSEVEKSB7CisgICAgICAgICAgICB0aGlzLl9mcmFtZU1hbmlmZXN0UmVt
b3ZlZChmcmFtZUlkKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAg
ICAgCisgICAgICAgIGlmICghbWFuaWZlc3RVUkwpCisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICAKKyAgICAgICAgaWYgKHRoaXMuX21hbmlmZXN0VVJMc0J5RnJhbWVbZnJhbWVJZF0g
JiYgbWFuaWZlc3RVUkwgIT09IHRoaXMuX21hbmlmZXN0VVJMc0J5RnJhbWVbZnJhbWVJZF0pCisg
ICAgICAgICAgICB0aGlzLl9mcmFtZU1hbmlmZXN0UmVtb3ZlZChmcmFtZUlkKTsKKyAgICAgICAg
CisgICAgICAgIHZhciBzdGF0dXNDaGFuZ2VkID0gdGhpcy5fc3RhdHVzZXNbZnJhbWVJZF0gIT09
IHN0YXR1czsKKyAgICAgICAgdGhpcy5fc3RhdHVzZXNbZnJhbWVJZF0gPSBzdGF0dXM7CisgICAg
ICAgIAorICAgICAgICBpZiAoIXRoaXMuX21hbmlmZXN0VVJMc0J5RnJhbWVbZnJhbWVJZF0pIHsK
KyAgICAgICAgICAgIHRoaXMuX21hbmlmZXN0VVJMc0J5RnJhbWVbZnJhbWVJZF0gPSBtYW5pZmVz
dFVSTDsKKyAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3Bl
Y3Rvci5BcHBsaWNhdGlvbkNhY2hlTW9kZWwuRXZlbnRUeXBlcy5GcmFtZU1hbmlmZXN0QWRkZWQs
IGZyYW1lSWQpOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgaWYgKHN0YXR1c0No
YW5nZWQpCisgICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNw
ZWN0b3IuQXBwbGljYXRpb25DYWNoZU1vZGVsLkV2ZW50VHlwZXMuRnJhbWVNYW5pZmVzdFN0YXR1
c1VwZGF0ZWQsIGZyYW1lSWQpOworICAgIH0sCisgICAgCisgICAgLyoqCisgICAgICogQHBhcmFt
IHtzdHJpbmd9IGZyYW1lSWQKKyAgICAgKi8KKyAgICBfZnJhbWVNYW5pZmVzdFJlbW92ZWQ6IGZ1
bmN0aW9uKGZyYW1lSWQpCisgICAgeworICAgICAgICBpZiAoIXRoaXMuX21hbmlmZXN0VVJMc0J5
RnJhbWVbZnJhbWVJZF0pCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdmFyIG1hbmlm
ZXN0VVJMID0gdGhpcy5fbWFuaWZlc3RVUkxzQnlGcmFtZVtmcmFtZUlkXTsKKyAgICAgICAgZGVs
ZXRlIHRoaXMuX21hbmlmZXN0VVJMc0J5RnJhbWVbZnJhbWVJZF07CisgICAgICAgIGRlbGV0ZSB0
aGlzLl9zdGF0dXNlc1tmcmFtZUlkXTsKKyAgICAgICAgCisgICAgICAgIHRoaXMuZGlzcGF0Y2hF
dmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlTW9kZWwuRXZlbnRU
eXBlcy5GcmFtZU1hbmlmZXN0UmVtb3ZlZCwgZnJhbWVJZCk7CisgICAgfSwKKyAgICAKKyAgICAv
KioKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gZnJhbWVJZAorICAgICAqIEByZXR1cm4ge3N0cmlu
Z30KKyAgICAgKi8KKyAgICBmcmFtZU1hbmlmZXN0VVJMOiBmdW5jdGlvbihmcmFtZUlkKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX21hbmlmZXN0VVJMc0J5RnJhbWVbZnJhbWVJZF07Cisg
ICAgfSwKKyAgICAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gZnJhbWVJZAorICAg
ICAqIEByZXR1cm4ge251bWJlcn0KKyAgICAgKi8KKyAgICBmcmFtZU1hbmlmZXN0U3RhdHVzOiBm
dW5jdGlvbihmcmFtZUlkKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3N0YXR1c2VzW2Zy
YW1lSWRdIHx8IGFwcGxpY2F0aW9uQ2FjaGUuVU5DQUNIRUQ7CisgICAgfSwKKyAgICAKKyAgICAv
KioKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gZnJhbWVJZAorICAgICAqIEBwYXJhbSB7c3RyaW5n
fSBtYW5pZmVzdFVSTAorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzdGF0dXMKKyAgICAgKi8KKyAg
ICBfc3RhdHVzVXBkYXRlZDogZnVuY3Rpb24oZnJhbWVJZCwgbWFuaWZlc3RVUkwsIHN0YXR1cykK
KyAgICB7CisgICAgICAgIHRoaXMuX2ZyYW1lTWFuaWZlc3RVcGRhdGVkKGZyYW1lSWQsIG1hbmlm
ZXN0VVJMLCBzdGF0dXMpOworICAgIH0sCisgICAgCisgICAgLyoqCisgICAgICogQHBhcmFtIHtz
dHJpbmd9IGZyYW1lSWQKKyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKE9iamVjdCl9IGNhbGxiYWNr
CisgICAgICovCisgICAgcmVxdWVzdEFwcGxpY2F0aW9uQ2FjaGU6IGZ1bmN0aW9uKGZyYW1lSWQs
IGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tXcmFwcGVyKGVycm9y
LCBhcHBsaWNhdGlvbkNhY2hlKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoZXJyb3IpIHsK
KyAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTsKKyAgICAgICAgICAgICAgICBj
YWxsYmFjayhudWxsKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIGNhbGxiYWNrKGFwcGxpY2F0aW9uQ2FjaGUpOworICAg
ICAgICB9CisgICAgICAgIAorICAgICAgICBBcHBsaWNhdGlvbkNhY2hlQWdlbnQuZ2V0QXBwbGlj
YXRpb25DYWNoZUZvckZyYW1lKGZyYW1lSWQsIGNhbGxiYWNrV3JhcHBlci5iaW5kKHRoaXMpKTsK
KyAgICB9LAorICAgIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNOb3dPbmxp
bmUKKyAgICAgKi8KKyAgICBfbmV0d29ya1N0YXRlVXBkYXRlZDogZnVuY3Rpb24oaXNOb3dPbmxp
bmUpCisgICAgeworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNw
ZWN0b3IuQXBwbGljYXRpb25DYWNoZU1vZGVsLkV2ZW50VHlwZXMuTmV0d29ya1N0YXRlQ2hhbmdl
ZCwgaXNOb3dPbmxpbmUpOwogICAgIH0KIH0KIApAQCAtNjIsMTggKzIyMSwyMCBAQCBXZWJJbnNw
ZWN0b3IuQXBwbGljYXRpb25DYWNoZURpc3BhdGNoZXIgPSBmdW5jdGlvbihhcHBsaWNhdGlvbkNh
Y2hlTW9kZWwpCiAKIFdlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlRGlzcGF0Y2hlci5wcm90
b3R5cGUgPSB7CiAgICAgLyoqCisgICAgICogQHBhcmFtIHtzdHJpbmd9IGZyYW1lSWQKKyAgICAg
KiBAcGFyYW0ge3N0cmluZ30gbWFuaWZlc3RVUkwKICAgICAgKiBAcGFyYW0ge251bWJlcn0gc3Rh
dHVzCiAgICAgICovCi0gICAgdXBkYXRlQXBwbGljYXRpb25DYWNoZVN0YXR1czogZnVuY3Rpb24o
c3RhdHVzKQorICAgIGFwcGxpY2F0aW9uQ2FjaGVTdGF0dXNVcGRhdGVkOiBmdW5jdGlvbihmcmFt
ZUlkLCBtYW5pZmVzdFVSTCwgc3RhdHVzKQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLnBh
bmVscy5yZXNvdXJjZXMudXBkYXRlQXBwbGljYXRpb25DYWNoZVN0YXR1cyhzdGF0dXMpOworICAg
ICAgICB0aGlzLl9hcHBsaWNhdGlvbkNhY2hlTW9kZWwuX3N0YXR1c1VwZGF0ZWQoZnJhbWVJZCwg
bWFuaWZlc3RVUkwsIHN0YXR1cyk7CiAgICAgfSwKLQorICAgIAogICAgIC8qKgogICAgICAqIEBw
YXJhbSB7Ym9vbGVhbn0gaXNOb3dPbmxpbmUKICAgICAgKi8KLSAgICB1cGRhdGVOZXR3b3JrU3Rh
dGU6IGZ1bmN0aW9uKGlzTm93T25saW5lKQorICAgIG5ldHdvcmtTdGF0ZVVwZGF0ZWQ6IGZ1bmN0
aW9uKGlzTm93T25saW5lKQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5yZXNv
dXJjZXMudXBkYXRlTmV0d29ya1N0YXRlKGlzTm93T25saW5lKTsKLSAgICB9CisgICAgICAgIHRo
aXMuX2FwcGxpY2F0aW9uQ2FjaGVNb2RlbC5fbmV0d29ya1N0YXRlVXBkYXRlZChpc05vd09ubGlu
ZSk7CisgICAgfSwKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvUmVzb3VyY2VUcmVlTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1Jlc291cmNlVHJlZU1vZGVsLmpzCmluZGV4IGY1NDJhYjg0ZTFiOWExYzBkY2Y2ODZm
Yjg2YjFhYzA1OGI3YzUxM2YuLjM5N2IzMDljOWE5ZjEzMTgyYjU5N2YwNWUyOTdhZDZmNmNmZDQx
N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3Vy
Y2VUcmVlTW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9S
ZXNvdXJjZVRyZWVNb2RlbC5qcwpAQCAtMTE0LDYgKzExNCwxMSBAQCBXZWJJbnNwZWN0b3IuUmVz
b3VyY2VUcmVlTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gdGhpcy5fc3ViZnJh
bWVzW3BhcmVudEZyYW1lSWRdIHx8IFtdOwogICAgIH0sCiAKKyAgICBmcmFtZUZvcklkOiBmdW5j
dGlvbihmcmFtZUlkKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2ZyYW1lSWRzW2ZyYW1l
SWRdOworICAgIH0sCisKICAgICByZXNvdXJjZXM6IGZ1bmN0aW9uKGZyYW1lSWQpCiAgICAgewog
ICAgICAgICB2YXIgcmVzdWx0ID0gW107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcwppbmRleCBiMGZmZDA4YmZlMGU2MjFlNjFm
MWMwZTZlZTM1YWY2Zjk2NTI4MDkxLi4zMjUwYzVlNzA4NzgxZTFhZWRjZTNlMDZiNzBlOGMwY2Jk
YjlmOGZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jl
c291cmNlc1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
UmVzb3VyY2VzUGFuZWwuanMKQEAgLTc3LDYgKzc3LDcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNl
c1BhbmVsID0gZnVuY3Rpb24oZGF0YWJhc2UpCiAgICAgdGhpcy5fb3JpZ2lucyA9IHt9OwogICAg
IHRoaXMuX2RvbWFpbnMgPSB7fTsKIAorCiAgICAgdGhpcy5zaWRlYmFyRWxlbWVudC5hZGRFdmVu
dExpc3RlbmVyKCJtb3VzZW1vdmUiLCB0aGlzLl9vbm1vdXNlbW92ZS5iaW5kKHRoaXMpLCBmYWxz
ZSk7CiAgICAgdGhpcy5zaWRlYmFyRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW91dCIs
IHRoaXMuX29ubW91c2VvdXQuYmluZCh0aGlzKSwgZmFsc2UpOwogCkBAIC0xMTAsMTAgKzExMSw5
IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIFdl
Ykluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUud2FzU2hvd24uY2FsbCh0aGlzKTsKICAgICAgICAg
aWYgKCF0aGlzLl9pbml0aWFsaXplZCkgewogICAgICAgICAgICAgdGhpcy5fcG9wdWxhdGVSZXNv
dXJjZVRyZWUoKTsKLSAgICAgICAgICAgIHRoaXMuX2luaXRpYWxpemVBcHBsaWNhdGlvbkNhY2hl
TW9kZWwoKTsKLQorICAgICAgICAgICAgdGhpcy5fcG9wdWxhdGVBcHBsaWNhdGlvbkNhY2hlVHJl
ZSgpOwogICAgICAgICAgICAgdGhpcy5faW5pdERlZmF1bHRTZWxlY3Rpb24oKTsKLSAgICAgICAg
ICAgIAorCiAgICAgICAgICAgICB0aGlzLl9pbml0aWFsaXplZCA9IHRydWU7CiAgICAgICAgIH0K
ICAgICB9LApAQCAtMTY3LDE0ICsxNjcsMTAgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVs
LnByb3RvdHlwZSA9IHsKIAogICAgICAgICB0aGlzLl9jb29raWVWaWV3cyA9IHt9OwogCi0gICAg
ICAgIHRoaXMuX2FwcGxpY2F0aW9uQ2FjaGVWaWV3ID0gbnVsbDsKLSAgICAgICAgZGVsZXRlIHRo
aXMuX2NhY2hlZEFwcGxpY2F0aW9uQ2FjaGVWaWV3U3RhdHVzOwotCiAgICAgICAgIHRoaXMuZGF0
YWJhc2VzTGlzdFRyZWVFbGVtZW50LnJlbW92ZUNoaWxkcmVuKCk7CiAgICAgICAgIHRoaXMubG9j
YWxTdG9yYWdlTGlzdFRyZWVFbGVtZW50LnJlbW92ZUNoaWxkcmVuKCk7CiAgICAgICAgIHRoaXMu
c2Vzc2lvblN0b3JhZ2VMaXN0VHJlZUVsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKICAgICAgICAg
dGhpcy5jb29raWVMaXN0VHJlZUVsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICAgICAgdGhp
cy5hcHBsaWNhdGlvbkNhY2hlTGlzdFRyZWVFbGVtZW50LnJlbW92ZUNoaWxkcmVuKCk7CiAKICAg
ICAgICAgaWYgKHRoaXMudmlzaWJsZVZpZXcpCiAgICAgICAgICAgICB0aGlzLnZpc2libGVWaWV3
LmRldGFjaCgpOwpAQCAtMjYyLDYgKzI1OCwxMCBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFu
ZWwucHJvdG90eXBlID0gewogICAgICAgICB2YXIgZnJhbWVUcmVlRWxlbWVudCA9IHRoaXMuX3Ry
ZWVFbGVtZW50Rm9yRnJhbWVJZFtmcmFtZUlkXTsKICAgICAgICAgaWYgKGZyYW1lVHJlZUVsZW1l
bnQpCiAgICAgICAgICAgICBmcmFtZVRyZWVFbGVtZW50LmZyYW1lTmF2aWdhdGVkKGV2ZW50LmRh
dGEuZnJhbWUpOworCisgICAgICAgIHZhciBhcHBsaWNhdGlvbkNhY2hlRnJhbWVUcmVlRWxlbWVu
dCA9IHRoaXMuX2FwcGxpY2F0aW9uQ2FjaGVGcmFtZUVsZW1lbnRzW2ZyYW1lSWRdOworICAgICAg
ICBpZiAoYXBwbGljYXRpb25DYWNoZUZyYW1lVHJlZUVsZW1lbnQpCisgICAgICAgICAgICBhcHBs
aWNhdGlvbkNhY2hlRnJhbWVUcmVlRWxlbWVudC5mcmFtZU5hdmlnYXRlZChldmVudC5kYXRhLmZy
YW1lKTsKICAgICB9LAogCiAgICAgX2NhY2hlZFJlc291cmNlc0xvYWRlZDogZnVuY3Rpb24oKQpA
QCAtMjkwLDkgKzI5MCw2IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUg
PSB7CiAKICAgICAgICAgICAgIHZhciBjb29raWVEb21haW5UcmVlRWxlbWVudCA9IG5ldyBXZWJJ
bnNwZWN0b3IuQ29va2llVHJlZUVsZW1lbnQodGhpcywgZG9tYWluKTsKICAgICAgICAgICAgIHRo
aXMuY29va2llTGlzdFRyZWVFbGVtZW50LmFwcGVuZENoaWxkKGNvb2tpZURvbWFpblRyZWVFbGVt
ZW50KTsKLQotICAgICAgICAgICAgdmFyIGFwcGxpY2F0aW9uQ2FjaGVUcmVlRWxlbWVudCA9IG5l
dyBXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZVRyZWVFbGVtZW50KHRoaXMsIGRvbWFpbik7
Ci0gICAgICAgICAgICB0aGlzLmFwcGxpY2F0aW9uQ2FjaGVMaXN0VHJlZUVsZW1lbnQuYXBwZW5k
Q2hpbGQoYXBwbGljYXRpb25DYWNoZVRyZWVFbGVtZW50KTsKICAgICAgICAgfQogICAgIH0sCiAK
QEAgLTQ4MCwxOCArNDc3LDE5IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5
cGUgPSB7CiAgICAgICAgIHRoaXMuX2lubmVyU2hvd1ZpZXcodmlldyk7CiAgICAgfSwKIAotICAg
IHNob3dBcHBsaWNhdGlvbkNhY2hlOiBmdW5jdGlvbih0cmVlRWxlbWVudCwgYXBwY2FjaGVEb21h
aW4pCisgICAgc2hvd0FwcGxpY2F0aW9uQ2FjaGU6IGZ1bmN0aW9uKGZyYW1lSWQpCiAgICAgewot
ICAgICAgICB2YXIgdmlldyA9IHRoaXMuX2FwcGxpY2F0aW9uQ2FjaGVWaWV3OwotICAgICAgICBp
ZiAoIXZpZXcpIHsKLSAgICAgICAgICAgIHZpZXcgPSBuZXcgV2ViSW5zcGVjdG9yLkFwcGxpY2F0
aW9uQ2FjaGVJdGVtc1ZpZXcodGhpcy5fYXBwbGljYXRpb25DYWNoZU1vZGVsLCB0cmVlRWxlbWVu
dCwgYXBwY2FjaGVEb21haW4pOwotICAgICAgICAgICAgdGhpcy5fYXBwbGljYXRpb25DYWNoZVZp
ZXcgPSB2aWV3OwotICAgICAgICB9CisgICAgICAgIHZhciBzdGF0dXMgPSB0aGlzLl9hcHBsaWNh
dGlvbkNhY2hlTW9kZWwuZnJhbWVNYW5pZmVzdFN0YXR1cyhmcmFtZUlkKQogCi0gICAgICAgIHRo
aXMuX2lubmVyU2hvd1ZpZXcodmlldyk7CisgICAgICAgIGlmICghdGhpcy5fYXBwbGljYXRpb25D
YWNoZVZpZXdzW2ZyYW1lSWRdKSB7CisgICAgICAgICAgICB0aGlzLl9hcHBsaWNhdGlvbkNhY2hl
Vmlld3NbZnJhbWVJZF0gPSBuZXcgV2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVJdGVtc1Zp
ZXcodGhpcy5fYXBwbGljYXRpb25DYWNoZU1vZGVsLCBmcmFtZUlkLCBzdGF0dXMpOwogCi0gICAg
ICAgIGlmICgiX2NhY2hlZEFwcGxpY2F0aW9uQ2FjaGVWaWV3U3RhdHVzIiBpbiB0aGlzKQotICAg
ICAgICAgICAgdGhpcy5fYXBwbGljYXRpb25DYWNoZVZpZXcudXBkYXRlU3RhdHVzKHRoaXMuX2Nh
Y2hlZEFwcGxpY2F0aW9uQ2FjaGVWaWV3U3RhdHVzKTsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBN
YWtlIHN1cmUgdGhpcy5fY2FjaGVkQXBwbGljYXRpb25DYWNoZU5ldHdvcmtTdGF0ZSBpcyBhbHdh
eXMgc2V0IGFuZCBpcyBhbHdheXMgdXAgdG8gZGF0ZS4KKyAgICAgICAgICAgIGlmICh0eXBlb2Yo
dGhpcy5fY2FjaGVkQXBwbGljYXRpb25DYWNoZU5ldHdvcmtTdGF0ZSkgPT09ICJudW1iZXIiKQor
ICAgICAgICAgICAgICAgIHRoaXMuX2FwcGxpY2F0aW9uQ2FjaGVWaWV3c1tmcmFtZUlkXS51cGRh
dGVOZXR3b3JrU3RhdGUodGhpcy5fY2FjaGVkQXBwbGljYXRpb25DYWNoZU5ldHdvcmtTdGF0ZSk7
CisgICAgICAgIH0KKworICAgICAgICB0aGlzLl9pbm5lclNob3dWaWV3KHRoaXMuX2FwcGxpY2F0
aW9uQ2FjaGVWaWV3c1tmcmFtZUlkXSk7CiAgICAgfSwKIAogICAgIHNob3dDYXRlZ29yeVZpZXc6
IGZ1bmN0aW9uKGNhdGVnb3J5TmFtZSkKQEAgLTU2NiwyOCArNTY0LDc2IEBAIFdlYkluc3BlY3Rv
ci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBkb21TdG9yYWdlLl9k
b21TdG9yYWdlVmlldy51cGRhdGUoKTsKICAgICB9LAogCi0gICAgX2luaXRpYWxpemVBcHBsaWNh
dGlvbkNhY2hlTW9kZWw6IGZ1bmN0aW9uKCkKKyAgICBfcG9wdWxhdGVBcHBsaWNhdGlvbkNhY2hl
VHJlZTogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdGhpcy5fYXBwbGljYXRpb25DYWNoZU1v
ZGVsID0gbmV3IFdlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlTW9kZWwoKTsKKyAgICAgICAg
CisgICAgICAgIHRoaXMuX2FwcGxpY2F0aW9uQ2FjaGVWaWV3cyA9IHt9OworICAgICAgICB0aGlz
Ll9hcHBsaWNhdGlvbkNhY2hlRnJhbWVFbGVtZW50cyA9IHt9OworICAgICAgICB0aGlzLl9hcHBs
aWNhdGlvbkNhY2hlTWFuaWZlc3RFbGVtZW50cyA9IHt9OworICAgICAgICAKKyAgICAgICAgdGhp
cy5fYXBwbGljYXRpb25DYWNoZU1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkFw
cGxpY2F0aW9uQ2FjaGVNb2RlbC5FdmVudFR5cGVzLkZyYW1lTWFuaWZlc3RBZGRlZCwgdGhpcy5f
YXBwbGljYXRpb25DYWNoZUZyYW1lTWFuaWZlc3RBZGRlZCwgdGhpcyk7CisgICAgICAgIHRoaXMu
X2FwcGxpY2F0aW9uQ2FjaGVNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5BcHBs
aWNhdGlvbkNhY2hlTW9kZWwuRXZlbnRUeXBlcy5GcmFtZU1hbmlmZXN0UmVtb3ZlZCwgdGhpcy5f
YXBwbGljYXRpb25DYWNoZUZyYW1lTWFuaWZlc3RSZW1vdmVkLCB0aGlzKTsKKworICAgICAgICB0
aGlzLl9hcHBsaWNhdGlvbkNhY2hlTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
QXBwbGljYXRpb25DYWNoZU1vZGVsLkV2ZW50VHlwZXMuRnJhbWVNYW5pZmVzdFN0YXR1c1VwZGF0
ZWQsIHRoaXMuX2FwcGxpY2F0aW9uQ2FjaGVGcmFtZU1hbmlmZXN0U3RhdHVzQ2hhbmdlZCwgdGhp
cyk7CisgICAgICAgIHRoaXMuX2FwcGxpY2F0aW9uQ2FjaGVNb2RlbC5hZGRFdmVudExpc3RlbmVy
KFdlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlTW9kZWwuRXZlbnRUeXBlcy5OZXR3b3JrU3Rh
dGVDaGFuZ2VkLCB0aGlzLl9hcHBsaWNhdGlvbkNhY2hlTmV0d29ya1N0YXRlQ2hhbmdlZCwgdGhp
cyk7CisgICAgfSwKKworICAgIF9hcHBsaWNhdGlvbkNhY2hlRnJhbWVNYW5pZmVzdEFkZGVkOiBm
dW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIHZhciBmcmFtZUlkID0gZXZlbnQuZGF0YTsK
KyAgICAgICAgdmFyIG1hbmlmZXN0VVJMID0gdGhpcy5fYXBwbGljYXRpb25DYWNoZU1vZGVsLmZy
YW1lTWFuaWZlc3RVUkwoZnJhbWVJZCk7CisgICAgICAgIHZhciBzdGF0dXMgPSB0aGlzLl9hcHBs
aWNhdGlvbkNhY2hlTW9kZWwuZnJhbWVNYW5pZmVzdFN0YXR1cyhmcmFtZUlkKQorCisgICAgICAg
IHZhciBtYW5pZmVzdFRyZWVFbGVtZW50ID0gdGhpcy5fYXBwbGljYXRpb25DYWNoZU1hbmlmZXN0
RWxlbWVudHNbbWFuaWZlc3RVUkxdCisgICAgICAgIGlmICghbWFuaWZlc3RUcmVlRWxlbWVudCkg
eworICAgICAgICAgICAgbWFuaWZlc3RUcmVlRWxlbWVudCA9IG5ldyBXZWJJbnNwZWN0b3IuQXBw
bGljYXRpb25DYWNoZU1hbmlmZXN0VHJlZUVsZW1lbnQodGhpcywgbWFuaWZlc3RVUkwpOworICAg
ICAgICAgICAgdGhpcy5hcHBsaWNhdGlvbkNhY2hlTGlzdFRyZWVFbGVtZW50LmFwcGVuZENoaWxk
KG1hbmlmZXN0VHJlZUVsZW1lbnQpOworICAgICAgICAgICAgdGhpcy5fYXBwbGljYXRpb25DYWNo
ZU1hbmlmZXN0RWxlbWVudHNbbWFuaWZlc3RVUkxdID0gbWFuaWZlc3RUcmVlRWxlbWVudDsKKyAg
ICAgICAgfQorCisgICAgICAgIHZhciBmcmFtZVRyZWVFbGVtZW50ID0gbmV3IFdlYkluc3BlY3Rv
ci5BcHBsaWNhdGlvbkNhY2hlRnJhbWVUcmVlRWxlbWVudCh0aGlzLCBmcmFtZUlkLCBtYW5pZmVz
dFVSTCk7CisgICAgICAgIG1hbmlmZXN0VHJlZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZnJhbWVUcmVl
RWxlbWVudCk7CisgICAgICAgIG1hbmlmZXN0VHJlZUVsZW1lbnQuZXhwYW5kKCk7CisgICAgICAg
IHRoaXMuX2FwcGxpY2F0aW9uQ2FjaGVGcmFtZUVsZW1lbnRzW2ZyYW1lSWRdID0gZnJhbWVUcmVl
RWxlbWVudDsKICAgICB9LAotICAgIAotICAgIHVwZGF0ZUFwcGxpY2F0aW9uQ2FjaGVTdGF0dXM6
IGZ1bmN0aW9uKHN0YXR1cykKKworICAgIF9hcHBsaWNhdGlvbkNhY2hlRnJhbWVNYW5pZmVzdFJl
bW92ZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAgICAgICAgdGhpcy5fY2FjaGVkQXBwbGlj
YXRpb25DYWNoZVZpZXdTdGF0dXMgPSBzdGF0dXM7Ci0gICAgICAgIGlmICh0aGlzLl9hcHBsaWNh
dGlvbkNhY2hlVmlldyAmJiB0aGlzLl9hcHBsaWNhdGlvbkNhY2hlVmlldyA9PT0gdGhpcy52aXNp
YmxlVmlldykKLSAgICAgICAgICAgIHRoaXMuX2FwcGxpY2F0aW9uQ2FjaGVWaWV3LnVwZGF0ZVN0
YXR1cyhzdGF0dXMpOworICAgICAgICB2YXIgZnJhbWVJZCA9IGV2ZW50LmRhdGE7CisgICAgICAg
IHZhciBmcmFtZVRyZWVFbGVtZW50ID0gdGhpcy5fYXBwbGljYXRpb25DYWNoZUZyYW1lRWxlbWVu
dHNbZnJhbWVJZF07CisgICAgICAgIGlmICghZnJhbWVUcmVlRWxlbWVudCkKKyAgICAgICAgICAg
IHJldHVybjsKKworICAgICAgICB2YXIgbWFuaWZlc3RVUkwgPSBmcmFtZVRyZWVFbGVtZW50Lm1h
bmlmZXN0VVJMOworICAgICAgICBkZWxldGUgdGhpcy5fYXBwbGljYXRpb25DYWNoZUZyYW1lRWxl
bWVudHNbZnJhbWVJZF07CisgICAgICAgIGRlbGV0ZSB0aGlzLl9hcHBsaWNhdGlvbkNhY2hlVmll
d3NbZnJhbWVJZF07CisgICAgICAgIGZyYW1lVHJlZUVsZW1lbnQucGFyZW50LnJlbW92ZUNoaWxk
KGZyYW1lVHJlZUVsZW1lbnQpOworCisgICAgICAgIHZhciBtYW5pZmVzdFRyZWVFbGVtZW50ID0g
dGhpcy5fYXBwbGljYXRpb25DYWNoZU1hbmlmZXN0RWxlbWVudHNbbWFuaWZlc3RVUkxdOworICAg
ICAgICBpZiAobWFuaWZlc3RUcmVlRWxlbWVudC5jaGlsZHJlbi5sZW5ndGggIT09IDApCisgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgZGVsZXRlIHRoaXMuX2FwcGxpY2F0aW9uQ2FjaGVN
YW5pZmVzdEVsZW1lbnRzW21hbmlmZXN0VVJMXTsKKyAgICAgICAgbWFuaWZlc3RUcmVlRWxlbWVu
dC5wYXJlbnQucmVtb3ZlQ2hpbGQobWFuaWZlc3RUcmVlRWxlbWVudCk7CiAgICAgfSwKIAotICAg
IHVwZGF0ZU5ldHdvcmtTdGF0ZTogZnVuY3Rpb24oaXNOb3dPbmxpbmUpCisgICAgX2FwcGxpY2F0
aW9uQ2FjaGVGcmFtZU1hbmlmZXN0U3RhdHVzQ2hhbmdlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAg
ewotICAgICAgICBpZiAodGhpcy5fYXBwbGljYXRpb25DYWNoZVZpZXcgJiYgdGhpcy5fYXBwbGlj
YXRpb25DYWNoZVZpZXcgPT09IHRoaXMudmlzaWJsZVZpZXcpCi0gICAgICAgICAgICB0aGlzLl9h
cHBsaWNhdGlvbkNhY2hlVmlldy51cGRhdGVOZXR3b3JrU3RhdGUoaXNOb3dPbmxpbmUpOworICAg
ICAgICB2YXIgZnJhbWVJZCA9IGV2ZW50LmRhdGE7CisgICAgICAgIHZhciBzdGF0dXMgPSB0aGlz
Ll9hcHBsaWNhdGlvbkNhY2hlTW9kZWwuZnJhbWVNYW5pZmVzdFN0YXR1cyhmcmFtZUlkKQorCisg
ICAgICAgIGlmICh0aGlzLl9hcHBsaWNhdGlvbkNhY2hlVmlld3NbZnJhbWVJZF0pCisgICAgICAg
ICAgICB0aGlzLl9hcHBsaWNhdGlvbkNhY2hlVmlld3NbZnJhbWVJZF0udXBkYXRlU3RhdHVzKHN0
YXR1cyk7CiAgICAgfSwKIAotICAgIHVwZGF0ZU1hbmlmZXN0OiBmdW5jdGlvbihtYW5pZmVzdCkK
KyAgICBfYXBwbGljYXRpb25DYWNoZU5ldHdvcmtTdGF0ZUNoYW5nZWQ6IGZ1bmN0aW9uKGV2ZW50
KQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2FwcGxpY2F0aW9uQ2FjaGVWaWV3ICYmIHRoaXMu
X2FwcGxpY2F0aW9uQ2FjaGVWaWV3ID09PSB0aGlzLnZpc2libGVWaWV3KQotICAgICAgICAgICAg
dGhpcy5fYXBwbGljYXRpb25DYWNoZVZpZXcudXBkYXRlTWFuaWZlc3QobWFuaWZlc3QpOworICAg
ICAgICB2YXIgaXNOb3dPbmxpbmUgPSBldmVudC5kYXRhOworCisgICAgICAgIHRoaXMuX2NhY2hl
ZEFwcGxpY2F0aW9uQ2FjaGVOZXR3b3JrU3RhdGUgPSBpc05vd09ubGluZTsKKyAgICAgICAgZm9y
ICh2YXIgbWFuaWZlc3RVUkwgaW4gdGhpcy5fYXBwbGljYXRpb25DYWNoZVZpZXdzKQorICAgICAg
ICAgICAgdGhpcy5fYXBwbGljYXRpb25DYWNoZVZpZXdzW21hbmlmZXN0VVJMXS51cGRhdGVOZXR3
b3JrU3RhdGUoaXNOb3dPbmxpbmUpOwogICAgIH0sCiAKICAgICBfZG9tU3RvcmFnZUZvcklkOiBm
dW5jdGlvbihzdG9yYWdlSWQpCkBAIC0xNTAyLDI1ICsxNTQ4LDg0IEBAIFdlYkluc3BlY3Rvci5D
b29raWVUcmVlRWxlbWVudC5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLkJhc2VT
dG9yYWdlVHJlCiAgKiBAY29uc3RydWN0b3IKICAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuQmFz
ZVN0b3JhZ2VUcmVlRWxlbWVudH0KICAqLwotV2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVU
cmVlRWxlbWVudCA9IGZ1bmN0aW9uKHN0b3JhZ2VQYW5lbCwgYXBwY2FjaGVEb21haW4pCitXZWJJ
bnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZU1hbmlmZXN0VHJlZUVsZW1lbnQgPSBmdW5jdGlvbihz
dG9yYWdlUGFuZWwsIG1hbmlmZXN0VVJMKQoreworICAgIHZhciB0aXRsZSA9IFdlYkluc3BlY3Rv
ci5SZXNvdXJjZS5kaXNwbGF5TmFtZShtYW5pZmVzdFVSTCk7CisgICAgV2ViSW5zcGVjdG9yLkJh
c2VTdG9yYWdlVHJlZUVsZW1lbnQuY2FsbCh0aGlzLCBzdG9yYWdlUGFuZWwsIG51bGwsIHRpdGxl
LCBbImFwcGxpY2F0aW9uLWNhY2hlLXN0b3JhZ2UtdHJlZS1pdGVtIl0pOworICAgIHRoaXMudG9v
bHRpcCA9IG1hbmlmZXN0VVJMOworICAgIHRoaXMuX21hbmlmZXN0VVJMID0gbWFuaWZlc3RVUkw7
Cit9CisKK1dlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlTWFuaWZlc3RUcmVlRWxlbWVudC5w
cm90b3R5cGUgPSB7CisgICAgZ2V0IGl0ZW1VUkwoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICJh
cHBjYWNoZTovLyIgKyB0aGlzLl9tYW5pZmVzdFVSTDsKKyAgICB9LAorCisgICAgZ2V0IG1hbmlm
ZXN0VVJMKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9tYW5pZmVzdFVSTDsKKyAgICB9
LAorCisgICAgb25zZWxlY3Q6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIFdlYkluc3BlY3Rv
ci5CYXNlU3RvcmFnZVRyZWVFbGVtZW50LnByb3RvdHlwZS5vbnNlbGVjdC5jYWxsKHRoaXMpOwor
ICAgICAgICB0aGlzLl9zdG9yYWdlUGFuZWwuc2hvd0NhdGVnb3J5Vmlldyh0aGlzLl9tYW5pZmVz
dFVSTCk7CisgICAgfQorfQorV2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVNYW5pZmVzdFRy
ZWVFbGVtZW50LnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuQmFzZVN0b3JhZ2VU
cmVlRWxlbWVudC5wcm90b3R5cGU7CisKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKiBAZXh0ZW5k
cyB7V2ViSW5zcGVjdG9yLkJhc2VTdG9yYWdlVHJlZUVsZW1lbnR9CisgKi8KK1dlYkluc3BlY3Rv
ci5BcHBsaWNhdGlvbkNhY2hlRnJhbWVUcmVlRWxlbWVudCA9IGZ1bmN0aW9uKHN0b3JhZ2VQYW5l
bCwgZnJhbWVJZCwgbWFuaWZlc3RVUkwpCiB7Ci0gICAgV2ViSW5zcGVjdG9yLkJhc2VTdG9yYWdl
VHJlZUVsZW1lbnQuY2FsbCh0aGlzLCBzdG9yYWdlUGFuZWwsIG51bGwsIGFwcGNhY2hlRG9tYWlu
ID8gYXBwY2FjaGVEb21haW4gOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkxvY2FsIEZpbGVzIiks
IFsiYXBwbGljYXRpb24tY2FjaGUtc3RvcmFnZS10cmVlLWl0ZW0iXSk7Ci0gICAgdGhpcy5fYXBw
Y2FjaGVEb21haW4gPSBhcHBjYWNoZURvbWFpbjsKKyAgICBXZWJJbnNwZWN0b3IuQmFzZVN0b3Jh
Z2VUcmVlRWxlbWVudC5jYWxsKHRoaXMsIHN0b3JhZ2VQYW5lbCwgbnVsbCwgIiIsIFsiZnJhbWUt
c3RvcmFnZS10cmVlLWl0ZW0iXSk7CisgICAgdGhpcy5fZnJhbWVJZCA9IGZyYW1lSWQ7CisgICAg
dGhpcy5fbWFuaWZlc3RVUkwgPSBtYW5pZmVzdFVSTDsKKyAgICB0aGlzLl9yZWZyZXNoVGl0bGVz
KCk7CiB9CiAKLVdlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlVHJlZUVsZW1lbnQucHJvdG90
eXBlID0geworV2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVGcmFtZVRyZWVFbGVtZW50LnBy
b3RvdHlwZSA9IHsKICAgICBnZXQgaXRlbVVSTCgpCiAgICAgewotICAgICAgICByZXR1cm4gImFw
cGNhY2hlOi8vIiArIHRoaXMuX2FwcGNhY2hlRG9tYWluOworICAgICAgICByZXR1cm4gImFwcGNh
Y2hlOi8vIiArIHRoaXMuX21hbmlmZXN0VVJMICsgIi8iICsgZW5jb2RlVVJJKHRoaXMuZGlzcGxh
eU5hbWUpOworICAgIH0sCisKKyAgICBnZXQgZnJhbWVJZCgpCisgICAgeworICAgICAgICByZXR1
cm4gdGhpcy5fZnJhbWVJZDsKKyAgICB9LAorCisgICAgZ2V0IG1hbmlmZXN0VVJMKCkKKyAgICB7
CisgICAgICAgIHJldHVybiB0aGlzLl9tYW5pZmVzdFVSTDsKKyAgICB9LAorCisgICAgX3JlZnJl
c2hUaXRsZXM6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHZhciBmcmFtZSA9IFdlYkluc3Bl
Y3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5mcmFtZUZvcklkKHRoaXMuX2ZyYW1lSWQpOworICAgICAg
ICBpZiAoIWZyYW1lKSB7CisgICAgICAgICAgICB0aGlzLnN1YnRpdGxlVGV4dCA9IFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygibmV3IGZyYW1lIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKyAgICAgICAgdGhpcy50aXRsZVRleHQgPSBmcmFtZS5uYW1lOworICAgICAgICB0aGlzLnN1
YnRpdGxlVGV4dCA9IFdlYkluc3BlY3Rvci5SZXNvdXJjZS5kaXNwbGF5TmFtZShmcmFtZS51cmwp
OworICAgIH0sCisKKyAgICBmcmFtZU5hdmlnYXRlZDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAg
ICAgdGhpcy5fcmVmcmVzaFRpdGxlcygpOwogICAgIH0sCiAKICAgICBvbnNlbGVjdDogZnVuY3Rp
b24oKQogICAgIHsKICAgICAgICAgV2ViSW5zcGVjdG9yLkJhc2VTdG9yYWdlVHJlZUVsZW1lbnQu
cHJvdG90eXBlLm9uc2VsZWN0LmNhbGwodGhpcyk7Ci0gICAgICAgIHRoaXMuX3N0b3JhZ2VQYW5l
bC5zaG93QXBwbGljYXRpb25DYWNoZSh0aGlzLCB0aGlzLl9hcHBjYWNoZURvbWFpbik7CisgICAg
ICAgIHRoaXMuX3N0b3JhZ2VQYW5lbC5zaG93QXBwbGljYXRpb25DYWNoZSh0aGlzLl9mcmFtZUlk
KTsKICAgICB9CiB9Ci1XZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZVRyZWVFbGVtZW50LnBy
b3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuQmFzZVN0b3JhZ2VUcmVlRWxlbWVudC5w
cm90b3R5cGU7CitXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZUZyYW1lVHJlZUVsZW1lbnQu
cHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5CYXNlU3RvcmFnZVRyZWVFbGVtZW50
LnByb3RvdHlwZTsKIAogLyoqCiAgKiBAY29uc3RydWN0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vREVQUyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vREVQUwppbmRleCBm
ZjEyYjIzOWIxZGU5Y2Y4NzAxZWZkMmFjODYzMzg5MDE2NmEzYmIyLi5mYzkwNzJlNDY0ZjJiYWE1
YmRjMTZjZDc4ZTYxODU5YzIzNDM2NzliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0RFUFMKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9ERVBTCkBAIC0zMiw3ICszMiw3
IEBACiAKIHZhcnMgPSB7CiAgICdjaHJvbWl1bV9zdm4nOiAnaHR0cDovL3NyYy5jaHJvbWl1bS5v
cmcvc3ZuL3RydW5rL3NyYycsCi0gICdjaHJvbWl1bV9yZXYnOiAnMTA4ODM5JworICAnY2hyb21p
dW1fcmV2JzogJzEwOTQxMycKIH0KIAogZGVwcyA9IHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzYjU1YmFiY2ZjZTIwMTMx
MDMyYTAxZThmY2VlMjhiNzc3MzczYTk0Li5hOWFmZWViMWUwZTVkM2VlMzNiOThiM2JlYTljMjE5
MTFlMGM1ODc0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMTEtMTAgIFZzZXZvbG9kIFZs
YXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogQXBw
bGljYXRpb25DYWNoZSBVSSBpcyBjb25mdXNpbmcgYW5kIGluY29ycmVjdC4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0NTgxCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rv
ci9yZXNvdXJjZS10cmVlL2FwcGNhY2hlLWlmcmFtZS1tYW5pZmVzdHMtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL2FwcGNh
Y2hlLWlmcmFtZS1tYW5pZmVzdHMuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9p
bnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZXMvbWFuaWZlc3QucGhwOiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlcy9wYWdl
LXdpdGgtbWFuaWZlc3QucGhwOiBBZGRlZC4KKwogMjAxMS0xMS0xMCAgWXV0YSBLaXRhbXVyYSAg
PHl1dGFrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIFVucmV2aWV3ZWQsIHJl
YmFzZWxpbmUgU1ZHIHRlc3QgcmVzdWx0cyBjaGFuZ2VkIGFmdGVyIHI5OTUzOS4gKHBhcnQgNikK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRy
ZWUvYXBwY2FjaGUtaWZyYW1lLW1hbmlmZXN0cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL2FwcGNhY2hlLWlmcmFtZS1tYW5pZmVz
dHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVkNDA1MGViZDk2YzBmNTFmMzQ5NjM2ZmQ5NWI5
ZDk2OWY4YWZiNjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9yZXNvdXJjZS10cmVlL2FwcGNhY2hlLWlmcmFtZS1tYW5pZmVzdHMtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMjEgQEAKK1Rlc3RzIHRoYXQgYXBwbGljYXRpb24gY2FjaGUgbW9kZWwg
a2VlcHMgdHJhY2sgb2YgbWFuaWZlc3QgdXJscyBhbmQgc3RhdHVzZXMgY29ycmVjdGx5LgorCitC
dWcgNjQ1ODEKK0R1bXBpbmcgYXBwbGljYXRpb24gY2FjaGUgbW9kZWw6CisKK0R1bXBpbmcgYXBw
bGljYXRpb24gY2FjaGUgbW9kZWw6CisgICAgRnJhbWU6IGZyYW1lMSAoaHR0cDovLzEyNy4wLjAu
MTo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlcy9wYWdlLXdpdGgtbWFuaWZl
c3QucGhwP21hbmlmZXN0SWQ9MSkgaGFzIG1hbmlmZXN0IHVybDogaHR0cDovLzEyNy4wLjAuMTo4
MDAwL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlcy9tYW5pZmVzdC5waHA/bWFuaWZl
c3RJZD0xCisKK0R1bXBpbmcgYXBwbGljYXRpb24gY2FjaGUgbW9kZWw6CisgICAgRnJhbWU6IGZy
YW1lMSAoaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291
cmNlcy9wYWdlLXdpdGgtbWFuaWZlc3QucGhwP21hbmlmZXN0SWQ9MikgaGFzIG1hbmlmZXN0IHVy
bDogaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNl
cy9tYW5pZmVzdC5waHA/bWFuaWZlc3RJZD0yCisKK0R1bXBpbmcgYXBwbGljYXRpb24gY2FjaGUg
bW9kZWw6CisgICAgRnJhbWU6IGZyYW1lMSAoaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rv
ci9yZXNvdXJjZS10cmVlL3Jlc291cmNlcy9wYWdlLXdpdGgtbWFuaWZlc3QucGhwP21hbmlmZXN0
SWQ9MikgaGFzIG1hbmlmZXN0IHVybDogaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9y
ZXNvdXJjZS10cmVlL3Jlc291cmNlcy9tYW5pZmVzdC5waHA/bWFuaWZlc3RJZD0yCisgICAgRnJh
bWU6IGZyYW1lMiAoaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZS10cmVl
L3Jlc291cmNlcy9wYWdlLXdpdGgtbWFuaWZlc3QucGhwP21hbmlmZXN0SWQ9MSkgaGFzIG1hbmlm
ZXN0IHVybDogaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jl
c291cmNlcy9tYW5pZmVzdC5waHA/bWFuaWZlc3RJZD0xCisKK0R1bXBpbmcgYXBwbGljYXRpb24g
Y2FjaGUgbW9kZWw6CisgICAgRnJhbWU6IGZyYW1lMSAoaHR0cDovLzEyNy4wLjAuMTo4MDAwL2lu
c3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlcy9wYWdlLXdpdGgtbWFuaWZlc3QucGhwP21h
bmlmZXN0SWQ9MikgaGFzIG1hbmlmZXN0IHVybDogaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3Bl
Y3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlcy9tYW5pZmVzdC5waHA/bWFuaWZlc3RJZD0yCisg
ICAgRnJhbWU6IGZyYW1lMiAoaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9yZXNvdXJj
ZS10cmVlL3Jlc291cmNlcy9wYWdlLXdpdGgtbWFuaWZlc3QucGhwP21hbmlmZXN0SWQ9MSkgaGFz
IG1hbmlmZXN0IHVybDogaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZS10
cmVlL3Jlc291cmNlcy9tYW5pZmVzdC5waHA/bWFuaWZlc3RJZD0xCisgICAgRnJhbWU6IGZyYW1l
MyAoaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNl
cy9wYWdlLXdpdGgtbWFuaWZlc3QucGhwP21hbmlmZXN0SWQ9MSkgaGFzIG1hbmlmZXN0IHVybDog
aHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlcy9t
YW5pZmVzdC5waHA/bWFuaWZlc3RJZD0xCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9hcHBjYWNoZS1pZnJhbWUtbWFuaWZlc3Rz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL2Fw
cGNhY2hlLWlmcmFtZS1tYW5pZmVzdHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YzZiYjVmMmM2ZWE0OGFl
MmZhYjk2YTZjOGRhOWU2OWM5NWQ2MjM0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9hcHBjYWNoZS1pZnJhbWUtbWFuaWZl
c3RzLmh0bWwKQEAgLTAsMCArMSwxNTggQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK3ZhciBmcmFtZXNDb3Vu
dCA9IDA7CisKK2Z1bmN0aW9uIGNyZWF0ZUFuZE5hdmlnYXRlSUZyYW1lKHVybCkKK3sKKyAgICBp
ZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICBpZnJhbWUuc3Jj
ID0gdXJsOworICAgIGlmcmFtZS5uYW1lID0gImZyYW1lIiArICsrZnJhbWVzQ291bnQ7CisgICAg
aWZyYW1lLmlkID0gaWZyYW1lLm5hbWU7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChp
ZnJhbWUpOworfQorCitmdW5jdGlvbiBuYXZpZ2F0ZUlGcmFtZShuYW1lLCB1cmwpCit7CisgICAg
aWZyYW1lID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiIyIgKyBuYW1lKTsKKyAgICBpZnJhbWUu
c3JjID0gdXJsOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBmdW5jdGlvbiBjcmVhdGVB
bmROYXZpZ2F0ZUlGcmFtZSh1cmwsIGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5wcm90b3R5cGUs
ICJfZnJhbWVOYXZpZ2F0ZWQiLCBmcmFtZU5hdmlnYXRlZCk7CisgICAgICAgIEluc3BlY3RvclRl
c3QuZXZhbHVhdGVJblBhZ2UoImNyZWF0ZUFuZE5hdmlnYXRlSUZyYW1lKHVuZXNjYXBlKCciICsg
ZXNjYXBlKHVybCkgKyAiJykpIik7CisKKyAgICAgICAgZnVuY3Rpb24gZnJhbWVOYXZpZ2F0ZWQo
ZnJhbWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIGNhbGxiYWNrKGZyYW1lLmlkKTsKKyAgICAg
ICAgfQorICAgIH0KKworICAgIGZ1bmN0aW9uIG5hdmlnYXRlSUZyYW1lKGZyYW1lSWQsIHVybCwg
Y2FsbGJhY2spCisgICAgeworICAgICAgICB2YXIgZnJhbWUgPSBXZWJJbnNwZWN0b3IucmVzb3Vy
Y2VUcmVlTW9kZWwuZnJhbWVGb3JJZChmcmFtZUlkKQorICAgICAgICBJbnNwZWN0b3JUZXN0LmV2
YWx1YXRlSW5QYWdlKCJuYXZpZ2F0ZUlGcmFtZSh1bmVzY2FwZSgnIiArIGVzY2FwZShmcmFtZS5u
YW1lKSArIicpLCB1bmVzY2FwZSgnIiArIGVzY2FwZSh1cmwpICsgIicpKSIpOworICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLnBy
b3RvdHlwZSwgIl9mcmFtZU5hdmlnYXRlZCIsIGZyYW1lTmF2aWdhdGVkKTsKKworICAgICAgICBm
dW5jdGlvbiBmcmFtZU5hdmlnYXRlZChmcmFtZSkKKyAgICAgICAgeworICAgICAgICAgICAgY2Fs
bGJhY2soZnJhbWUuaWQpOworICAgICAgICB9CisgICAgfQorCisgICAgZnVuY3Rpb24gZHVtcEFw
cGxpY2F0aW9uQ2FjaGVNb2RlbCgpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiRHVtcGluZyBhcHBsaWNhdGlvbiBjYWNoZSBtb2RlbDoiKTsKKyAgICAgICAgdmFyIG1v
ZGVsID0gV2ViSW5zcGVjdG9yLnBhbmVscy5yZXNvdXJjZXMuX2FwcGxpY2F0aW9uQ2FjaGVNb2Rl
bDsKKworICAgICAgICB2YXIgZnJhbWVJZHMgPSBbXTsKKyAgICAgICAgZm9yICh2YXIgZnJhbWVJ
ZCBpbiBtb2RlbC5fbWFuaWZlc3RVUkxzQnlGcmFtZSkgeworICAgICAgICAgICAgZnJhbWVJZHMu
cHVzaChmcmFtZUlkKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGNvbXBhcmVGdW5j
KGEsIGIpIHsKKyAgICAgICAgICAgIHZhciBhRnJhbWUgPSBXZWJJbnNwZWN0b3IucmVzb3VyY2VU
cmVlTW9kZWwuZnJhbWVGb3JJZChhKTsKKyAgICAgICAgICAgIHZhciBiRnJhbWUgPSBXZWJJbnNw
ZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuZnJhbWVGb3JJZChiKTsKKyAgICAgICAgICAgIHJldHVy
biBhRnJhbWUubmFtZS5sb2NhbGVDb21wYXJlKGJGcmFtZS5uYW1lKTsKKyAgICAgICAgfQorICAg
ICAgICBmcmFtZUlkcy5zb3J0KGNvbXBhcmVGdW5jKTsKKworICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IGZyYW1lSWRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB2YXIgZnJhbWVJZCA9
IGZyYW1lSWRzW2ldOworICAgICAgICAgICAgdmFyIGZyYW1lID0gV2ViSW5zcGVjdG9yLnJlc291
cmNlVHJlZU1vZGVsLmZyYW1lRm9ySWQoZnJhbWVJZCk7CisgICAgICAgICAgICB2YXIgbWFuaWZl
c3RVUkwgPSBtb2RlbC5fbWFuaWZlc3RVUkxzQnlGcmFtZVtmcmFtZUlkXTsKKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgICAgRnJhbWU6ICIgKyBmcmFtZS5uYW1lICsgIiAo
IiArIGZyYW1lLnVybCArICIpIGhhcyBtYW5pZmVzdCB1cmw6ICIgKyBtYW5pZmVzdFVSTCk7Cisg
ICAgICAgIH0KKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiIpOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIHdhaXRGb3JGcmFtZXNNYW5pZmVzdFVSTEFuZFN0YXR1cyhmcmFtZURhdGEs
IGNhbGxiYWNrLCBpZCwgbWFuLCBzdCkKKyAgICB7CisgICAgICAgIGZvciAodmFyIGZyYW1lSWQg
aW4gZnJhbWVEYXRhKSB7CisgICAgICAgICAgICB2YXIgZnJhbWVNYW5pZmVzdFN0YXR1cyA9IFdl
Ykluc3BlY3Rvci5wYW5lbHMucmVzb3VyY2VzLl9hcHBsaWNhdGlvbkNhY2hlTW9kZWwuZnJhbWVN
YW5pZmVzdFN0YXR1cyhmcmFtZUlkKTsKKyAgICAgICAgICAgIHZhciBmcmFtZU1hbmlmZXN0VVJM
ID0gV2ViSW5zcGVjdG9yLnBhbmVscy5yZXNvdXJjZXMuX2FwcGxpY2F0aW9uQ2FjaGVNb2RlbC5m
cmFtZU1hbmlmZXN0VVJMKGZyYW1lSWQpOworICAgICAgICAgICAgaWYgKGZyYW1lTWFuaWZlc3RT
dGF0dXMgPT09IGZyYW1lRGF0YVtmcmFtZUlkXS5zdGF0dXMgJiYgZnJhbWVNYW5pZmVzdFVSTC5p
bmRleE9mKGZyYW1lRGF0YVtmcmFtZUlkXS5tYW5pZmVzdFVSTCkgIT09IC0xKQorICAgICAgICAg
ICAgICAgIGRlbGV0ZSBmcmFtZURhdGFbZnJhbWVJZF07CisgICAgICAgIH0KKworICAgICAgICBm
b3IgKHZhciBpZCBpbiBmcmFtZURhdGEpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRk
U25pZmZlcihXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZU1vZGVsLnByb3RvdHlwZSwgIl9m
cmFtZU1hbmlmZXN0VXBkYXRlZCIsIHdhaXRGb3JGcmFtZXNNYW5pZmVzdFVSTEFuZFN0YXR1cy5i
aW5kKHRoaXMsIGZyYW1lRGF0YSwgY2FsbGJhY2spKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQorCisgICAgICAgIGNhbGxiYWNrKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gd2Fp
dEZvckZyYW1lTWFuaWZlc3RVUkxBbmRTdGF0dXMoZnJhbWVJZCwgbWFuaWZlc3RVUkwsIHN0YXR1
cywgY2FsbGJhY2spCisgICAgeworICAgICAgICB2YXIgZnJhbWVEYXRhID0ge307CisgICAgICAg
IGZyYW1lRGF0YVtmcmFtZUlkXSA9IHtzdGF0dXM6IHN0YXR1cywgbWFuaWZlc3RVUkw6IG1hbmlm
ZXN0VVJMfTsKKyAgICAgICAgd2FpdEZvckZyYW1lc01hbmlmZXN0VVJMQW5kU3RhdHVzKGZyYW1l
RGF0YSwgY2FsbGJhY2spOworICAgIH0KKworICAgIHZhciBmcmFtZUlkMTsKKyAgICB2YXIgZnJh
bWVJZDI7CisgICAgdmFyIGZyYW1lSWQzOworCisgICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgi
cmVzb3VyY2VzIik7CisgICAgZHVtcEFwcGxpY2F0aW9uQ2FjaGVNb2RlbCgpOworICAgIGNyZWF0
ZUFuZE5hdmlnYXRlSUZyYW1lKCJyZXNvdXJjZXMvcGFnZS13aXRoLW1hbmlmZXN0LnBocD9tYW5p
ZmVzdElkPTEiLCBzdGVwMSk7CisKKyAgICBmdW5jdGlvbiBzdGVwMShmcmFtZUlkKQorICAgIHsK
KyAgICAgICAgZnJhbWVJZDEgPSBmcmFtZUlkOworICAgICAgICB3YWl0Rm9yRnJhbWVNYW5pZmVz
dFVSTEFuZFN0YXR1cyhmcmFtZUlkMSwgIm1hbmlmZXN0LnBocD9tYW5pZmVzdElkPTEiLCBhcHBs
aWNhdGlvbkNhY2hlLklETEUsIHN0ZXAyKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdGVwMigp
CisgICAgeworICAgICAgICBkdW1wQXBwbGljYXRpb25DYWNoZU1vZGVsKCk7CisgICAgICAgIG5h
dmlnYXRlSUZyYW1lKGZyYW1lSWQxLCAicmVzb3VyY2VzL3BhZ2Utd2l0aC1tYW5pZmVzdC5waHA/
bWFuaWZlc3RJZD0yIiwgc3RlcDMpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0ZXAzKGZyYW1l
SWQpCisgICAgeworICAgICAgICB3YWl0Rm9yRnJhbWVNYW5pZmVzdFVSTEFuZFN0YXR1cyhmcmFt
ZUlkMSwgIm1hbmlmZXN0LnBocD9tYW5pZmVzdElkPTIiLCBhcHBsaWNhdGlvbkNhY2hlLklETEUs
IHN0ZXA0KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdGVwNCgpCisgICAgeworICAgICAgICBk
dW1wQXBwbGljYXRpb25DYWNoZU1vZGVsKCk7CisgICAgICAgIGNyZWF0ZUFuZE5hdmlnYXRlSUZy
YW1lKCJyZXNvdXJjZXMvcGFnZS13aXRoLW1hbmlmZXN0LnBocD9tYW5pZmVzdElkPTEiLCBzdGVw
NSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDUoZnJhbWVJZCkKKyAgICB7CisgICAgICAg
IGZyYW1lSWQyID0gZnJhbWVJZDsKKyAgICAgICAgd2FpdEZvckZyYW1lTWFuaWZlc3RVUkxBbmRT
dGF0dXMoZnJhbWVJZDIsICJtYW5pZmVzdC5waHA/bWFuaWZlc3RJZD0xIiwgYXBwbGljYXRpb25D
YWNoZS5JRExFLCBzdGVwNik7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDYoKQorICAgIHsK
KyAgICAgICAgZHVtcEFwcGxpY2F0aW9uQ2FjaGVNb2RlbCgpOworICAgICAgICBjcmVhdGVBbmRO
YXZpZ2F0ZUlGcmFtZSgicmVzb3VyY2VzL3BhZ2Utd2l0aC1tYW5pZmVzdC5waHA/bWFuaWZlc3RJ
ZD0xIiwgc3RlcDcpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0ZXA3KGZyYW1lSWQpCisgICAg
eworICAgICAgICBmcmFtZUlkMyA9IGZyYW1lSWQ7CisgICAgICAgIHdhaXRGb3JGcmFtZU1hbmlm
ZXN0VVJMQW5kU3RhdHVzKGZyYW1lSWQzLCAibWFuaWZlc3QucGhwP21hbmlmZXN0SWQ9MSIsIGFw
cGxpY2F0aW9uQ2FjaGUuSURMRSwgc3RlcDgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0ZXA4
KCkKKyAgICB7CisgICAgICAgIGR1bXBBcHBsaWNhdGlvbkNhY2hlTW9kZWwoKTsKKyAgICAgICAg
SW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICB9Cit9Cis8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPlRlc3RzIHRoYXQgYXBwbGljYXRpb24g
Y2FjaGUgbW9kZWwga2VlcHMgdHJhY2sgb2YgbWFuaWZlc3QgdXJscyBhbmQgc3RhdHVzZXMgY29y
cmVjdGx5LjwvcD4KKzxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02NDU4MSI+QnVnIDY0NTgxPC9hPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZXMv
bWFuaWZlc3QucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2Ut
dHJlZS9yZXNvdXJjZXMvbWFuaWZlc3QucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3YTVkMTIwNmRjNTM2YjRl
OTY1MzAxNjA4ZDkyMjYyMWQ1ZmNhNjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlcy9tYW5pZmVzdC5waHAK
QEAgLTAsMCArMSwxMiBAQAorPD9waHAKKyAgICBoZWFkZXIoIkV4cGlyZXM6IFRodSwgMDEgRGVj
IDIwMDMgMTY6MDA6MDAgR01UIik7CisgICAgaGVhZGVyKCJDYWNoZS1Db250cm9sOiBuby1jYWNo
ZSwgbXVzdC1yZXZhbGlkYXRlIik7CisgICAgaGVhZGVyKCJQcmFnbWE6IG5vLWNhY2hlIik7Cisg
ICAgaGVhZGVyKCJDb250ZW50LVR5cGU6IHRleHQvY2FjaGUtbWFuaWZlc3QiKTsKKworICAgICRt
YW5pZmVzdElkID0gJF9HRVRbIm1hbmlmZXN0SWQiXTsKKworICAgIGVjaG8oIkNBQ0hFIE1BTklG
RVNUXG4iKTsKKyAgICBlY2hvKCIjICIgLiAkbWFuaWZlc3RJZCAuICJcbiIpOworICAgIGVjaG8o
InBhZ2Utd2l0aC1tYW5pZmVzdC5waHA/bWFuaWZlc3RJZD0iIC4gJG1hbmlmZXN0SWQpOworPz4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRy
ZWUvcmVzb3VyY2VzL3BhZ2Utd2l0aC1tYW5pZmVzdC5waHAgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlcy9wYWdlLXdpdGgtbWFuaWZlc3Qu
cGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmMwOGRjMDc1MzliNDEwZGFiZTVmYWZkZTI2MTMwZmE1YTQ1ZWZjMTEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNv
dXJjZS10cmVlL3Jlc291cmNlcy9wYWdlLXdpdGgtbWFuaWZlc3QucGhwCkBAIC0wLDAgKzEsMTMg
QEAKKzw/cGhwCiskbWFuaWZlc3RJZCA9ICRfR0VUWyJtYW5pZmVzdElkIl07CitlY2hvICI8aHRt
bCBtYW5pZmVzdD1cIm1hbmlmZXN0LnBocD9tYW5pZmVzdElkPSIgLiAkbWFuaWZlc3RJZCAuICJc
Ij5cbiI7Cis/PgorPGhlYWQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzw/cGhwCiskbWFuaWZlc3RJZCA9
ICRfR0VUWyJtYW5pZmVzdElkIl07CitlY2hvICJQYWdlIHdpdGggbWFuaWZlc3QgIyIgLiAkbWFu
aWZlc3RJZC4gIi5cbiI7Cis/PgorPC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="113137"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
    <flag name="commit-queue"
          id="113138"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>