<?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>134645</bug_id>
          
          <creation_ts>2014-07-04 23:46:31 -0700</creation_ts>
          <short_desc>[WK2] Expose a few drawing/compositing settings on WKPreferences(Private)</short_desc>
          <delta_ts>2014-07-08 15:25:25 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>andersca</cc>
    
    <cc>darin</cc>
    
    <cc>mitz</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1020578</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-07-04 23:46:31 -0700</bug_when>
    <thetext>We should expose a few of the really standard settings (layer borders, repaint counters, debug indicator, etc.) on WKPreferencesPrivate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020581</commentid>
    <comment_count>1</comment_count>
      <attachid>234433</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-07-05 01:22:53 -0700</bug_when>
    <thetext>Created attachment 234433
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020603</commentid>
    <comment_count>2</comment_count>
      <attachid>234433</attachid>
    <who name="">mitz</who>
    <bug_when>2014-07-05 09:36:25 -0700</bug_when>
    <thetext>Comment on attachment 234433
patch

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

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKPreferencesPrivate.h:42
&gt; +// FIXME: This should be setter=_setTelephoneNumberDetectionEnabled:, getter=_isTelephoneNumberDetectionEnabled, property=telephoneNumberDetectionEnabled

Why? Getter names shouldn’t be question phrases. They should fit naturally into conditions like this:
if ([object isHot] &amp;&amp; [object isLarge] || [object cornersAreRound] &amp;&amp; [object hasSharpEdges] || [object nightVisionIsEnabled])

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKPreferencesPrivate.h:48
&gt; +@property (nonatomic, setter=_setCompositingBordersVisible:, getter=_areCompositingBordersVisible) BOOL _compositingBordersVisible;
&gt; +@property (nonatomic, setter=_setCompositingRepaintCountersVisible:, getter=_areCompositingRepaintCountersVisible) BOOL _compositingRepaintCountersVisible;
&gt; +@property (nonatomic, setter=_setTiledScrollingIndicatorVisible:, getter=_isTiledScrollingIndicatorVisible) BOOL _tiledScrollingIndicatorVisible;

Same comments about naming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020627</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-07-05 14:25:56 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 234433 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=234433&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/Cocoa/WKPreferencesPrivate.h:42
&gt; &gt; +// FIXME: This should be setter=_setTelephoneNumberDetectionEnabled:, getter=_isTelephoneNumberDetectionEnabled, property=telephoneNumberDetectionEnabled
&gt; 
&gt; Why? Getter names shouldn’t be question phrases. They should fit naturally into conditions like this:
&gt; if ([object isHot] &amp;&amp; [object isLarge] || [object cornersAreRound] &amp;&amp; [object hasSharpEdges] || [object nightVisionIsEnabled])
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/Cocoa/WKPreferencesPrivate.h:48
&gt; &gt; +@property (nonatomic, setter=_setCompositingBordersVisible:, getter=_areCompositingBordersVisible) BOOL _compositingBordersVisible;
&gt; &gt; +@property (nonatomic, setter=_setCompositingRepaintCountersVisible:, getter=_areCompositingRepaintCountersVisible) BOOL _compositingRepaintCountersVisible;
&gt; &gt; +@property (nonatomic, setter=_setTiledScrollingIndicatorVisible:, getter=_isTiledScrollingIndicatorVisible) BOOL _tiledScrollingIndicatorVisible;
&gt; 
&gt; Same comments about naming.

I guess I got very confused by WKPreferences.h, which has getters like isJavaScriptEnabled and arePlugInsEnabled?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020722</commentid>
    <comment_count>4</comment_count>
      <attachid>234433</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-07-06 17:23:25 -0700</bug_when>
    <thetext>Comment on attachment 234433
patch

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

&gt;&gt; Source/WebKit2/UIProcess/API/Cocoa/WKPreferencesPrivate.h:48
&gt;&gt; +@property (nonatomic, setter=_setTiledScrollingIndicatorVisible:, getter=_isTiledScrollingIndicatorVisible) BOOL _tiledScrollingIndicatorVisible;
&gt; 
&gt; Same comments about naming.

Dan, I think the “preferences” context is a bit more difficult. Here’s what we obviously don’t want:

    if ([preferences areConfiguredForThoseWhoPreferVisibleCompositingBorders])

What exactly is the good alternative? Is there a good example of this to model this class on?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020729</commentid>
    <comment_count>5</comment_count>
    <who name="">mitz</who>
    <bug_when>2014-07-06 17:35:26 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 234433 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=234433&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit2/UIProcess/API/Cocoa/WKPreferencesPrivate.h:48
&gt; &gt;&gt; +@property (nonatomic, setter=_setTiledScrollingIndicatorVisible:, getter=_isTiledScrollingIndicatorVisible) BOOL _tiledScrollingIndicatorVisible;
&gt; &gt; 
&gt; &gt; Same comments about naming.
&gt; 
&gt; Dan, I think the “preferences” context is a bit more difficult. Here’s what we obviously don’t want:
&gt; 
&gt;     if ([preferences areConfiguredForThoseWhoPreferVisibleCompositingBorders])
&gt; 
&gt; What exactly is the good alternative?

Approximately
    if ([preferences compositingBordersVisible])
or
    if ([preferences compositingBordersEnabled])
or with the verb “are” after “borders”

&gt; Is there a good example of this to model this class on?

I don’t know of any similar class that consistently avoid the question-phrase style. In the legacy WebPreferences class, for example, there is both a (good) example like -javaScriptCanOpenWindowsAutomatically and a (bad) example like -isJavaScriptEnabled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020734</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-07-06 17:53:35 -0700</bug_when>
    <thetext>Thanks, Dan. Sounds good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020736</commentid>
    <comment_count>7</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-07-06 17:57:45 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; (From update of attachment 234433 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=234433&amp;action=review
&gt; &gt; Is there a good example of this to model this class on?
&gt; 
&gt; I don’t know of any similar class that consistently avoid the question-phrase style. In the legacy WebPreferences class, for example, there is both a (good) example like -javaScriptCanOpenWindowsAutomatically and a (bad) example like -isJavaScriptEnabled.

Sooooo, will we fix the 3 out of 5 actually-API prefs that are poorly-named? Or do they get a pass because they match the legacy WebKit names? Or some other reason?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020737</commentid>
    <comment_count>8</comment_count>
    <who name="">mitz</who>
    <bug_when>2014-07-06 18:06:05 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #5)
&gt; &gt; (In reply to comment #4)
&gt; &gt; &gt; (From update of attachment 234433 [details] [details] [details])
&gt; &gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=234433&amp;action=review
&gt; &gt; &gt; Is there a good example of this to model this class on?
&gt; &gt; 
&gt; &gt; I don’t know of any similar class that consistently avoid the question-phrase style. In the legacy WebPreferences class, for example, there is both a (good) example like -javaScriptCanOpenWindowsAutomatically and a (bad) example like -isJavaScriptEnabled.
&gt; 
&gt; Sooooo, will we fix the 3 out of 5 actually-API prefs that are poorly-named? Or do they get a pass because they match the legacy WebKit names? Or some other reason?

Yes, I think these should be changed:

@property (nonatomic, getter=isJavaScriptEnabled) BOOL javaScriptEnabled;
@property (nonatomic, getter=isJavaEnabled) BOOL javaEnabled;
@property (nonatomic, getter=arePlugInsEnabled) BOOL plugInsEnabled;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020778</commentid>
    <comment_count>9</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-07-06 23:21:01 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; (In reply to comment #5)
&gt; &gt; &gt; (In reply to comment #4)
&gt; &gt; &gt; &gt; (From update of attachment 234433 [details] [details] [details] [details])
&gt; &gt; &gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=234433&amp;action=review
&gt; &gt; &gt; &gt; Is there a good example of this to model this class on?
&gt; &gt; &gt; 
&gt; &gt; &gt; I don’t know of any similar class that consistently avoid the question-phrase style. In the legacy WebPreferences class, for example, there is both a (good) example like -javaScriptCanOpenWindowsAutomatically and a (bad) example like -isJavaScriptEnabled.
&gt; &gt; 
&gt; &gt; Sooooo, will we fix the 3 out of 5 actually-API prefs that are poorly-named? Or do they get a pass because they match the legacy WebKit names? Or some other reason?
&gt; 
&gt; Yes, I think these should be changed:
&gt; 
&gt; @property (nonatomic, getter=isJavaScriptEnabled) BOOL javaScriptEnabled;
&gt; @property (nonatomic, getter=isJavaEnabled) BOOL javaEnabled;
&gt; @property (nonatomic, getter=arePlugInsEnabled) BOOL plugInsEnabled;

I filed https://bugs.webkit.org/show_bug.cgi?id=134678 about that. I will post a new version of this patch with the names adjusted in a bit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020784</commentid>
    <comment_count>10</comment_count>
      <attachid>234481</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-07-06 23:28:36 -0700</bug_when>
    <thetext>Created attachment 234481
patch with new names</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020875</commentid>
    <comment_count>11</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-07-07 12:50:07 -0700</bug_when>
    <thetext>We decided on no verbs in https://bugs.webkit.org/show_bug.cgi?id=134678, so I&apos;ll post another-other-other patch to match.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021183</commentid>
    <comment_count>12</comment_count>
      <attachid>234592</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-07-08 13:46:45 -0700</bug_when>
    <thetext>Created attachment 234592
patch with no verbs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021200</commentid>
    <comment_count>13</comment_count>
      <attachid>234592</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-07-08 14:41:39 -0700</bug_when>
    <thetext>Comment on attachment 234592
patch with no verbs

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

&gt; Tools/MiniBrowser/mac/WK1BrowserWindowController.m:140
&gt; +        [menuItem setState:[self layerBordersAreVisible] ? NSOnState : NSOffState];

remove the &quot;Are&quot;

&gt; Tools/MiniBrowser/mac/WK2BrowserWindowController.m:150
&gt; +        [menuItem setState:[self layerBordersAreVisible] ? NSOnState : NSOffState];

remove the Ares and Iss</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021216</commentid>
    <comment_count>14</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-07-08 15:25:25 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/170896</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>234433</attachid>
            <date>2014-07-05 01:22:53 -0700</date>
            <delta_ts>2014-07-06 23:28:36 -0700</delta_ts>
            <desc>patch</desc>
            <filename>prefs.diff</filename>
            <type>text/plain</type>
            <size>15690</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZwppbmRleCAxMGQ3NjMyLi41ZjBjZWNkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMTQtMDctMDUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBh
cHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gRXhwb3NlIGEgZmV3IGRyYXdpbmcvY29tcG9zaXRp
bmcgc2V0dGluZ3Mgb24gV0tQcmVmZXJlbmNlcyhQcml2YXRlKQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM0NjQ1CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1t
OgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBzZXRTdWJwaXhlbENTU09NRWxlbWVudE1ldHJp
Y3NFbmFibGVkOl0pOgorICAgICAgICBSZW1vdmUgYW4gZXh0cmEgdW5uZWNlc3Nhcnkgc3BhY2Uu
CisKIDIwMTQtMDctMDMgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAg
ICAgIEFkZCBXVEY6Om1vdmUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJQcmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVy
ZW5jZXMubW0KaW5kZXggMjY5NGRkYy4uOTk0ZGEwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCkBAIC0xOTE1LDcgKzE5MTUsNyBAQCBzdGF0aWMgTlNT
dHJpbmcgKmNsYXNzSUJDcmVhdG9ySUQgPSBuaWw7CiAgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFs
dWVGb3JLZXk6V2ViS2l0U3VicGl4ZWxDU1NPTUVsZW1lbnRNZXRyaWNzRW5hYmxlZFByZWZlcmVu
Y2VLZXldOwogfQogCi0tICh2b2lkKSBzZXRTdWJwaXhlbENTU09NRWxlbWVudE1ldHJpY3NFbmFi
bGVkOihCT09MKWVuYWJsZWQKKy0gKHZvaWQpc2V0U3VicGl4ZWxDU1NPTUVsZW1lbnRNZXRyaWNz
RW5hYmxlZDooQk9PTCllbmFibGVkCiB7CiAgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTplbmFibGVk
IGZvcktleTpXZWJLaXRTdWJwaXhlbENTU09NRWxlbWVudE1ldHJpY3NFbmFibGVkUHJlZmVyZW5j
ZUtleV07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggODUwMmQyMy4uYWExNzgzNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIwIEBACisyMDE0LTA3LTA1ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBw
bGUuY29tPgorCisgICAgICAgIFtXSzJdIEV4cG9zZSBhIGZldyBkcmF3aW5nL2NvbXBvc2l0aW5n
IHNldHRpbmdzIG9uIFdLUHJlZmVyZW5jZXMoUHJpdmF0ZSkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDY0NQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZl
cmVuY2VzLm1tOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIF9hcmVDb21wb3NpdGluZ0JvcmRl
cnNWaXNpYmxlXSk6CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgX3NldENvbXBvc2l0aW5nQm9y
ZGVyc1Zpc2libGU6XSk6CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgX2FyZUNvbXBvc2l0aW5n
UmVwYWludENvdW50ZXJzVmlzaWJsZV0pOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIF9zZXRD
b21wb3NpdGluZ1JlcGFpbnRDb3VudGVyc1Zpc2libGU6XSk6CisgICAgICAgICgtW1dLUHJlZmVy
ZW5jZXMgX2lzVGlsZWRTY3JvbGxpbmdJbmRpY2F0b3JWaXNpYmxlXSk6CisgICAgICAgICgtW1dL
UHJlZmVyZW5jZXMgX3NldFRpbGVkU2Nyb2xsaW5nSW5kaWNhdG9yVmlzaWJsZTpdKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmg6CisgICAgICAg
IEV4cG9zZSBsYXllciBib3JkZXJzLCByZXBhaW50IGNvdW50ZXJzLCBhbmQgdGhlIHRpbGVkIHNj
cm9sbGluZyBpbmRpY2F0b3Igb24gV0tQcmVmZXJlbmNlcywgYXMgU1BJLgorCiAyMDE0LTA3LTA0
ICBSb2hpdCBLdW1hciAgPGt1bWFyLnJvaGl0QHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxd
W1dLMl1GaXggYnVpbGQgYnJlYWsgaW4gRUZMIFdLMgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCmluZGV4IDQ0MWM1NGIuLjE4Y2Fj
YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVm
ZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJl
ZmVyZW5jZXMubW0KQEAgLTE2Myw2ICsxNjMsMzYgQEAgc3RhdGljIF9XS1N0b3JhZ2VCbG9ja2lu
Z1BvbGljeSB0b0FQSShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG8K
ICAgICBfcHJlZmVyZW5jZXMtPnNldE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZChv
ZmZsaW5lQXBwbGljYXRpb25DYWNoZUlzRW5hYmxlZCk7CiB9CiAKKy0gKEJPT0wpX2FyZUNvbXBv
c2l0aW5nQm9yZGVyc1Zpc2libGUKK3sKKyAgICByZXR1cm4gX3ByZWZlcmVuY2VzLT5jb21wb3Np
dGluZ0JvcmRlcnNWaXNpYmxlKCk7Cit9CisKKy0gKHZvaWQpX3NldENvbXBvc2l0aW5nQm9yZGVy
c1Zpc2libGU6KEJPT0wpY29tcG9zaXRpbmdCb3JkZXJzVmlzaWJsZQoreworICAgIF9wcmVmZXJl
bmNlcy0+c2V0Q29tcG9zaXRpbmdCb3JkZXJzVmlzaWJsZShjb21wb3NpdGluZ0JvcmRlcnNWaXNp
YmxlKTsKK30KKworLSAoQk9PTClfYXJlQ29tcG9zaXRpbmdSZXBhaW50Q291bnRlcnNWaXNpYmxl
Cit7CisgICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+Y29tcG9zaXRpbmdSZXBhaW50Q291bnRlcnNW
aXNpYmxlKCk7Cit9CisKKy0gKHZvaWQpX3NldENvbXBvc2l0aW5nUmVwYWludENvdW50ZXJzVmlz
aWJsZTooQk9PTClyZXBhaW50Q291bnRlcnNWaXNpYmxlCit7CisgICAgX3ByZWZlcmVuY2VzLT5z
ZXRDb21wb3NpdGluZ1JlcGFpbnRDb3VudGVyc1Zpc2libGUocmVwYWludENvdW50ZXJzVmlzaWJs
ZSk7Cit9CisKKy0gKEJPT0wpX2lzVGlsZWRTY3JvbGxpbmdJbmRpY2F0b3JWaXNpYmxlCit7Cisg
ICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+dGlsZWRTY3JvbGxpbmdJbmRpY2F0b3JWaXNpYmxlKCk7
Cit9CisKKy0gKHZvaWQpX3NldFRpbGVkU2Nyb2xsaW5nSW5kaWNhdG9yVmlzaWJsZTooQk9PTCl0
aWxlZFNjcm9sbGluZ0luZGljYXRvclZpc2libGUKK3sKKyAgICBfcHJlZmVyZW5jZXMtPnNldFRp
bGVkU2Nyb2xsaW5nSW5kaWNhdG9yVmlzaWJsZSh0aWxlZFNjcm9sbGluZ0luZGljYXRvclZpc2li
bGUpOworfQorCiBAZW5kCiAKICNlbmRpZiAvLyBXS19BUElfRU5BQkxFRApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0
ZS5oCmluZGV4IDFmOTIzNzUuLmE2YTZlYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAgLTM5LDkg
KzM5LDE0IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS1N0b3JhZ2VCbG9ja2luZ1Bv
bGljeSkgewogCiBAaW50ZXJmYWNlIFdLUHJlZmVyZW5jZXMgKFdLUHJpdmF0ZSkKIAorLy8gRklY
TUU6IFRoaXMgc2hvdWxkIGJlIHNldHRlcj1fc2V0VGVsZXBob25lTnVtYmVyRGV0ZWN0aW9uRW5h
YmxlZDosIGdldHRlcj1faXNUZWxlcGhvbmVOdW1iZXJEZXRlY3Rpb25FbmFibGVkLCBwcm9wZXJ0
eT10ZWxlcGhvbmVOdW1iZXJEZXRlY3Rpb25FbmFibGVkCiBAcHJvcGVydHkgKG5vbmF0b21pYywg
c2V0dGVyPV9zZXRUZWxlcGhvbmVOdW1iZXJEZXRlY3Rpb25Jc0VuYWJsZWQ6KSBCT09MIF90ZWxl
cGhvbmVOdW1iZXJEZXRlY3Rpb25Jc0VuYWJsZWQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0
dGVyPV9zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3k6KSBfV0tTdG9yYWdlQmxvY2tpbmdQb2xpY3kg
X3N0b3JhZ2VCbG9ja2luZ1BvbGljeTsKIAorQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0Q29tcG9zaXRpbmdCb3JkZXJzVmlzaWJsZTosIGdldHRlcj1fYXJlQ29tcG9zaXRpbmdCb3Jk
ZXJzVmlzaWJsZSkgQk9PTCBfY29tcG9zaXRpbmdCb3JkZXJzVmlzaWJsZTsKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldENvbXBvc2l0aW5nUmVwYWludENvdW50ZXJzVmlzaWJsZTos
IGdldHRlcj1fYXJlQ29tcG9zaXRpbmdSZXBhaW50Q291bnRlcnNWaXNpYmxlKSBCT09MIF9jb21w
b3NpdGluZ1JlcGFpbnRDb3VudGVyc1Zpc2libGU7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0
dGVyPV9zZXRUaWxlZFNjcm9sbGluZ0luZGljYXRvclZpc2libGU6LCBnZXR0ZXI9X2lzVGlsZWRT
Y3JvbGxpbmdJbmRpY2F0b3JWaXNpYmxlKSBCT09MIF90aWxlZFNjcm9sbGluZ0luZGljYXRvclZp
c2libGU7CisKIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBjb25maWd1cmVkIG9uIHRoZSBXS1dl
YnNpdGVEYXRhU3RvcmUuCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRPZmZsaW5l
QXBwbGljYXRpb25DYWNoZUlzRW5hYmxlZDopIEJPT0wgX29mZmxpbmVBcHBsaWNhdGlvbkNhY2hl
SXNFbmFibGVkOwogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VM
b2cKaW5kZXggZmVlZTQ0YS4uNDgzNjQ2NSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE0LTA3LTA1ICBUaW0gSG9y
dG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIEV4cG9zZSBh
IGZldyBkcmF3aW5nL2NvbXBvc2l0aW5nIHNldHRpbmdzIG9uIFdLUHJlZmVyZW5jZXMoUHJpdmF0
ZSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDY0
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTWlu
aUJyb3dzZXIvbWFjL0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyLmg6CisgICAgICAgICogTWluaUJy
b3dzZXIvbWFjL01haW5NZW51LnhpYjoKKyAgICAgICAgQWRkIG1lbnUgaXRlbXMgZm9yIGxheWVy
IGJvcmRlcnMgYW5kIHRoZSB0aWxlZCBzY3JvbGxpbmcgaW5kaWNhdG9yLgorCisgICAgICAgICog
TWluaUJyb3dzZXIvbWFjL1dLMUJyb3dzZXJXaW5kb3dDb250cm9sbGVyLm06CisgICAgICAgICgt
W1dLMUJyb3dzZXJXaW5kb3dDb250cm9sbGVyIHZhbGlkYXRlTWVudUl0ZW06XSk6CisgICAgICAg
ICgtW1dLMUJyb3dzZXJXaW5kb3dDb250cm9sbGVyIGFyZUxheWVyQm9yZGVyc1Zpc2libGVdKToK
KyAgICAgICAgKC1bV0sxQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgdG9nZ2xlTGF5ZXJCb3JkZXJz
VmlzaWJsZTpdKToKKyAgICAgICAgQWRkIGdldHRlcnMvc2V0dGVycy92YWxpZGF0b3JzIGZvciBs
YXllciBib3JkZXJzLgorCisgICAgICAgICogTWluaUJyb3dzZXIvbWFjL1dLMkJyb3dzZXJXaW5k
b3dDb250cm9sbGVyLm06CisgICAgICAgICgtW1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyIGF3
YWtlRnJvbU5pYl0pOgorICAgICAgICAoLVtXSzJCcm93c2VyV2luZG93Q29udHJvbGxlciB2YWxp
ZGF0ZU1lbnVJdGVtOl0pOgorICAgICAgICAoLVtXSzJCcm93c2VyV2luZG93Q29udHJvbGxlciBh
cmVMYXllckJvcmRlcnNWaXNpYmxlXSk6CisgICAgICAgICgtW1dLMkJyb3dzZXJXaW5kb3dDb250
cm9sbGVyIHRvZ2dsZUxheWVyQm9yZGVyc1Zpc2libGU6XSk6CisgICAgICAgICgtW1dLMkJyb3dz
ZXJXaW5kb3dDb250cm9sbGVyIGlzVGlsZWRTY3JvbGxpbmdJbmRpY2F0b3JWaXNpYmxlXSk6Cisg
ICAgICAgICgtW1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyIHRvZ2dsZVRpbGVkU2Nyb2xsaW5n
SW5kaWNhdG9yVmlzaWJsZTpdKToKKyAgICAgICAgQWRkIGdldHRlcnMvc2V0dGVycy92YWxpZGF0
b3JzIGZvciBsYXllciBib3JkZXJzIGFuZCB0aGUgdGlsZWQgc2Nyb2xsaW5nIGluZGljYXRvci4K
KworICAgICAgICAoLVtXSzJCcm93c2VyV2luZG93Q29udHJvbGxlciBpc1N1YnBpeGVsQ1NTT01F
bGVtZW50TWV0cmljc0VuYWJsZWRdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0syQnJvd3Nlcldp
bmRvd0NvbnRyb2xsZXIgdG9nZ2xlU3VicGl4ZWxDU1NPTUVsZW1lbnRNZXRyaWNzRW5hYmxlZDpd
KTogRGVsZXRlZC4KKyAgICAgICAgUmVtb3ZlIHRoZSBXZWJLaXQyIHZlcnNpb24gb2YgdGhlIHN1
YnBpeGVsIG1ldHJpY3MgcHJlZiwgYmVjYXVzZSBpdCBkb2Vzbid0IHdvcmssIGJlY2F1c2UKKyAg
ICAgICAgbm90aGluZyBpbiBXZWJLaXQyIHJlYWRzIHRoaXMgZGVmYXVsdCwgYW5kIHRoZXJlIGlz
IG5vIFdlYktpdDIgQVBJIGZvciBhZGp1c3RpbmcgdGhpcyBwcmVmZXJlbmNlLgorCiAyMDE0LTA3
LTA0ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAg
W0VGTF0gU3VwcG9ydCBHZW9sb2NhdGlvbgpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIv
bWFjL0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyLmggYi9Ub29scy9NaW5pQnJvd3Nlci9tYWMvQnJv
d3NlcldpbmRvd0NvbnRyb2xsZXIuaAppbmRleCA0YzkzNDVkLi4yNDIwMjllIDEwMDY0NAotLS0g
YS9Ub29scy9NaW5pQnJvd3Nlci9tYWMvQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIuaAorKysgYi9U
b29scy9NaW5pQnJvd3Nlci9tYWMvQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIuaApAQCAtNDYsMTMg
KzQ2LDE1IEBACiAtIChJQkFjdGlvbil0b2dnbGVab29tTW9kZTooaWQpc2VuZGVyOwogLSAoSUJB
Y3Rpb24pdG9nZ2xlUGFnaW5hdGlvbk1vZGU6KGlkKXNlbmRlcjsKIC0gKElCQWN0aW9uKXRvZ2ds
ZVRyYW5zcGFyZW50V2luZG93OihpZClzZW5kZXI7Ci0tIChJQkFjdGlvbil0b2dnbGVTdWJwaXhl
bENTU09NRWxlbWVudE1ldHJpY3NFbmFibGVkOihpZClzZW5kZXI7CistIChJQkFjdGlvbil0b2dn
bGVMYXllckJvcmRlcnNWaXNpYmxlOihpZClzZW5kZXI7CiAKIC0gKElCQWN0aW9uKWR1bXBTb3Vy
Y2VUb0NvbnNvbGU6KGlkKXNlbmRlcjsKIC0gKElCQWN0aW9uKWZpbmQ6KGlkKXNlbmRlcjsKIAog
QG9wdGlvbmFsCistIChJQkFjdGlvbil0b2dnbGVTdWJwaXhlbENTU09NRWxlbWVudE1ldHJpY3NF
bmFibGVkOihpZClzZW5kZXI7CiAtIChJQkFjdGlvbil0b2dnbGVVSVNpZGVDb21wb3NpdGluZzoo
aWQpc2VuZGVyOworLSAoSUJBY3Rpb24pdG9nZ2xlVGlsZWRTY3JvbGxpbmdJbmRpY2F0b3JWaXNp
YmxlOihpZClzZW5kZXI7CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIv
bWFjL01haW5NZW51LnhpYiBiL1Rvb2xzL01pbmlCcm93c2VyL21hYy9NYWluTWVudS54aWIKaW5k
ZXggNmI1MzMyMy4uMTJhYWJiNyAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvbWFjL01h
aW5NZW51LnhpYgorKysgYi9Ub29scy9NaW5pQnJvd3Nlci9tYWMvTWFpbk1lbnUueGliCkBAIC00
NjksNiArNDY5LDE4IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0
aW9uIHNlbGVjdG9yPSJ0b2dnbGVVSVNpZGVDb21wb3NpdGluZzoiIHRhcmdldD0iLTEiIGlkPSIx
RWQtQzUtMHBvIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVjdGlv
bnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IkxheWVyIEJvcmRlcnMiIGlkPSIwMFQt
RUktV3FqIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1vZGlmaWVyTWFzayBr
ZXk9ImtleUVxdWl2YWxlbnRNb2RpZmllck1hc2siLz4KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPGNvbm5lY3Rpb25zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPGFjdGlvbiBzZWxlY3Rvcj0idG9nZ2xlTGF5ZXJCb3JkZXJzVmlzaWJsZToiIHRhcmdldD0i
LTEiIGlkPSJnbXQtMVotWGNRIi8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwv
Y29ubmVjdGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IlRpbGVkIFNjcm9sbGlu
ZyBJbmRpY2F0b3IiIGlkPSJpQlUtWXktR3VWIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPG1vZGlmaWVyTWFzayBrZXk9ImtleUVxdWl2YWxlbnRNb2RpZmllck1hc2siLz4KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbm5lY3Rpb25zPgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPGFjdGlvbiBzZWxlY3Rvcj0idG9nZ2xlVGlsZWRTY3Jv
bGxpbmdJbmRpY2F0b3JWaXNpYmxlOiIgdGFyZ2V0PSItMSIgaWQ9IlJKQi1kdC14U1IiLz4KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jb25uZWN0aW9ucz4KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8L21lbnVJdGVtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxtZW51SXRlbSB0aXRsZT0iRW5hYmxlIFN1Yi1QaXhlbCBvZmZzZXRXaWR0aCBldGMuIiBzdGF0
ZT0ib24iIGlkPSI4WDUtaTYtdDJkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PG1vZGlmaWVyTWFzayBrZXk9ImtleUVxdWl2YWxlbnRNb2RpZmllck1hc2siLz4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPGNvbm5lY3Rpb25zPgpkaWZmIC0tZ2l0IGEvVG9vbHMv
TWluaUJyb3dzZXIvbWFjL1dLMUJyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0gYi9Ub29scy9NaW5p
QnJvd3Nlci9tYWMvV0sxQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQppbmRleCBlMzhmMjFhLi5k
OTBmZDdhIDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9tYWMvV0sxQnJvd3NlcldpbmRv
d0NvbnRyb2xsZXIubQorKysgYi9Ub29scy9NaW5pQnJvd3Nlci9tYWMvV0sxQnJvd3NlcldpbmRv
d0NvbnRyb2xsZXIubQpAQCAtMTM2LDYgKzEzNiw4IEBAIC0gKEJPT0wpdmFsaWRhdGVNZW51SXRl
bTooTlNNZW51SXRlbSAqKW1lbnVJdGVtCiAgICAgICAgIFttZW51SXRlbSBzZXRTdGF0ZTpbW3Nl
bGYgd2luZG93XSBpc09wYXF1ZV0gPyBOU09mZlN0YXRlIDogTlNPblN0YXRlXTsKICAgICBlbHNl
IGlmIChhY3Rpb24gPT0gQHNlbGVjdG9yKHRvZ2dsZVN1YnBpeGVsQ1NTT01FbGVtZW50TWV0cmlj
c0VuYWJsZWQ6KSkKICAgICAgICAgW21lbnVJdGVtIHNldFN0YXRlOltzZWxmIGlzU3VicGl4ZWxD
U1NPTUVsZW1lbnRNZXRyaWNzRW5hYmxlZF0gPyBOU09uU3RhdGUgOiBOU09mZlN0YXRlXTsKKyAg
ICBlbHNlIGlmIChhY3Rpb24gPT0gQHNlbGVjdG9yKHRvZ2dsZUxheWVyQm9yZGVyc1Zpc2libGU6
KSkKKyAgICAgICAgW21lbnVJdGVtIHNldFN0YXRlOltzZWxmIGFyZUxheWVyQm9yZGVyc1Zpc2li
bGVdID8gTlNPblN0YXRlIDogTlNPZmZTdGF0ZV07CiAKICAgICByZXR1cm4gWUVTOwogfQpAQCAt
MjY1LDYgKzI2NywxOCBAQCAtIChJQkFjdGlvbil0b2dnbGVTdWJwaXhlbENTU09NRWxlbWVudE1l
dHJpY3NFbmFibGVkOihpZClzZW5kZXIKICAgICBbW1dlYlByZWZlcmVuY2VzIHN0YW5kYXJkUHJl
ZmVyZW5jZXNdIHNldFN1YnBpeGVsQ1NTT01FbGVtZW50TWV0cmljc0VuYWJsZWQ6IVtzZWxmIGlz
U3VicGl4ZWxDU1NPTUVsZW1lbnRNZXRyaWNzRW5hYmxlZF1dOwogfQogCistIChCT09MKWFyZUxh
eWVyQm9yZGVyc1Zpc2libGUKK3sKKyAgICByZXR1cm4gW1tXZWJQcmVmZXJlbmNlcyBzdGFuZGFy
ZFByZWZlcmVuY2VzXSBzaG93RGVidWdCb3JkZXJzXTsKK30KKworLSAoSUJBY3Rpb24pdG9nZ2xl
TGF5ZXJCb3JkZXJzVmlzaWJsZTooaWQpc2VuZGVyCit7CisgICAgQk9PTCBuZXdWYWx1ZSA9ICFb
c2VsZiBhcmVMYXllckJvcmRlcnNWaXNpYmxlXTsKKyAgICBbW1dlYlByZWZlcmVuY2VzIHN0YW5k
YXJkUHJlZmVyZW5jZXNdIHNldFNob3dEZWJ1Z0JvcmRlcnM6bmV3VmFsdWVdOworICAgIFtbV2Vi
UHJlZmVyZW5jZXMgc3RhbmRhcmRQcmVmZXJlbmNlc10gc2V0U2hvd1JlcGFpbnRDb3VudGVyOm5l
d1ZhbHVlXTsKK30KKwogLSAoSUJBY3Rpb24pZmluZDooaWQpc2VuZGVyCiB7CiB9CmRpZmYgLS1n
aXQgYS9Ub29scy9NaW5pQnJvd3Nlci9tYWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubSBi
L1Rvb2xzL01pbmlCcm93c2VyL21hYy9XSzJCcm93c2VyV2luZG93Q29udHJvbGxlci5tCmluZGV4
IDFhZDQxOGYuLjNjNmZmODcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL21hYy9XSzJC
cm93c2VyV2luZG93Q29udHJvbGxlci5tCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL21hYy9XSzJC
cm93c2VyV2luZG93Q29udHJvbGxlci5tCkBAIC0zMCw2ICszMCw3IEBACiAjaW1wb3J0ICJBcHBE
ZWxlZ2F0ZS5oIgogI2ltcG9ydCA8V2ViS2l0L1dLRnJhbWVJbmZvLmg+CiAjaW1wb3J0IDxXZWJL
aXQvV0tOYXZpZ2F0aW9uRGVsZWdhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1ByZWZlcmVuY2Vz
UHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLVUlEZWxlZ2F0ZS5oPgogI2ltcG9ydCA8V2Vi
S2l0L1dLV2ViVmlldy5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld0NvbmZpZ3VyYXRpb24u
aD4KQEAgLTM3LDcgKzM4LDkgQEAKIAogc3RhdGljIHZvaWQqIGtleVZhbHVlT2JzZXJ2aW5nQ29u
dGV4dCA9ICZrZXlWYWx1ZU9ic2VydmluZ0NvbnRleHQ7CiBzdGF0aWMgTlNTdHJpbmcgKiBjb25z
dCBXZWJLaXQyVXNlUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFLZXkgPSBAIldlYktpdDJVc2VS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYSI7Ci1zdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBXZWJL
aXQyU3VicGl4ZWxDU1NPTUVsZW1lbnRNZXRyaWNzRW5hYmxlZEtleSA9IEAiV2ViS2l0U3VicGl4
ZWxDU1NPTUVsZW1lbnRNZXRyaWNzRW5hYmxlZCI7CisKK3N0YXRpYyBOU1N0cmluZyAqIGNvbnN0
IExheWVyQm9yZGVyc1Zpc2libGVQcmVmZXJlbmNlS2V5ID0gQCJMYXllckJvcmRlcnNWaXNpYmxl
IjsKK3N0YXRpYyBOU1N0cmluZyAqIGNvbnN0IFRpbGVkU2Nyb2xsaW5nSW5kaWNhdG9yVmlzaWJs
ZVByZWZlcmVuY2VLZXkgPSBAIlRpbGVkU2Nyb2xsaW5nSW5kaWNhdG9yVmlzaWJsZUtleSI7CiAK
IEBpbnRlcmZhY2UgV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgKCkgPFdLTmF2aWdhdGlvbkRl
bGVnYXRlLCBXS1VJRGVsZWdhdGU+CiBAZW5kCkBAIC01MCw4ICs1MywxMyBAQCBAaW1wbGVtZW50
YXRpb24gV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgewogLSAodm9pZClhd2FrZUZyb21OaWIK
IHsKICAgICBzdGF0aWMgV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAqY29uZmlndXJhdGlvbjsKLSAg
ICBpZiAoIWNvbmZpZ3VyYXRpb24pCisgICAgaWYgKCFjb25maWd1cmF0aW9uKSB7CiAgICAgICAg
IGNvbmZpZ3VyYXRpb24gPSBbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdOwor
CisgICAgICAgIGNvbmZpZ3VyYXRpb24ucHJlZmVyZW5jZXMuX3RpbGVkU2Nyb2xsaW5nSW5kaWNh
dG9yVmlzaWJsZSA9IFtzZWxmIGlzVGlsZWRTY3JvbGxpbmdJbmRpY2F0b3JWaXNpYmxlXTsKKyAg
ICAgICAgY29uZmlndXJhdGlvbi5wcmVmZXJlbmNlcy5fY29tcG9zaXRpbmdCb3JkZXJzVmlzaWJs
ZSA9IFtzZWxmIGFyZUxheWVyQm9yZGVyc1Zpc2libGVdOworICAgICAgICBjb25maWd1cmF0aW9u
LnByZWZlcmVuY2VzLl9jb21wb3NpdGluZ1JlcGFpbnRDb3VudGVyc1Zpc2libGUgPSBbc2VsZiBh
cmVMYXllckJvcmRlcnNWaXNpYmxlXTsKKyAgICB9CiAgICAgX3dlYlZpZXcgPSBbW1dLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpbY29udGFpbmVyVmlldyBib3VuZHNdIGNvbmZpZ3VyYXRp
b246Y29uZmlndXJhdGlvbl07CiAKICAgICBfd2ViVmlldy5hbGxvd3NNYWduaWZpY2F0aW9uID0g
WUVTOwpAQCAtMTM4LDggKzE0NiwxMCBAQCAtIChCT09MKXZhbGlkYXRlTWVudUl0ZW06KE5TTWVu
dUl0ZW0gKiltZW51SXRlbQogICAgICAgICBbbWVudUl0ZW0gc2V0U3RhdGU6W1tzZWxmIHdpbmRv
d10gaXNPcGFxdWVdID8gTlNPZmZTdGF0ZSA6IE5TT25TdGF0ZV07CiAgICAgZWxzZSBpZiAoYWN0
aW9uID09IEBzZWxlY3Rvcih0b2dnbGVVSVNpZGVDb21wb3NpdGluZzopKQogICAgICAgICBbbWVu
dUl0ZW0gc2V0U3RhdGU6W3NlbGYgaXNVSVNpZGVDb21wb3NpdGluZ0VuYWJsZWRdID8gTlNPblN0
YXRlIDogTlNPZmZTdGF0ZV07Ci0gICAgZWxzZSBpZiAoYWN0aW9uID09IEBzZWxlY3Rvcih0b2dn
bGVTdWJwaXhlbENTU09NRWxlbWVudE1ldHJpY3NFbmFibGVkOikpCi0gICAgICAgIFttZW51SXRl
bSBzZXRTdGF0ZTpbc2VsZiBpc1N1YnBpeGVsQ1NTT01FbGVtZW50TWV0cmljc0VuYWJsZWRdID8g
TlNPblN0YXRlIDogTlNPZmZTdGF0ZV07CisgICAgZWxzZSBpZiAoYWN0aW9uID09IEBzZWxlY3Rv
cih0b2dnbGVMYXllckJvcmRlcnNWaXNpYmxlOikpCisgICAgICAgIFttZW51SXRlbSBzZXRTdGF0
ZTpbc2VsZiBhcmVMYXllckJvcmRlcnNWaXNpYmxlXSA/IE5TT25TdGF0ZSA6IE5TT2ZmU3RhdGVd
OworICAgIGVsc2UgaWYgKGFjdGlvbiA9PSBAc2VsZWN0b3IodG9nZ2xlVGlsZWRTY3JvbGxpbmdJ
bmRpY2F0b3JWaXNpYmxlOikpCisgICAgICAgIFttZW51SXRlbSBzZXRTdGF0ZTpbc2VsZiBpc1Rp
bGVkU2Nyb2xsaW5nSW5kaWNhdG9yVmlzaWJsZV0gPyBOU09uU3RhdGUgOiBOU09mZlN0YXRlXTsK
IAogICAgIHJldHVybiBZRVM7CiB9CkBAIC0zMDEsMjYgKzMxMSwzOSBAQCAtIChJQkFjdGlvbil0
b2dnbGVUcmFuc3BhcmVudFdpbmRvdzooaWQpc2VuZGVyCiAgICAgW1tzZWxmIHdpbmRvd10gZGlz
cGxheV07ICAgIAogfQogCi0tIChCT09MKWlzU3VicGl4ZWxDU1NPTUVsZW1lbnRNZXRyaWNzRW5h
YmxlZAorLSAoQk9PTClpc1VJU2lkZUNvbXBvc2l0aW5nRW5hYmxlZAogewotICAgIHJldHVybiBb
W05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBib29sRm9yS2V5OldlYktpdDJT
dWJwaXhlbENTU09NRWxlbWVudE1ldHJpY3NFbmFibGVkS2V5XTsKKyAgICByZXR1cm4gW1tOU1Vz
ZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gYm9vbEZvcktleTpXZWJLaXQyVXNlUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFLZXldOwogfQogCi0tIChJQkFjdGlvbil0b2dnbGVTdWJw
aXhlbENTU09NRWxlbWVudE1ldHJpY3NFbmFibGVkOihpZClzZW5kZXIKKy0gKElCQWN0aW9uKXRv
Z2dsZVVJU2lkZUNvbXBvc2l0aW5nOihpZClzZW5kZXIKIHsKLSAgICBbW05TVXNlckRlZmF1bHRz
IHN0YW5kYXJkVXNlckRlZmF1bHRzXSBzZXRCb29sOiFbc2VsZiBpc1N1YnBpeGVsQ1NTT01FbGVt
ZW50TWV0cmljc0VuYWJsZWRdIGZvcktleTpXZWJLaXQyU3VicGl4ZWxDU1NPTUVsZW1lbnRNZXRy
aWNzRW5hYmxlZEtleV07CisgICAgW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0
c10gc2V0Qm9vbDohW3NlbGYgaXNVSVNpZGVDb21wb3NpdGluZ0VuYWJsZWRdIGZvcktleTpXZWJL
aXQyVXNlUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFLZXldOwogfQogCi0tIChCT09MKWlzVUlT
aWRlQ29tcG9zaXRpbmdFbmFibGVkCistIChCT09MKWFyZUxheWVyQm9yZGVyc1Zpc2libGUKIHsK
LSAgICByZXR1cm4gW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gYm9vbEZv
cktleTpXZWJLaXQyVXNlUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFLZXldOworICAgIHJldHVy
biBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBib29sRm9yS2V5OkxheWVy
Qm9yZGVyc1Zpc2libGVQcmVmZXJlbmNlS2V5XTsKIH0KIAotLSAoSUJBY3Rpb24pdG9nZ2xlVUlT
aWRlQ29tcG9zaXRpbmc6KGlkKXNlbmRlcgorLSAoSUJBY3Rpb24pdG9nZ2xlTGF5ZXJCb3JkZXJz
VmlzaWJsZTooaWQpc2VuZGVyCit7CisgICAgQk9PTCBuZXdTdGF0ZSA9ICFbc2VsZiBhcmVMYXll
ckJvcmRlcnNWaXNpYmxlXTsKKyAgICBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1
bHRzXSBzZXRCb29sOm5ld1N0YXRlIGZvcktleTpMYXllckJvcmRlcnNWaXNpYmxlUHJlZmVyZW5j
ZUtleV07CisgICAgX3dlYlZpZXcuY29uZmlndXJhdGlvbi5wcmVmZXJlbmNlcy5fY29tcG9zaXRp
bmdCb3JkZXJzVmlzaWJsZSA9IG5ld1N0YXRlOworICAgIF93ZWJWaWV3LmNvbmZpZ3VyYXRpb24u
cHJlZmVyZW5jZXMuX2NvbXBvc2l0aW5nUmVwYWludENvdW50ZXJzVmlzaWJsZSA9IG5ld1N0YXRl
OworfQorCistIChCT09MKWlzVGlsZWRTY3JvbGxpbmdJbmRpY2F0b3JWaXNpYmxlCit7CisgICAg
cmV0dXJuIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGJvb2xGb3JLZXk6
VGlsZWRTY3JvbGxpbmdJbmRpY2F0b3JWaXNpYmxlUHJlZmVyZW5jZUtleV07Cit9CisKKy0gKElC
QWN0aW9uKXRvZ2dsZVRpbGVkU2Nyb2xsaW5nSW5kaWNhdG9yVmlzaWJsZTooaWQpc2VuZGVyCiB7
Ci0gICAgTlNVc2VyRGVmYXVsdHMgKnVzZXJEZWZhdWx0cyA9IFtOU1VzZXJEZWZhdWx0cyBzdGFu
ZGFyZFVzZXJEZWZhdWx0c107Ci0gICAgQk9PTCBuZXdWYWx1ZSA9ICFbdXNlckRlZmF1bHRzIGJv
b2xGb3JLZXk6V2ViS2l0MlVzZVJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhS2V5XTsKLSAgICBb
dXNlckRlZmF1bHRzIHNldEJvb2w6bmV3VmFsdWUgZm9yS2V5OldlYktpdDJVc2VSZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYUtleV07CisgICAgQk9PTCBuZXdTdGF0ZSA9ICFbc2VsZiBpc1RpbGVk
U2Nyb2xsaW5nSW5kaWNhdG9yVmlzaWJsZV07CisgICAgW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFy
ZFVzZXJEZWZhdWx0c10gc2V0Qm9vbDpuZXdTdGF0ZSBmb3JLZXk6VGlsZWRTY3JvbGxpbmdJbmRp
Y2F0b3JWaXNpYmxlUHJlZmVyZW5jZUtleV07CisgICAgX3dlYlZpZXcuY29uZmlndXJhdGlvbi5w
cmVmZXJlbmNlcy5fdGlsZWRTY3JvbGxpbmdJbmRpY2F0b3JWaXNpYmxlID0gbmV3U3RhdGU7CiB9
CiAKIC0gKHZvaWQpb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDooTlNTdHJpbmcgKilrZXlQYXRoIG9m
T2JqZWN0OihpZClvYmplY3QgY2hhbmdlOihOU0RpY3Rpb25hcnkgKiljaGFuZ2UgY29udGV4dDoo
dm9pZCAqKWNvbnRleHQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>234481</attachid>
            <date>2014-07-06 23:28:36 -0700</date>
            <delta_ts>2014-07-08 13:46:45 -0700</delta_ts>
            <desc>patch with new names</desc>
            <filename>prefs.diff</filename>
            <type>text/plain</type>
            <size>15505</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZwppbmRleCAxMGQ3NjMyLi44ZTQ5YTBkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMTQtMDctMDYgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBh
cHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gRXhwb3NlIGEgZmV3IGRyYXdpbmcvY29tcG9zaXRp
bmcgc2V0dGluZ3Mgb24gV0tQcmVmZXJlbmNlcyhQcml2YXRlKQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM0NjQ1CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1t
OgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBzZXRTdWJwaXhlbENTU09NRWxlbWVudE1ldHJp
Y3NFbmFibGVkOl0pOgorICAgICAgICBSZW1vdmUgYW4gZXh0cmEgdW5uZWNlc3Nhcnkgc3BhY2Uu
CisKIDIwMTQtMDctMDMgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAg
ICAgIEFkZCBXVEY6Om1vdmUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJQcmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVy
ZW5jZXMubW0KaW5kZXggMjY5NGRkYy4uOTk0ZGEwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCkBAIC0xOTE1LDcgKzE5MTUsNyBAQCBzdGF0aWMgTlNT
dHJpbmcgKmNsYXNzSUJDcmVhdG9ySUQgPSBuaWw7CiAgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFs
dWVGb3JLZXk6V2ViS2l0U3VicGl4ZWxDU1NPTUVsZW1lbnRNZXRyaWNzRW5hYmxlZFByZWZlcmVu
Y2VLZXldOwogfQogCi0tICh2b2lkKSBzZXRTdWJwaXhlbENTU09NRWxlbWVudE1ldHJpY3NFbmFi
bGVkOihCT09MKWVuYWJsZWQKKy0gKHZvaWQpc2V0U3VicGl4ZWxDU1NPTUVsZW1lbnRNZXRyaWNz
RW5hYmxlZDooQk9PTCllbmFibGVkCiB7CiAgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTplbmFibGVk
IGZvcktleTpXZWJLaXRTdWJwaXhlbENTU09NRWxlbWVudE1ldHJpY3NFbmFibGVkUHJlZmVyZW5j
ZUtleV07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggY2ZhODg2Mi4uYmExNjA3YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIwIEBACisyMDE0LTA3LTA2ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBw
bGUuY29tPgorCisgICAgICAgIFtXSzJdIEV4cG9zZSBhIGZldyBkcmF3aW5nL2NvbXBvc2l0aW5n
IHNldHRpbmdzIG9uIFdLUHJlZmVyZW5jZXMoUHJpdmF0ZSkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDY0NQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZl
cmVuY2VzLm1tOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIF9jb21wb3NpdGluZ0JvcmRlcnNB
cmVWaXNpYmxlXSk6CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgX3NldENvbXBvc2l0aW5nQm9y
ZGVyc1Zpc2libGU6XSk6CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgX2NvbXBvc2l0aW5nUmVw
YWludENvdW50ZXJzQXJlVmlzaWJsZV0pOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIF9zZXRD
b21wb3NpdGluZ1JlcGFpbnRDb3VudGVyc1Zpc2libGU6XSk6CisgICAgICAgICgtW1dLUHJlZmVy
ZW5jZXMgX3RpbGVkU2Nyb2xsaW5nSW5kaWNhdG9ySXNWaXNpYmxlXSk6CisgICAgICAgICgtW1dL
UHJlZmVyZW5jZXMgX3NldFRpbGVkU2Nyb2xsaW5nSW5kaWNhdG9yVmlzaWJsZTpdKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmg6CisgICAgICAg
IEV4cG9zZSBsYXllciBib3JkZXJzLCByZXBhaW50IGNvdW50ZXJzLCBhbmQgdGhlIHRpbGVkIHNj
cm9sbGluZyBpbmRpY2F0b3Igb24gV0tQcmVmZXJlbmNlcywgYXMgU1BJLgorCiAyMDE0LTA3LTA2
ICBZb2F2IFdlaXNzICA8eW9hdkB5b2F2LndzPgogCiAgICAgICAgIFR1cm4gb24gaW1nQHNpemVz
IGNvbXBpbGUgZmxhZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1ByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1ByZWZlcmVuY2VzLm1tCmluZGV4IDQ0MWM1NGIuLmMzZDFlNzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0KQEAgLTE2
Myw2ICsxNjMsMzYgQEAgc3RhdGljIF9XS1N0b3JhZ2VCbG9ja2luZ1BvbGljeSB0b0FQSShXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG8KICAgICBfcHJlZmVyZW5jZXMt
PnNldE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZChvZmZsaW5lQXBwbGljYXRpb25D
YWNoZUlzRW5hYmxlZCk7CiB9CiAKKy0gKEJPT0wpX2NvbXBvc2l0aW5nQm9yZGVyc0FyZVZpc2li
bGUKK3sKKyAgICByZXR1cm4gX3ByZWZlcmVuY2VzLT5jb21wb3NpdGluZ0JvcmRlcnNWaXNpYmxl
KCk7Cit9CisKKy0gKHZvaWQpX3NldENvbXBvc2l0aW5nQm9yZGVyc1Zpc2libGU6KEJPT0wpY29t
cG9zaXRpbmdCb3JkZXJzVmlzaWJsZQoreworICAgIF9wcmVmZXJlbmNlcy0+c2V0Q29tcG9zaXRp
bmdCb3JkZXJzVmlzaWJsZShjb21wb3NpdGluZ0JvcmRlcnNWaXNpYmxlKTsKK30KKworLSAoQk9P
TClfY29tcG9zaXRpbmdSZXBhaW50Q291bnRlcnNBcmVWaXNpYmxlCit7CisgICAgcmV0dXJuIF9w
cmVmZXJlbmNlcy0+Y29tcG9zaXRpbmdSZXBhaW50Q291bnRlcnNWaXNpYmxlKCk7Cit9CisKKy0g
KHZvaWQpX3NldENvbXBvc2l0aW5nUmVwYWludENvdW50ZXJzVmlzaWJsZTooQk9PTClyZXBhaW50
Q291bnRlcnNWaXNpYmxlCit7CisgICAgX3ByZWZlcmVuY2VzLT5zZXRDb21wb3NpdGluZ1JlcGFp
bnRDb3VudGVyc1Zpc2libGUocmVwYWludENvdW50ZXJzVmlzaWJsZSk7Cit9CisKKy0gKEJPT0wp
X3RpbGVkU2Nyb2xsaW5nSW5kaWNhdG9ySXNWaXNpYmxlCit7CisgICAgcmV0dXJuIF9wcmVmZXJl
bmNlcy0+dGlsZWRTY3JvbGxpbmdJbmRpY2F0b3JWaXNpYmxlKCk7Cit9CisKKy0gKHZvaWQpX3Nl
dFRpbGVkU2Nyb2xsaW5nSW5kaWNhdG9yVmlzaWJsZTooQk9PTCl0aWxlZFNjcm9sbGluZ0luZGlj
YXRvclZpc2libGUKK3sKKyAgICBfcHJlZmVyZW5jZXMtPnNldFRpbGVkU2Nyb2xsaW5nSW5kaWNh
dG9yVmlzaWJsZSh0aWxlZFNjcm9sbGluZ0luZGljYXRvclZpc2libGUpOworfQorCiBAZW5kCiAK
ICNlbmRpZiAvLyBXS19BUElfRU5BQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4IDFmOTIzNzUu
Ljc5OTFhMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcmVmZXJlbmNlc1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAgLTQyLDYgKzQyLDEwIEBAIHR5cGVkZWYg
TlNfRU5VTShOU0ludGVnZXIsIF9XS1N0b3JhZ2VCbG9ja2luZ1BvbGljeSkgewogQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0VGVsZXBob25lTnVtYmVyRGV0ZWN0aW9uSXNFbmFibGVk
OikgQk9PTCBfdGVsZXBob25lTnVtYmVyRGV0ZWN0aW9uSXNFbmFibGVkOwogQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0U3RvcmFnZUJsb2NraW5nUG9saWN5OikgX1dLU3RvcmFnZUJs
b2NraW5nUG9saWN5IF9zdG9yYWdlQmxvY2tpbmdQb2xpY3k7CiAKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldENvbXBvc2l0aW5nQm9yZGVyc1Zpc2libGU6LCBnZXR0ZXI9X2NvbXBv
c2l0aW5nQm9yZGVyc0FyZVZpc2libGUpIEJPT0wgX2NvbXBvc2l0aW5nQm9yZGVyc1Zpc2libGU7
CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRDb21wb3NpdGluZ1JlcGFpbnRDb3Vu
dGVyc1Zpc2libGU6LCBnZXR0ZXI9X2NvbXBvc2l0aW5nUmVwYWludENvdW50ZXJzQXJlVmlzaWJs
ZSkgQk9PTCBfY29tcG9zaXRpbmdSZXBhaW50Q291bnRlcnNWaXNpYmxlOworQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0VGlsZWRTY3JvbGxpbmdJbmRpY2F0b3JWaXNpYmxlOiwgZ2V0
dGVyPV90aWxlZFNjcm9sbGluZ0luZGljYXRvcklzVmlzaWJsZSkgQk9PTCBfdGlsZWRTY3JvbGxp
bmdJbmRpY2F0b3JWaXNpYmxlOworCiAvLyBGSVhNRTogVGhpcyBzaG91bGQgYmUgY29uZmlndXJl
ZCBvbiB0aGUgV0tXZWJzaXRlRGF0YVN0b3JlLgogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRl
cj1fc2V0T2ZmbGluZUFwcGxpY2F0aW9uQ2FjaGVJc0VuYWJsZWQ6KSBCT09MIF9vZmZsaW5lQXBw
bGljYXRpb25DYWNoZUlzRW5hYmxlZDsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIv
VG9vbHMvQ2hhbmdlTG9nCmluZGV4IDFlYWEzMzYuLjdkYWMwYTQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAxNC0w
Ny0wNiAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBb
V0syXSBFeHBvc2UgYSBmZXcgZHJhd2luZy9jb21wb3NpdGluZyBzZXR0aW5ncyBvbiBXS1ByZWZl
cmVuY2VzKFByaXZhdGUpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMzQ2NDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIE1pbmlCcm93c2VyL21hYy9Ccm93c2VyV2luZG93Q29udHJvbGxlci5oOgorICAg
ICAgICAqIE1pbmlCcm93c2VyL21hYy9NYWluTWVudS54aWI6CisgICAgICAgIEFkZCBtZW51IGl0
ZW1zIGZvciBsYXllciBib3JkZXJzIGFuZCB0aGUgdGlsZWQgc2Nyb2xsaW5nIGluZGljYXRvci4K
KworICAgICAgICAqIE1pbmlCcm93c2VyL21hYy9XSzFCcm93c2VyV2luZG93Q29udHJvbGxlci5t
OgorICAgICAgICAoLVtXSzFCcm93c2VyV2luZG93Q29udHJvbGxlciB2YWxpZGF0ZU1lbnVJdGVt
Ol0pOgorICAgICAgICAoLVtXSzFCcm93c2VyV2luZG93Q29udHJvbGxlciBsYXllckJvcmRlcnNB
cmVWaXNpYmxlXSk6CisgICAgICAgICgtW1dLMUJyb3dzZXJXaW5kb3dDb250cm9sbGVyIHRvZ2ds
ZUxheWVyQm9yZGVyc1Zpc2liaWxpdHk6XSk6CisgICAgICAgIEFkZCBnZXR0ZXJzL3NldHRlcnMv
dmFsaWRhdG9ycyBmb3IgbGF5ZXIgYm9yZGVycy4KKworICAgICAgICAqIE1pbmlCcm93c2VyL21h
Yy9XSzJCcm93c2VyV2luZG93Q29udHJvbGxlci5tOgorICAgICAgICAoLVtXSzJCcm93c2VyV2lu
ZG93Q29udHJvbGxlciBhd2FrZUZyb21OaWJdKToKKyAgICAgICAgKC1bV0syQnJvd3NlcldpbmRv
d0NvbnRyb2xsZXIgdmFsaWRhdGVNZW51SXRlbTpdKToKKyAgICAgICAgKC1bV0syQnJvd3Nlcldp
bmRvd0NvbnRyb2xsZXIgbGF5ZXJCb3JkZXJzQXJlVmlzaWJsZV0pOgorICAgICAgICAoLVtXSzJC
cm93c2VyV2luZG93Q29udHJvbGxlciB0b2dnbGVMYXllckJvcmRlcnNWaXNpYmlsaXR5Ol0pOgor
ICAgICAgICAoLVtXSzJCcm93c2VyV2luZG93Q29udHJvbGxlciB0aWxlZFNjcm9sbGluZ0luZGlj
YXRvcklzVmlzaWJsZV0pOgorICAgICAgICAoLVtXSzJCcm93c2VyV2luZG93Q29udHJvbGxlciB0
b2dnbGVUaWxlZFNjcm9sbGluZ0luZGljYXRvclZpc2liaWxpdHk6XSk6CisgICAgICAgIEFkZCBn
ZXR0ZXJzL3NldHRlcnMvdmFsaWRhdG9ycyBmb3IgbGF5ZXIgYm9yZGVycyBhbmQgdGhlIHRpbGVk
IHNjcm9sbGluZyBpbmRpY2F0b3IuCisKKyAgICAgICAgKC1bV0syQnJvd3NlcldpbmRvd0NvbnRy
b2xsZXIgaXNTdWJwaXhlbENTU09NRWxlbWVudE1ldHJpY3NFbmFibGVkXSk6IERlbGV0ZWQuCisg
ICAgICAgICgtW1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyIHRvZ2dsZVN1YnBpeGVsQ1NTT01F
bGVtZW50TWV0cmljc0VuYWJsZWQ6XSk6IERlbGV0ZWQuCisgICAgICAgIFJlbW92ZSB0aGUgV2Vi
S2l0MiB2ZXJzaW9uIG9mIHRoZSBzdWJwaXhlbCBtZXRyaWNzIHByZWYsIGJlY2F1c2UgaXQgZG9l
c24ndCB3b3JrLCBiZWNhdXNlCisgICAgICAgIG5vdGhpbmcgaW4gV2ViS2l0MiByZWFkcyB0aGlz
IGRlZmF1bHQsIGFuZCB0aGVyZSBpcyBubyBXZWJLaXQyIEFQSSBmb3IgYWRqdXN0aW5nIHRoaXMg
cHJlZmVyZW5jZS4KKwogMjAxNC0wNy0wNiAgWW9hdiBXZWlzcyAgPHlvYXZAeW9hdi53cz4KIAog
ICAgICAgICBUdXJuIG9uIGltZ0BzaXplcyBjb21waWxlIGZsYWcKZGlmZiAtLWdpdCBhL1Rvb2xz
L01pbmlCcm93c2VyL21hYy9Ccm93c2VyV2luZG93Q29udHJvbGxlci5oIGIvVG9vbHMvTWluaUJy
b3dzZXIvbWFjL0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyLmgKaW5kZXggNGM5MzQ1ZC4uOTYzNDY3
OSAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvbWFjL0Jyb3dzZXJXaW5kb3dDb250cm9s
bGVyLmgKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvbWFjL0Jyb3dzZXJXaW5kb3dDb250cm9sbGVy
LmgKQEAgLTQ2LDEzICs0NiwxNSBAQAogLSAoSUJBY3Rpb24pdG9nZ2xlWm9vbU1vZGU6KGlkKXNl
bmRlcjsKIC0gKElCQWN0aW9uKXRvZ2dsZVBhZ2luYXRpb25Nb2RlOihpZClzZW5kZXI7CiAtIChJ
QkFjdGlvbil0b2dnbGVUcmFuc3BhcmVudFdpbmRvdzooaWQpc2VuZGVyOwotLSAoSUJBY3Rpb24p
dG9nZ2xlU3VicGl4ZWxDU1NPTUVsZW1lbnRNZXRyaWNzRW5hYmxlZDooaWQpc2VuZGVyOworLSAo
SUJBY3Rpb24pdG9nZ2xlTGF5ZXJCb3JkZXJzVmlzaWJpbGl0eTooaWQpc2VuZGVyOwogCiAtIChJ
QkFjdGlvbilkdW1wU291cmNlVG9Db25zb2xlOihpZClzZW5kZXI7CiAtIChJQkFjdGlvbilmaW5k
OihpZClzZW5kZXI7CiAKIEBvcHRpb25hbAorLSAoSUJBY3Rpb24pdG9nZ2xlU3VicGl4ZWxDU1NP
TUVsZW1lbnRNZXRyaWNzRW5hYmxlZDooaWQpc2VuZGVyOwogLSAoSUJBY3Rpb24pdG9nZ2xlVUlT
aWRlQ29tcG9zaXRpbmc6KGlkKXNlbmRlcjsKKy0gKElCQWN0aW9uKXRvZ2dsZVRpbGVkU2Nyb2xs
aW5nSW5kaWNhdG9yVmlzaWJpbGl0eTooaWQpc2VuZGVyOwogCiBAZW5kCiAKZGlmZiAtLWdpdCBh
L1Rvb2xzL01pbmlCcm93c2VyL21hYy9NYWluTWVudS54aWIgYi9Ub29scy9NaW5pQnJvd3Nlci9t
YWMvTWFpbk1lbnUueGliCmluZGV4IDZiNTMzMjMuLjk5ZDY1MWMgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L01pbmlCcm93c2VyL21hYy9NYWluTWVudS54aWIKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvbWFj
L01haW5NZW51LnhpYgpAQCAtNDY5LDYgKzQ2OSwxOCBAQAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPGFjdGlvbiBzZWxlY3Rvcj0idG9nZ2xlVUlTaWRlQ29tcG9zaXRpbmc6
IiB0YXJnZXQ9Ii0xIiBpZD0iMUVkLUM1LTBwbyIvPgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8L2Nvbm5lY3Rpb25zPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWVu
dUl0ZW0+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxlPSJMYXll
ciBCb3JkZXJzIiBpZD0iMDBULUVJLVdxaiI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlFcXVpdmFsZW50TW9kaWZpZXJNYXNrIi8+CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2VsZWN0b3I9InRvZ2dsZUxheWVyQm9yZGVy
c1Zpc2liaWxpdHk6IiB0YXJnZXQ9Ii0xIiBpZD0iZ210LTFaLVhjUSIvPgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8L2Nvbm5lY3Rpb25zPgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDwvbWVudUl0ZW0+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVt
IHRpdGxlPSJUaWxlZCBTY3JvbGxpbmcgSW5kaWNhdG9yIiBpZD0iaUJVLVl5LUd1ViI+CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlFcXVpdmFs
ZW50TW9kaWZpZXJNYXNrIi8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjb25u
ZWN0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2Vs
ZWN0b3I9InRvZ2dsZVRpbGVkU2Nyb2xsaW5nSW5kaWNhdG9yVmlzaWJpbGl0eToiIHRhcmdldD0i
LTEiIGlkPSJSSkItZHQteFNSIi8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwv
Y29ubmVjdGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IkVuYWJsZSBTdWItUGl4
ZWwgb2Zmc2V0V2lkdGggZXRjLiIgc3RhdGU9Im9uIiBpZD0iOFg1LWk2LXQyZCI+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlFcXVpdmFsZW50
TW9kaWZpZXJNYXNrIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjb25uZWN0
aW9ucz4KZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL21hYy9XSzFCcm93c2VyV2luZG93
Q29udHJvbGxlci5tIGIvVG9vbHMvTWluaUJyb3dzZXIvbWFjL1dLMUJyb3dzZXJXaW5kb3dDb250
cm9sbGVyLm0KaW5kZXggZTM4ZjIxYS4uMzhkNWVkOSAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJy
b3dzZXIvbWFjL1dLMUJyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0KKysrIGIvVG9vbHMvTWluaUJy
b3dzZXIvbWFjL1dLMUJyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0KQEAgLTEzNiw2ICsxMzYsOCBA
QCAtIChCT09MKXZhbGlkYXRlTWVudUl0ZW06KE5TTWVudUl0ZW0gKiltZW51SXRlbQogICAgICAg
ICBbbWVudUl0ZW0gc2V0U3RhdGU6W1tzZWxmIHdpbmRvd10gaXNPcGFxdWVdID8gTlNPZmZTdGF0
ZSA6IE5TT25TdGF0ZV07CiAgICAgZWxzZSBpZiAoYWN0aW9uID09IEBzZWxlY3Rvcih0b2dnbGVT
dWJwaXhlbENTU09NRWxlbWVudE1ldHJpY3NFbmFibGVkOikpCiAgICAgICAgIFttZW51SXRlbSBz
ZXRTdGF0ZTpbc2VsZiBpc1N1YnBpeGVsQ1NTT01FbGVtZW50TWV0cmljc0VuYWJsZWRdID8gTlNP
blN0YXRlIDogTlNPZmZTdGF0ZV07CisgICAgZWxzZSBpZiAoYWN0aW9uID09IEBzZWxlY3Rvcih0
b2dnbGVMYXllckJvcmRlcnNWaXNpYmlsaXR5OikpCisgICAgICAgIFttZW51SXRlbSBzZXRTdGF0
ZTpbc2VsZiBsYXllckJvcmRlcnNBcmVWaXNpYmxlXSA/IE5TT25TdGF0ZSA6IE5TT2ZmU3RhdGVd
OwogCiAgICAgcmV0dXJuIFlFUzsKIH0KQEAgLTI2NSw2ICsyNjcsMTggQEAgLSAoSUJBY3Rpb24p
dG9nZ2xlU3VicGl4ZWxDU1NPTUVsZW1lbnRNZXRyaWNzRW5hYmxlZDooaWQpc2VuZGVyCiAgICAg
W1tXZWJQcmVmZXJlbmNlcyBzdGFuZGFyZFByZWZlcmVuY2VzXSBzZXRTdWJwaXhlbENTU09NRWxl
bWVudE1ldHJpY3NFbmFibGVkOiFbc2VsZiBpc1N1YnBpeGVsQ1NTT01FbGVtZW50TWV0cmljc0Vu
YWJsZWRdXTsKIH0KIAorLSAoQk9PTClsYXllckJvcmRlcnNBcmVWaXNpYmxlCit7CisgICAgcmV0
dXJuIFtbV2ViUHJlZmVyZW5jZXMgc3RhbmRhcmRQcmVmZXJlbmNlc10gc2hvd0RlYnVnQm9yZGVy
c107Cit9CisKKy0gKElCQWN0aW9uKXRvZ2dsZUxheWVyQm9yZGVyc1Zpc2liaWxpdHk6KGlkKXNl
bmRlcgoreworICAgIEJPT0wgbmV3VmFsdWUgPSAhW3NlbGYgbGF5ZXJCb3JkZXJzQXJlVmlzaWJs
ZV07CisgICAgW1tXZWJQcmVmZXJlbmNlcyBzdGFuZGFyZFByZWZlcmVuY2VzXSBzZXRTaG93RGVi
dWdCb3JkZXJzOm5ld1ZhbHVlXTsKKyAgICBbW1dlYlByZWZlcmVuY2VzIHN0YW5kYXJkUHJlZmVy
ZW5jZXNdIHNldFNob3dSZXBhaW50Q291bnRlcjpuZXdWYWx1ZV07Cit9CisKIC0gKElCQWN0aW9u
KWZpbmQ6KGlkKXNlbmRlcgogewogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvbWFj
L1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0gYi9Ub29scy9NaW5pQnJvd3Nlci9tYWMvV0sy
QnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQppbmRleCAxYWQ0MThmLi5iZjY4NmU0IDEwMDY0NAot
LS0gYS9Ub29scy9NaW5pQnJvd3Nlci9tYWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQor
KysgYi9Ub29scy9NaW5pQnJvd3Nlci9tYWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQpA
QCAtMzAsNiArMzAsNyBAQAogI2ltcG9ydCAiQXBwRGVsZWdhdGUuaCIKICNpbXBvcnQgPFdlYktp
dC9XS0ZyYW1lSW5mby5oPgogI2ltcG9ydCA8V2ViS2l0L1dLTmF2aWdhdGlvbkRlbGVnYXRlLmg+
CisjaW1wb3J0IDxXZWJLaXQvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktp
dC9XS1VJRGVsZWdhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXcuaD4KICNpbXBvcnQg
PFdlYktpdC9XS1dlYlZpZXdDb25maWd1cmF0aW9uLmg+CkBAIC0zNyw3ICszOCw5IEBACiAKIHN0
YXRpYyB2b2lkKiBrZXlWYWx1ZU9ic2VydmluZ0NvbnRleHQgPSAma2V5VmFsdWVPYnNlcnZpbmdD
b250ZXh0Owogc3RhdGljIE5TU3RyaW5nICogY29uc3QgV2ViS2l0MlVzZVJlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhS2V5ID0gQCJXZWJLaXQyVXNlUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEi
Owotc3RhdGljIE5TU3RyaW5nICogY29uc3QgV2ViS2l0MlN1YnBpeGVsQ1NTT01FbGVtZW50TWV0
cmljc0VuYWJsZWRLZXkgPSBAIldlYktpdFN1YnBpeGVsQ1NTT01FbGVtZW50TWV0cmljc0VuYWJs
ZWQiOworCitzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBMYXllckJvcmRlcnNWaXNpYmxlUHJlZmVy
ZW5jZUtleSA9IEAiTGF5ZXJCb3JkZXJzVmlzaWJsZSI7CitzdGF0aWMgTlNTdHJpbmcgKiBjb25z
dCBUaWxlZFNjcm9sbGluZ0luZGljYXRvclZpc2libGVQcmVmZXJlbmNlS2V5ID0gQCJUaWxlZFNj
cm9sbGluZ0luZGljYXRvclZpc2libGVLZXkiOwogCiBAaW50ZXJmYWNlIFdLMkJyb3dzZXJXaW5k
b3dDb250cm9sbGVyICgpIDxXS05hdmlnYXRpb25EZWxlZ2F0ZSwgV0tVSURlbGVnYXRlPgogQGVu
ZApAQCAtNTAsOCArNTMsMTMgQEAgQGltcGxlbWVudGF0aW9uIFdLMkJyb3dzZXJXaW5kb3dDb250
cm9sbGVyIHsKIC0gKHZvaWQpYXdha2VGcm9tTmliCiB7CiAgICAgc3RhdGljIFdLV2ViVmlld0Nv
bmZpZ3VyYXRpb24gKmNvbmZpZ3VyYXRpb247Ci0gICAgaWYgKCFjb25maWd1cmF0aW9uKQorICAg
IGlmICghY29uZmlndXJhdGlvbikgewogICAgICAgICBjb25maWd1cmF0aW9uID0gW1tXS1dlYlZp
ZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XTsKKworICAgICAgICBjb25maWd1cmF0aW9uLnBy
ZWZlcmVuY2VzLl90aWxlZFNjcm9sbGluZ0luZGljYXRvclZpc2libGUgPSBbc2VsZiB0aWxlZFNj
cm9sbGluZ0luZGljYXRvcklzVmlzaWJsZV07CisgICAgICAgIGNvbmZpZ3VyYXRpb24ucHJlZmVy
ZW5jZXMuX2NvbXBvc2l0aW5nQm9yZGVyc1Zpc2libGUgPSBbc2VsZiBsYXllckJvcmRlcnNBcmVW
aXNpYmxlXTsKKyAgICAgICAgY29uZmlndXJhdGlvbi5wcmVmZXJlbmNlcy5fY29tcG9zaXRpbmdS
ZXBhaW50Q291bnRlcnNWaXNpYmxlID0gW3NlbGYgbGF5ZXJCb3JkZXJzQXJlVmlzaWJsZV07Cisg
ICAgfQogICAgIF93ZWJWaWV3ID0gW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6W2Nv
bnRhaW5lclZpZXcgYm91bmRzXSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dOwogCiAgICAg
X3dlYlZpZXcuYWxsb3dzTWFnbmlmaWNhdGlvbiA9IFlFUzsKQEAgLTEzOCw4ICsxNDYsMTAgQEAg
LSAoQk9PTCl2YWxpZGF0ZU1lbnVJdGVtOihOU01lbnVJdGVtICopbWVudUl0ZW0KICAgICAgICAg
W21lbnVJdGVtIHNldFN0YXRlOltbc2VsZiB3aW5kb3ddIGlzT3BhcXVlXSA/IE5TT2ZmU3RhdGUg
OiBOU09uU3RhdGVdOwogICAgIGVsc2UgaWYgKGFjdGlvbiA9PSBAc2VsZWN0b3IodG9nZ2xlVUlT
aWRlQ29tcG9zaXRpbmc6KSkKICAgICAgICAgW21lbnVJdGVtIHNldFN0YXRlOltzZWxmIGlzVUlT
aWRlQ29tcG9zaXRpbmdFbmFibGVkXSA/IE5TT25TdGF0ZSA6IE5TT2ZmU3RhdGVdOwotICAgIGVs
c2UgaWYgKGFjdGlvbiA9PSBAc2VsZWN0b3IodG9nZ2xlU3VicGl4ZWxDU1NPTUVsZW1lbnRNZXRy
aWNzRW5hYmxlZDopKQotICAgICAgICBbbWVudUl0ZW0gc2V0U3RhdGU6W3NlbGYgaXNTdWJwaXhl
bENTU09NRWxlbWVudE1ldHJpY3NFbmFibGVkXSA/IE5TT25TdGF0ZSA6IE5TT2ZmU3RhdGVdOwor
ICAgIGVsc2UgaWYgKGFjdGlvbiA9PSBAc2VsZWN0b3IodG9nZ2xlTGF5ZXJCb3JkZXJzVmlzaWJp
bGl0eTopKQorICAgICAgICBbbWVudUl0ZW0gc2V0U3RhdGU6W3NlbGYgbGF5ZXJCb3JkZXJzQXJl
VmlzaWJsZV0gPyBOU09uU3RhdGUgOiBOU09mZlN0YXRlXTsKKyAgICBlbHNlIGlmIChhY3Rpb24g
PT0gQHNlbGVjdG9yKHRvZ2dsZVRpbGVkU2Nyb2xsaW5nSW5kaWNhdG9yVmlzaWJpbGl0eTopKQor
ICAgICAgICBbbWVudUl0ZW0gc2V0U3RhdGU6W3NlbGYgdGlsZWRTY3JvbGxpbmdJbmRpY2F0b3JJ
c1Zpc2libGVdID8gTlNPblN0YXRlIDogTlNPZmZTdGF0ZV07CiAKICAgICByZXR1cm4gWUVTOwog
fQpAQCAtMzAxLDI2ICszMTEsMzkgQEAgLSAoSUJBY3Rpb24pdG9nZ2xlVHJhbnNwYXJlbnRXaW5k
b3c6KGlkKXNlbmRlcgogICAgIFtbc2VsZiB3aW5kb3ddIGRpc3BsYXldOyAgICAKIH0KIAotLSAo
Qk9PTClpc1N1YnBpeGVsQ1NTT01FbGVtZW50TWV0cmljc0VuYWJsZWQKKy0gKEJPT0wpaXNVSVNp
ZGVDb21wb3NpdGluZ0VuYWJsZWQKIHsKLSAgICByZXR1cm4gW1tOU1VzZXJEZWZhdWx0cyBzdGFu
ZGFyZFVzZXJEZWZhdWx0c10gYm9vbEZvcktleTpXZWJLaXQyU3VicGl4ZWxDU1NPTUVsZW1lbnRN
ZXRyaWNzRW5hYmxlZEtleV07CisgICAgcmV0dXJuIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRV
c2VyRGVmYXVsdHNdIGJvb2xGb3JLZXk6V2ViS2l0MlVzZVJlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhS2V5XTsKIH0KIAotLSAoSUJBY3Rpb24pdG9nZ2xlU3VicGl4ZWxDU1NPTUVsZW1lbnRNZXRy
aWNzRW5hYmxlZDooaWQpc2VuZGVyCistIChJQkFjdGlvbil0b2dnbGVVSVNpZGVDb21wb3NpdGlu
ZzooaWQpc2VuZGVyCiB7Ci0gICAgW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0
c10gc2V0Qm9vbDohW3NlbGYgaXNTdWJwaXhlbENTU09NRWxlbWVudE1ldHJpY3NFbmFibGVkXSBm
b3JLZXk6V2ViS2l0MlN1YnBpeGVsQ1NTT01FbGVtZW50TWV0cmljc0VuYWJsZWRLZXldOworICAg
IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIHNldEJvb2w6IVtzZWxmIGlz
VUlTaWRlQ29tcG9zaXRpbmdFbmFibGVkXSBmb3JLZXk6V2ViS2l0MlVzZVJlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhS2V5XTsKIH0KIAotLSAoQk9PTClpc1VJU2lkZUNvbXBvc2l0aW5nRW5hYmxl
ZAorLSAoQk9PTClsYXllckJvcmRlcnNBcmVWaXNpYmxlCiB7Ci0gICAgcmV0dXJuIFtbTlNVc2Vy
RGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGJvb2xGb3JLZXk6V2ViS2l0MlVzZVJlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhS2V5XTsKKyAgICByZXR1cm4gW1tOU1VzZXJEZWZhdWx0cyBz
dGFuZGFyZFVzZXJEZWZhdWx0c10gYm9vbEZvcktleTpMYXllckJvcmRlcnNWaXNpYmxlUHJlZmVy
ZW5jZUtleV07CiB9CiAKLS0gKElCQWN0aW9uKXRvZ2dsZVVJU2lkZUNvbXBvc2l0aW5nOihpZClz
ZW5kZXIKKy0gKElCQWN0aW9uKXRvZ2dsZUxheWVyQm9yZGVyc1Zpc2liaWxpdHk6KGlkKXNlbmRl
cgoreworICAgIEJPT0wgbmV3U3RhdGUgPSAhW3NlbGYgbGF5ZXJCb3JkZXJzQXJlVmlzaWJsZV07
CisgICAgW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gc2V0Qm9vbDpuZXdT
dGF0ZSBmb3JLZXk6TGF5ZXJCb3JkZXJzVmlzaWJsZVByZWZlcmVuY2VLZXldOworICAgIF93ZWJW
aWV3LmNvbmZpZ3VyYXRpb24ucHJlZmVyZW5jZXMuX2NvbXBvc2l0aW5nQm9yZGVyc1Zpc2libGUg
PSBuZXdTdGF0ZTsKKyAgICBfd2ViVmlldy5jb25maWd1cmF0aW9uLnByZWZlcmVuY2VzLl9jb21w
b3NpdGluZ1JlcGFpbnRDb3VudGVyc1Zpc2libGUgPSBuZXdTdGF0ZTsKK30KKworLSAoQk9PTCl0
aWxlZFNjcm9sbGluZ0luZGljYXRvcklzVmlzaWJsZQoreworICAgIHJldHVybiBbW05TVXNlckRl
ZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBib29sRm9yS2V5OlRpbGVkU2Nyb2xsaW5nSW5k
aWNhdG9yVmlzaWJsZVByZWZlcmVuY2VLZXldOworfQorCistIChJQkFjdGlvbil0b2dnbGVUaWxl
ZFNjcm9sbGluZ0luZGljYXRvclZpc2liaWxpdHk6KGlkKXNlbmRlcgogewotICAgIE5TVXNlckRl
ZmF1bHRzICp1c2VyRGVmYXVsdHMgPSBbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVs
dHNdOwotICAgIEJPT0wgbmV3VmFsdWUgPSAhW3VzZXJEZWZhdWx0cyBib29sRm9yS2V5OldlYktp
dDJVc2VSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYUtleV07Ci0gICAgW3VzZXJEZWZhdWx0cyBz
ZXRCb29sOm5ld1ZhbHVlIGZvcktleTpXZWJLaXQyVXNlUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWFLZXldOworICAgIEJPT0wgbmV3U3RhdGUgPSAhW3NlbGYgdGlsZWRTY3JvbGxpbmdJbmRpY2F0
b3JJc1Zpc2libGVdOworICAgIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNd
IHNldEJvb2w6bmV3U3RhdGUgZm9yS2V5OlRpbGVkU2Nyb2xsaW5nSW5kaWNhdG9yVmlzaWJsZVBy
ZWZlcmVuY2VLZXldOworICAgIF93ZWJWaWV3LmNvbmZpZ3VyYXRpb24ucHJlZmVyZW5jZXMuX3Rp
bGVkU2Nyb2xsaW5nSW5kaWNhdG9yVmlzaWJsZSA9IG5ld1N0YXRlOwogfQogCiAtICh2b2lkKW9i
c2VydmVWYWx1ZUZvcktleVBhdGg6KE5TU3RyaW5nICopa2V5UGF0aCBvZk9iamVjdDooaWQpb2Jq
ZWN0IGNoYW5nZTooTlNEaWN0aW9uYXJ5ICopY2hhbmdlIGNvbnRleHQ6KHZvaWQgKiljb250ZXh0
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>234592</attachid>
            <date>2014-07-08 13:46:45 -0700</date>
            <delta_ts>2014-07-08 14:44:51 -0700</delta_ts>
            <desc>patch with no verbs</desc>
            <filename>prefs.diff</filename>
            <type>text/plain</type>
            <size>15728</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZwppbmRleCAxMGQ3NjMyLi4zMTU0MDE5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMTQtMDctMDggIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBh
cHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gRXhwb3NlIGEgZmV3IGRyYXdpbmcvY29tcG9zaXRp
bmcgc2V0dGluZ3Mgb24gV0tQcmVmZXJlbmNlcyhQcml2YXRlKQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM0NjQ1CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1t
OgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBzZXRTdWJwaXhlbENTU09NRWxlbWVudE1ldHJp
Y3NFbmFibGVkOl0pOgorICAgICAgICBSZW1vdmUgYW4gZXh0cmEgdW5uZWNlc3Nhcnkgc3BhY2Uu
CisKIDIwMTQtMDctMDMgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAg
ICAgIEFkZCBXVEY6Om1vdmUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJQcmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVy
ZW5jZXMubW0KaW5kZXggMjY5NGRkYy4uOTk0ZGEwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCkBAIC0xOTE1LDcgKzE5MTUsNyBAQCAtIChCT09MKXN1
YnBpeGVsQ1NTT01FbGVtZW50TWV0cmljc0VuYWJsZWQKICAgICByZXR1cm4gW3NlbGYgX2Jvb2xW
YWx1ZUZvcktleTpXZWJLaXRTdWJwaXhlbENTU09NRWxlbWVudE1ldHJpY3NFbmFibGVkUHJlZmVy
ZW5jZUtleV07CiB9CiAKLS0gKHZvaWQpIHNldFN1YnBpeGVsQ1NTT01FbGVtZW50TWV0cmljc0Vu
YWJsZWQ6KEJPT0wpZW5hYmxlZAorLSAodm9pZClzZXRTdWJwaXhlbENTU09NRWxlbWVudE1ldHJp
Y3NFbmFibGVkOihCT09MKWVuYWJsZWQKIHsKICAgICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmVuYWJs
ZWQgZm9yS2V5OldlYktpdFN1YnBpeGVsQ1NTT01FbGVtZW50TWV0cmljc0VuYWJsZWRQcmVmZXJl
bmNlS2V5XTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA1MTFlNGI5Li5lYmMzZTNhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBA
IC0xLDUgKzEsMjIgQEAKIDIwMTQtMDctMDggIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBh
cHBsZS5jb20+CiAKKyAgICAgICAgW1dLMl0gRXhwb3NlIGEgZmV3IGRyYXdpbmcvY29tcG9zaXRp
bmcgc2V0dGluZ3Mgb24gV0tQcmVmZXJlbmNlcyhQcml2YXRlKQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM0NjQ1CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJl
ZmVyZW5jZXMubW06CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgX2NvbXBvc2l0aW5nQm9yZGVy
c1Zpc2libGVdKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBfc2V0Q29tcG9zaXRpbmdCb3Jk
ZXJzVmlzaWJsZTpdKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBfY29tcG9zaXRpbmdSZXBh
aW50Q291bnRlcnNWaXNpYmxlXSk6CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgX3NldENvbXBv
c2l0aW5nUmVwYWludENvdW50ZXJzVmlzaWJsZTpdKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNl
cyBfdGlsZWRTY3JvbGxpbmdJbmRpY2F0b3JWaXNpYmxlXSk6CisgICAgICAgICgtW1dLUHJlZmVy
ZW5jZXMgX3NldFRpbGVkU2Nyb2xsaW5nSW5kaWNhdG9yVmlzaWJsZTpdKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmg6CisgICAgICAgIEV4cG9z
ZSBsYXllciBib3JkZXJzLCByZXBhaW50IGNvdW50ZXJzLCBhbmQgdGhlIHRpbGVkIHNjcm9sbGlu
ZyBpbmRpY2F0b3Igb24gV0tQcmVmZXJlbmNlcywgYXMgU1BJLgorCisyMDE0LTA3LTA4ICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCiAgICAgICAgIFdLUHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uUHJpdmF0ZSdzIG1heGltdW1Qcm9jZXNzQ291bnQgcHJvcGVydHkgaGFz
IG5vIGVmZmVjdAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTM0NzExCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQcmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcmVmZXJlbmNlcy5tbQppbmRleCAxZDkyNDhkLi5kM2M3ZTQ2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0KKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCkBAIC0xNjMs
NiArMTYzLDM2IEBAIC0gKHZvaWQpX3NldE9mZmxpbmVBcHBsaWNhdGlvbkNhY2hlSXNFbmFibGVk
OihCT09MKW9mZmxpbmVBcHBsaWNhdGlvbkNhY2hlSXNFbmFiCiAgICAgX3ByZWZlcmVuY2VzLT5z
ZXRPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQob2ZmbGluZUFwcGxpY2F0aW9uQ2Fj
aGVJc0VuYWJsZWQpOwogfQogCistIChCT09MKV9jb21wb3NpdGluZ0JvcmRlcnNWaXNpYmxlCit7
CisgICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+Y29tcG9zaXRpbmdCb3JkZXJzVmlzaWJsZSgpOwor
fQorCistICh2b2lkKV9zZXRDb21wb3NpdGluZ0JvcmRlcnNWaXNpYmxlOihCT09MKWNvbXBvc2l0
aW5nQm9yZGVyc1Zpc2libGUKK3sKKyAgICBfcHJlZmVyZW5jZXMtPnNldENvbXBvc2l0aW5nQm9y
ZGVyc1Zpc2libGUoY29tcG9zaXRpbmdCb3JkZXJzVmlzaWJsZSk7Cit9CisKKy0gKEJPT0wpX2Nv
bXBvc2l0aW5nUmVwYWludENvdW50ZXJzVmlzaWJsZQoreworICAgIHJldHVybiBfcHJlZmVyZW5j
ZXMtPmNvbXBvc2l0aW5nUmVwYWludENvdW50ZXJzVmlzaWJsZSgpOworfQorCistICh2b2lkKV9z
ZXRDb21wb3NpdGluZ1JlcGFpbnRDb3VudGVyc1Zpc2libGU6KEJPT0wpcmVwYWludENvdW50ZXJz
VmlzaWJsZQoreworICAgIF9wcmVmZXJlbmNlcy0+c2V0Q29tcG9zaXRpbmdSZXBhaW50Q291bnRl
cnNWaXNpYmxlKHJlcGFpbnRDb3VudGVyc1Zpc2libGUpOworfQorCistIChCT09MKV90aWxlZFNj
cm9sbGluZ0luZGljYXRvclZpc2libGUKK3sKKyAgICByZXR1cm4gX3ByZWZlcmVuY2VzLT50aWxl
ZFNjcm9sbGluZ0luZGljYXRvclZpc2libGUoKTsKK30KKworLSAodm9pZClfc2V0VGlsZWRTY3Jv
bGxpbmdJbmRpY2F0b3JWaXNpYmxlOihCT09MKXRpbGVkU2Nyb2xsaW5nSW5kaWNhdG9yVmlzaWJs
ZQoreworICAgIF9wcmVmZXJlbmNlcy0+c2V0VGlsZWRTY3JvbGxpbmdJbmRpY2F0b3JWaXNpYmxl
KHRpbGVkU2Nyb2xsaW5nSW5kaWNhdG9yVmlzaWJsZSk7Cit9CisKIEBlbmQKIAogI2VuZGlmIC8v
IFdLX0FQSV9FTkFCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKaW5kZXggMWY5MjM3NS4uY2RmNmI4ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVu
Y2VzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQ
cmVmZXJlbmNlc1ByaXZhdGUuaApAQCAtMzksMTAgKzM5LDE2IEBAIHR5cGVkZWYgTlNfRU5VTShO
U0ludGVnZXIsIF9XS1N0b3JhZ2VCbG9ja2luZ1BvbGljeSkgewogCiBAaW50ZXJmYWNlIFdLUHJl
ZmVyZW5jZXMgKFdLUHJpdmF0ZSkKIAorLy8gRklYTUU6IFRoaXMgcHJvcGVydHkgc2hvdWxkIG5v
dCBoYXZlIHRoZSB2ZXJiICJpcyIgaW4gaXQuCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVy
PV9zZXRUZWxlcGhvbmVOdW1iZXJEZXRlY3Rpb25Jc0VuYWJsZWQ6KSBCT09MIF90ZWxlcGhvbmVO
dW1iZXJEZXRlY3Rpb25Jc0VuYWJsZWQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3k6KSBfV0tTdG9yYWdlQmxvY2tpbmdQb2xpY3kgX3N0b3Jh
Z2VCbG9ja2luZ1BvbGljeTsKIAorQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0Q29t
cG9zaXRpbmdCb3JkZXJzVmlzaWJsZTopIEJPT0wgX2NvbXBvc2l0aW5nQm9yZGVyc1Zpc2libGU7
CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRDb21wb3NpdGluZ1JlcGFpbnRDb3Vu
dGVyc1Zpc2libGU6KSBCT09MIF9jb21wb3NpdGluZ1JlcGFpbnRDb3VudGVyc1Zpc2libGU7CitA
cHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRUaWxlZFNjcm9sbGluZ0luZGljYXRvclZp
c2libGU6KSBCT09MIF90aWxlZFNjcm9sbGluZ0luZGljYXRvclZpc2libGU7CisKIC8vIEZJWE1F
OiBUaGlzIHNob3VsZCBiZSBjb25maWd1cmVkIG9uIHRoZSBXS1dlYnNpdGVEYXRhU3RvcmUuCisv
LyBGSVhNRTogVGhpcyBwcm9wZXJ0eSBzaG91bGQgbm90IGhhdmUgdGhlIHZlcmIgImlzIiBpbiBp
dC4KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE9mZmxpbmVBcHBsaWNhdGlvbkNh
Y2hlSXNFbmFibGVkOikgQk9PTCBfb2ZmbGluZUFwcGxpY2F0aW9uQ2FjaGVJc0VuYWJsZWQ7CiAK
IEBlbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCBhZTBlMDI4Li5iMTQyYmEwIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTQtMDctMDggIFRpbSBIb3J0b24gIDx0
aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gRXhwb3NlIGEgZmV3IGRy
YXdpbmcvY29tcG9zaXRpbmcgc2V0dGluZ3Mgb24gV0tQcmVmZXJlbmNlcyhQcml2YXRlKQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM0NjQ1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNaW5pQnJvd3Nl
ci9tYWMvQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9t
YWMvTWFpbk1lbnUueGliOgorICAgICAgICBBZGQgbWVudSBpdGVtcyBmb3IgbGF5ZXIgYm9yZGVy
cyBhbmQgdGhlIHRpbGVkIHNjcm9sbGluZyBpbmRpY2F0b3IuCisKKyAgICAgICAgKiBNaW5pQnJv
d3Nlci9tYWMvV0sxQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubToKKyAgICAgICAgKC1bV0sxQnJv
d3NlcldpbmRvd0NvbnRyb2xsZXIgdmFsaWRhdGVNZW51SXRlbTpdKToKKyAgICAgICAgKC1bV0sx
QnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgbGF5ZXJCb3JkZXJzQXJlVmlzaWJsZV0pOgorICAgICAg
ICAoLVtXSzFCcm93c2VyV2luZG93Q29udHJvbGxlciB0b2dnbGVMYXllckJvcmRlcnNWaXNpYmls
aXR5Ol0pOgorICAgICAgICBBZGQgZ2V0dGVycy9zZXR0ZXJzL3ZhbGlkYXRvcnMgZm9yIGxheWVy
IGJvcmRlcnMuCisKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9tYWMvV0syQnJvd3NlcldpbmRvd0Nv
bnRyb2xsZXIubToKKyAgICAgICAgKC1bV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgYXdha2VG
cm9tTmliXSk6CisgICAgICAgICgtW1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyIHZhbGlkYXRl
TWVudUl0ZW06XSk6CisgICAgICAgICgtW1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyIGxheWVy
Qm9yZGVyc0FyZVZpc2libGVdKToKKyAgICAgICAgKC1bV0syQnJvd3NlcldpbmRvd0NvbnRyb2xs
ZXIgdG9nZ2xlTGF5ZXJCb3JkZXJzVmlzaWJpbGl0eTpdKToKKyAgICAgICAgKC1bV0syQnJvd3Nl
cldpbmRvd0NvbnRyb2xsZXIgdGlsZWRTY3JvbGxpbmdJbmRpY2F0b3JJc1Zpc2libGVdKToKKyAg
ICAgICAgKC1bV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgdG9nZ2xlVGlsZWRTY3JvbGxpbmdJ
bmRpY2F0b3JWaXNpYmlsaXR5Ol0pOgorICAgICAgICBBZGQgZ2V0dGVycy9zZXR0ZXJzL3ZhbGlk
YXRvcnMgZm9yIGxheWVyIGJvcmRlcnMgYW5kIHRoZSB0aWxlZCBzY3JvbGxpbmcgaW5kaWNhdG9y
LgorCisgICAgICAgICgtW1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyIGlzU3VicGl4ZWxDU1NP
TUVsZW1lbnRNZXRyaWNzRW5hYmxlZF0pOiBEZWxldGVkLgorICAgICAgICAoLVtXSzJCcm93c2Vy
V2luZG93Q29udHJvbGxlciB0b2dnbGVTdWJwaXhlbENTU09NRWxlbWVudE1ldHJpY3NFbmFibGVk
Ol0pOiBEZWxldGVkLgorICAgICAgICBSZW1vdmUgdGhlIFdlYktpdDIgdmVyc2lvbiBvZiB0aGUg
c3VicGl4ZWwgbWV0cmljcyBwcmVmLCBiZWNhdXNlIGl0IGRvZXNuJ3Qgd29yaywgYmVjYXVzZQor
ICAgICAgICBub3RoaW5nIGluIFdlYktpdDIgcmVhZHMgdGhpcyBkZWZhdWx0LCBhbmQgdGhlcmUg
aXMgbm8gV2ViS2l0MiBBUEkgZm9yIGFkanVzdGluZyB0aGlzIHByZWZlcmVuY2UuCisKIDIwMTQt
MDctMDggIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBbR1RLXSBNb3ZlIHVzZXIgc3R5bGUgc2hlZXQgQVBJIG91dCBvZiBXZWJLaXRXZWJWaWV3
R3JvdXAKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL21hYy9Ccm93c2VyV2luZG93Q29u
dHJvbGxlci5oIGIvVG9vbHMvTWluaUJyb3dzZXIvbWFjL0Jyb3dzZXJXaW5kb3dDb250cm9sbGVy
LmgKaW5kZXggNGM5MzQ1ZC4uOTYzNDY3OSAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIv
bWFjL0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvbWFj
L0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyLmgKQEAgLTQ2LDEzICs0NiwxNSBAQCBAcHJvdG9jb2wg
QnJvd3NlckNvbnRyb2xsZXIKIC0gKElCQWN0aW9uKXRvZ2dsZVpvb21Nb2RlOihpZClzZW5kZXI7
CiAtIChJQkFjdGlvbil0b2dnbGVQYWdpbmF0aW9uTW9kZTooaWQpc2VuZGVyOwogLSAoSUJBY3Rp
b24pdG9nZ2xlVHJhbnNwYXJlbnRXaW5kb3c6KGlkKXNlbmRlcjsKLS0gKElCQWN0aW9uKXRvZ2ds
ZVN1YnBpeGVsQ1NTT01FbGVtZW50TWV0cmljc0VuYWJsZWQ6KGlkKXNlbmRlcjsKKy0gKElCQWN0
aW9uKXRvZ2dsZUxheWVyQm9yZGVyc1Zpc2liaWxpdHk6KGlkKXNlbmRlcjsKIAogLSAoSUJBY3Rp
b24pZHVtcFNvdXJjZVRvQ29uc29sZTooaWQpc2VuZGVyOwogLSAoSUJBY3Rpb24pZmluZDooaWQp
c2VuZGVyOwogCiBAb3B0aW9uYWwKKy0gKElCQWN0aW9uKXRvZ2dsZVN1YnBpeGVsQ1NTT01FbGVt
ZW50TWV0cmljc0VuYWJsZWQ6KGlkKXNlbmRlcjsKIC0gKElCQWN0aW9uKXRvZ2dsZVVJU2lkZUNv
bXBvc2l0aW5nOihpZClzZW5kZXI7CistIChJQkFjdGlvbil0b2dnbGVUaWxlZFNjcm9sbGluZ0lu
ZGljYXRvclZpc2liaWxpdHk6KGlkKXNlbmRlcjsKIAogQGVuZAogCmRpZmYgLS1naXQgYS9Ub29s
cy9NaW5pQnJvd3Nlci9tYWMvTWFpbk1lbnUueGliIGIvVG9vbHMvTWluaUJyb3dzZXIvbWFjL01h
aW5NZW51LnhpYgppbmRleCA2YjUzMzIzLi45OWQ2NTFjIDEwMDY0NAotLS0gYS9Ub29scy9NaW5p
QnJvd3Nlci9tYWMvTWFpbk1lbnUueGliCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL21hYy9NYWlu
TWVudS54aWIKQEAgLTQ2OSw2ICs0NjksMTggQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxhY3Rpb24gc2VsZWN0b3I9InRvZ2dsZVVJU2lkZUNvbXBvc2l0aW5nOiIgdGFy
Z2V0PSItMSIgaWQ9IjFFZC1DNS0wcG8iLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPC9jb25uZWN0aW9ucz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21lbnVJdGVt
PgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRlbSB0aXRsZT0iTGF5ZXIgQm9y
ZGVycyIgaWQ9IjAwVC1FSS1XcWoiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
bW9kaWZpZXJNYXNrIGtleT0ia2V5RXF1aXZhbGVudE1vZGlmaWVyTWFzayIvPgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9yPSJ0b2dnbGVMYXllckJvcmRlcnNWaXNp
YmlsaXR5OiIgdGFyZ2V0PSItMSIgaWQ9ImdtdC0xWi1YY1EiLz4KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPC9jb25uZWN0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8L21lbnVJdGVtPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRlbSB0aXRs
ZT0iVGlsZWQgU2Nyb2xsaW5nIEluZGljYXRvciIgaWQ9ImlCVS1ZeS1HdVYiPgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8bW9kaWZpZXJNYXNrIGtleT0ia2V5RXF1aXZhbGVudE1v
ZGlmaWVyTWFzayIvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlv
bnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9y
PSJ0b2dnbGVUaWxlZFNjcm9sbGluZ0luZGljYXRvclZpc2liaWxpdHk6IiB0YXJnZXQ9Ii0xIiBp
ZD0iUkpCLWR0LXhTUiIvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Nvbm5l
Y3Rpb25zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxlPSJFbmFibGUgU3ViLVBpeGVsIG9m
ZnNldFdpZHRoIGV0Yy4iIHN0YXRlPSJvbiIgaWQ9IjhYNS1pNi10MmQiPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8bW9kaWZpZXJNYXNrIGtleT0ia2V5RXF1aXZhbGVudE1vZGlm
aWVyTWFzayIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+
CmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9tYWMvV0sxQnJvd3NlcldpbmRvd0NvbnRy
b2xsZXIubSBiL1Rvb2xzL01pbmlCcm93c2VyL21hYy9XSzFCcm93c2VyV2luZG93Q29udHJvbGxl
ci5tCmluZGV4IGUzOGYyMWEuLjM4ZDVlZDkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2Vy
L21hYy9XSzFCcm93c2VyV2luZG93Q29udHJvbGxlci5tCisrKyBiL1Rvb2xzL01pbmlCcm93c2Vy
L21hYy9XSzFCcm93c2VyV2luZG93Q29udHJvbGxlci5tCkBAIC0xMzYsNiArMTM2LDggQEAgLSAo
Qk9PTCl2YWxpZGF0ZU1lbnVJdGVtOihOU01lbnVJdGVtICopbWVudUl0ZW0KICAgICAgICAgW21l
bnVJdGVtIHNldFN0YXRlOltbc2VsZiB3aW5kb3ddIGlzT3BhcXVlXSA/IE5TT2ZmU3RhdGUgOiBO
U09uU3RhdGVdOwogICAgIGVsc2UgaWYgKGFjdGlvbiA9PSBAc2VsZWN0b3IodG9nZ2xlU3VicGl4
ZWxDU1NPTUVsZW1lbnRNZXRyaWNzRW5hYmxlZDopKQogICAgICAgICBbbWVudUl0ZW0gc2V0U3Rh
dGU6W3NlbGYgaXNTdWJwaXhlbENTU09NRWxlbWVudE1ldHJpY3NFbmFibGVkXSA/IE5TT25TdGF0
ZSA6IE5TT2ZmU3RhdGVdOworICAgIGVsc2UgaWYgKGFjdGlvbiA9PSBAc2VsZWN0b3IodG9nZ2xl
TGF5ZXJCb3JkZXJzVmlzaWJpbGl0eTopKQorICAgICAgICBbbWVudUl0ZW0gc2V0U3RhdGU6W3Nl
bGYgbGF5ZXJCb3JkZXJzQXJlVmlzaWJsZV0gPyBOU09uU3RhdGUgOiBOU09mZlN0YXRlXTsKIAog
ICAgIHJldHVybiBZRVM7CiB9CkBAIC0yNjUsNiArMjY3LDE4IEBAIC0gKElCQWN0aW9uKXRvZ2ds
ZVN1YnBpeGVsQ1NTT01FbGVtZW50TWV0cmljc0VuYWJsZWQ6KGlkKXNlbmRlcgogICAgIFtbV2Vi
UHJlZmVyZW5jZXMgc3RhbmRhcmRQcmVmZXJlbmNlc10gc2V0U3VicGl4ZWxDU1NPTUVsZW1lbnRN
ZXRyaWNzRW5hYmxlZDohW3NlbGYgaXNTdWJwaXhlbENTU09NRWxlbWVudE1ldHJpY3NFbmFibGVk
XV07CiB9CiAKKy0gKEJPT0wpbGF5ZXJCb3JkZXJzQXJlVmlzaWJsZQoreworICAgIHJldHVybiBb
W1dlYlByZWZlcmVuY2VzIHN0YW5kYXJkUHJlZmVyZW5jZXNdIHNob3dEZWJ1Z0JvcmRlcnNdOwor
fQorCistIChJQkFjdGlvbil0b2dnbGVMYXllckJvcmRlcnNWaXNpYmlsaXR5OihpZClzZW5kZXIK
K3sKKyAgICBCT09MIG5ld1ZhbHVlID0gIVtzZWxmIGxheWVyQm9yZGVyc0FyZVZpc2libGVdOwor
ICAgIFtbV2ViUHJlZmVyZW5jZXMgc3RhbmRhcmRQcmVmZXJlbmNlc10gc2V0U2hvd0RlYnVnQm9y
ZGVyczpuZXdWYWx1ZV07CisgICAgW1tXZWJQcmVmZXJlbmNlcyBzdGFuZGFyZFByZWZlcmVuY2Vz
XSBzZXRTaG93UmVwYWludENvdW50ZXI6bmV3VmFsdWVdOworfQorCiAtIChJQkFjdGlvbilmaW5k
OihpZClzZW5kZXIKIHsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL21hYy9XSzJC
cm93c2VyV2luZG93Q29udHJvbGxlci5tIGIvVG9vbHMvTWluaUJyb3dzZXIvbWFjL1dLMkJyb3dz
ZXJXaW5kb3dDb250cm9sbGVyLm0KaW5kZXggNGFlOTNkZS4uOGRhMDUyYyAxMDA2NDQKLS0tIGEv
VG9vbHMvTWluaUJyb3dzZXIvbWFjL1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0KKysrIGIv
VG9vbHMvTWluaUJyb3dzZXIvbWFjL1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0KQEAgLTMw
LDYgKzMwLDcgQEAKICNpbXBvcnQgIkFwcERlbGVnYXRlLmgiCiAjaW1wb3J0IDxXZWJLaXQvV0tG
cmFtZUluZm8uaD4KICNpbXBvcnQgPFdlYktpdC9XS05hdmlnYXRpb25EZWxlZ2F0ZS5oPgorI2lt
cG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXNQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tV
SURlbGVnYXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Lmg+CiAjaW1wb3J0IDxXZWJL
aXQvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5oPgpAQCAtMzcsNyArMzgsOSBAQAogCiBzdGF0aWMg
dm9pZCoga2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0ID0gJmtleVZhbHVlT2JzZXJ2aW5nQ29udGV4
dDsKIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IFdlYktpdDJVc2VSZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYUtleSA9IEAiV2ViS2l0MlVzZVJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhIjsKLXN0
YXRpYyBOU1N0cmluZyAqIGNvbnN0IFdlYktpdDJTdWJwaXhlbENTU09NRWxlbWVudE1ldHJpY3NF
bmFibGVkS2V5ID0gQCJXZWJLaXRTdWJwaXhlbENTU09NRWxlbWVudE1ldHJpY3NFbmFibGVkIjsK
Kworc3RhdGljIE5TU3RyaW5nICogY29uc3QgTGF5ZXJCb3JkZXJzVmlzaWJsZVByZWZlcmVuY2VL
ZXkgPSBAIkxheWVyQm9yZGVyc1Zpc2libGUiOworc3RhdGljIE5TU3RyaW5nICogY29uc3QgVGls
ZWRTY3JvbGxpbmdJbmRpY2F0b3JWaXNpYmxlUHJlZmVyZW5jZUtleSA9IEAiVGlsZWRTY3JvbGxp
bmdJbmRpY2F0b3JWaXNpYmxlS2V5IjsKIAogQGludGVyZmFjZSBXSzJCcm93c2VyV2luZG93Q29u
dHJvbGxlciAoKSA8V0tOYXZpZ2F0aW9uRGVsZWdhdGUsIFdLVUlEZWxlZ2F0ZT4KIEBlbmQKQEAg
LTUwLDggKzUzLDEzIEBAIEBpbXBsZW1lbnRhdGlvbiBXSzJCcm93c2VyV2luZG93Q29udHJvbGxl
ciB7CiAtICh2b2lkKWF3YWtlRnJvbU5pYgogewogICAgIHN0YXRpYyBXS1dlYlZpZXdDb25maWd1
cmF0aW9uICpjb25maWd1cmF0aW9uOwotICAgIGlmICghY29uZmlndXJhdGlvbikKKyAgICBpZiAo
IWNvbmZpZ3VyYXRpb24pIHsKICAgICAgICAgY29uZmlndXJhdGlvbiA9IFtbV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbiBhbGxvY10gaW5pdF07CisKKyAgICAgICAgY29uZmlndXJhdGlvbi5wcmVmZXJl
bmNlcy5fdGlsZWRTY3JvbGxpbmdJbmRpY2F0b3JWaXNpYmxlID0gW3NlbGYgdGlsZWRTY3JvbGxp
bmdJbmRpY2F0b3JJc1Zpc2libGVdOworICAgICAgICBjb25maWd1cmF0aW9uLnByZWZlcmVuY2Vz
Ll9jb21wb3NpdGluZ0JvcmRlcnNWaXNpYmxlID0gW3NlbGYgbGF5ZXJCb3JkZXJzQXJlVmlzaWJs
ZV07CisgICAgICAgIGNvbmZpZ3VyYXRpb24ucHJlZmVyZW5jZXMuX2NvbXBvc2l0aW5nUmVwYWlu
dENvdW50ZXJzVmlzaWJsZSA9IFtzZWxmIGxheWVyQm9yZGVyc0FyZVZpc2libGVdOworICAgIH0K
ICAgICBfd2ViVmlldyA9IFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOltjb250YWlu
ZXJWaWV3IGJvdW5kc10gY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXTsKIAogICAgIF93ZWJW
aWV3LmFsbG93c01hZ25pZmljYXRpb24gPSBZRVM7CkBAIC0xMzgsOCArMTQ2LDEwIEBAIC0gKEJP
T0wpdmFsaWRhdGVNZW51SXRlbTooTlNNZW51SXRlbSAqKW1lbnVJdGVtCiAgICAgICAgIFttZW51
SXRlbSBzZXRTdGF0ZTpbW3NlbGYgd2luZG93XSBpc09wYXF1ZV0gPyBOU09mZlN0YXRlIDogTlNP
blN0YXRlXTsKICAgICBlbHNlIGlmIChhY3Rpb24gPT0gQHNlbGVjdG9yKHRvZ2dsZVVJU2lkZUNv
bXBvc2l0aW5nOikpCiAgICAgICAgIFttZW51SXRlbSBzZXRTdGF0ZTpbc2VsZiBpc1VJU2lkZUNv
bXBvc2l0aW5nRW5hYmxlZF0gPyBOU09uU3RhdGUgOiBOU09mZlN0YXRlXTsKLSAgICBlbHNlIGlm
IChhY3Rpb24gPT0gQHNlbGVjdG9yKHRvZ2dsZVN1YnBpeGVsQ1NTT01FbGVtZW50TWV0cmljc0Vu
YWJsZWQ6KSkKLSAgICAgICAgW21lbnVJdGVtIHNldFN0YXRlOltzZWxmIGlzU3VicGl4ZWxDU1NP
TUVsZW1lbnRNZXRyaWNzRW5hYmxlZF0gPyBOU09uU3RhdGUgOiBOU09mZlN0YXRlXTsKKyAgICBl
bHNlIGlmIChhY3Rpb24gPT0gQHNlbGVjdG9yKHRvZ2dsZUxheWVyQm9yZGVyc1Zpc2liaWxpdHk6
KSkKKyAgICAgICAgW21lbnVJdGVtIHNldFN0YXRlOltzZWxmIGxheWVyQm9yZGVyc0FyZVZpc2li
bGVdID8gTlNPblN0YXRlIDogTlNPZmZTdGF0ZV07CisgICAgZWxzZSBpZiAoYWN0aW9uID09IEBz
ZWxlY3Rvcih0b2dnbGVUaWxlZFNjcm9sbGluZ0luZGljYXRvclZpc2liaWxpdHk6KSkKKyAgICAg
ICAgW21lbnVJdGVtIHNldFN0YXRlOltzZWxmIHRpbGVkU2Nyb2xsaW5nSW5kaWNhdG9ySXNWaXNp
YmxlXSA/IE5TT25TdGF0ZSA6IE5TT2ZmU3RhdGVdOwogCiAgICAgcmV0dXJuIFlFUzsKIH0KQEAg
LTMwMSwyNiArMzExLDM5IEBAIC0gKElCQWN0aW9uKXRvZ2dsZVRyYW5zcGFyZW50V2luZG93Oihp
ZClzZW5kZXIKICAgICBbW3NlbGYgd2luZG93XSBkaXNwbGF5XTsgICAgCiB9CiAKLS0gKEJPT0wp
aXNTdWJwaXhlbENTU09NRWxlbWVudE1ldHJpY3NFbmFibGVkCistIChCT09MKWlzVUlTaWRlQ29t
cG9zaXRpbmdFbmFibGVkCiB7Ci0gICAgcmV0dXJuIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRV
c2VyRGVmYXVsdHNdIGJvb2xGb3JLZXk6V2ViS2l0MlN1YnBpeGVsQ1NTT01FbGVtZW50TWV0cmlj
c0VuYWJsZWRLZXldOworICAgIHJldHVybiBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRl
ZmF1bHRzXSBib29sRm9yS2V5OldlYktpdDJVc2VSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYUtl
eV07CiB9CiAKLS0gKElCQWN0aW9uKXRvZ2dsZVN1YnBpeGVsQ1NTT01FbGVtZW50TWV0cmljc0Vu
YWJsZWQ6KGlkKXNlbmRlcgorLSAoSUJBY3Rpb24pdG9nZ2xlVUlTaWRlQ29tcG9zaXRpbmc6KGlk
KXNlbmRlcgogewotICAgIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIHNl
dEJvb2w6IVtzZWxmIGlzU3VicGl4ZWxDU1NPTUVsZW1lbnRNZXRyaWNzRW5hYmxlZF0gZm9yS2V5
OldlYktpdDJTdWJwaXhlbENTU09NRWxlbWVudE1ldHJpY3NFbmFibGVkS2V5XTsKKyAgICBbW05T
VXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBzZXRCb29sOiFbc2VsZiBpc1VJU2lk
ZUNvbXBvc2l0aW5nRW5hYmxlZF0gZm9yS2V5OldlYktpdDJVc2VSZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYUtleV07CiB9CiAKLS0gKEJPT0wpaXNVSVNpZGVDb21wb3NpdGluZ0VuYWJsZWQKKy0g
KEJPT0wpbGF5ZXJCb3JkZXJzQXJlVmlzaWJsZQogewotICAgIHJldHVybiBbW05TVXNlckRlZmF1
bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBib29sRm9yS2V5OldlYktpdDJVc2VSZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYUtleV07CisgICAgcmV0dXJuIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRh
cmRVc2VyRGVmYXVsdHNdIGJvb2xGb3JLZXk6TGF5ZXJCb3JkZXJzVmlzaWJsZVByZWZlcmVuY2VL
ZXldOwogfQogCi0tIChJQkFjdGlvbil0b2dnbGVVSVNpZGVDb21wb3NpdGluZzooaWQpc2VuZGVy
CistIChJQkFjdGlvbil0b2dnbGVMYXllckJvcmRlcnNWaXNpYmlsaXR5OihpZClzZW5kZXIKK3sK
KyAgICBCT09MIG5ld1N0YXRlID0gIVtzZWxmIGxheWVyQm9yZGVyc0FyZVZpc2libGVdOworICAg
IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIHNldEJvb2w6bmV3U3RhdGUg
Zm9yS2V5OkxheWVyQm9yZGVyc1Zpc2libGVQcmVmZXJlbmNlS2V5XTsKKyAgICBfd2ViVmlldy5j
b25maWd1cmF0aW9uLnByZWZlcmVuY2VzLl9jb21wb3NpdGluZ0JvcmRlcnNWaXNpYmxlID0gbmV3
U3RhdGU7CisgICAgX3dlYlZpZXcuY29uZmlndXJhdGlvbi5wcmVmZXJlbmNlcy5fY29tcG9zaXRp
bmdSZXBhaW50Q291bnRlcnNWaXNpYmxlID0gbmV3U3RhdGU7Cit9CisKKy0gKEJPT0wpdGlsZWRT
Y3JvbGxpbmdJbmRpY2F0b3JJc1Zpc2libGUKK3sKKyAgICByZXR1cm4gW1tOU1VzZXJEZWZhdWx0
cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gYm9vbEZvcktleTpUaWxlZFNjcm9sbGluZ0luZGljYXRv
clZpc2libGVQcmVmZXJlbmNlS2V5XTsKK30KKworLSAoSUJBY3Rpb24pdG9nZ2xlVGlsZWRTY3Jv
bGxpbmdJbmRpY2F0b3JWaXNpYmlsaXR5OihpZClzZW5kZXIKIHsKLSAgICBOU1VzZXJEZWZhdWx0
cyAqdXNlckRlZmF1bHRzID0gW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXTsK
LSAgICBCT09MIG5ld1ZhbHVlID0gIVt1c2VyRGVmYXVsdHMgYm9vbEZvcktleTpXZWJLaXQyVXNl
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFLZXldOwotICAgIFt1c2VyRGVmYXVsdHMgc2V0Qm9v
bDpuZXdWYWx1ZSBmb3JLZXk6V2ViS2l0MlVzZVJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhS2V5
XTsKKyAgICBCT09MIG5ld1N0YXRlID0gIVtzZWxmIHRpbGVkU2Nyb2xsaW5nSW5kaWNhdG9ySXNW
aXNpYmxlXTsKKyAgICBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBzZXRC
b29sOm5ld1N0YXRlIGZvcktleTpUaWxlZFNjcm9sbGluZ0luZGljYXRvclZpc2libGVQcmVmZXJl
bmNlS2V5XTsKKyAgICBfd2ViVmlldy5jb25maWd1cmF0aW9uLnByZWZlcmVuY2VzLl90aWxlZFNj
cm9sbGluZ0luZGljYXRvclZpc2libGUgPSBuZXdTdGF0ZTsKIH0KIAogLSAodm9pZClvYnNlcnZl
VmFsdWVGb3JLZXlQYXRoOihOU1N0cmluZyAqKWtleVBhdGggb2ZPYmplY3Q6KGlkKW9iamVjdCBj
aGFuZ2U6KE5TRGljdGlvbmFyeSAqKWNoYW5nZSBjb250ZXh0Oih2b2lkICopY29udGV4dAo=
</data>
<flag name="review"
          id="259126"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>