<?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>162657</bug_id>
          
          <creation_ts>2016-09-27 19:39:44 -0700</creation_ts>
          <short_desc>Make it possible to test web-related user-interface features</short_desc>
          <delta_ts>2016-09-30 11:42:00 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Megan Gardner">megan_gardner</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1234225</commentid>
    <comment_count>0</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2016-09-27 19:39:44 -0700</bug_when>
    <thetext>Test for long press on image</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234228</commentid>
    <comment_count>1</comment_count>
      <attachid>290050</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2016-09-27 19:53:13 -0700</bug_when>
    <thetext>Created attachment 290050
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234979</commentid>
    <comment_count>2</comment_count>
      <attachid>290050</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-09-29 14:30:16 -0700</bug_when>
    <thetext>Comment on attachment 290050
Patch

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

r- for the build breakage, but looks good. The actual new test is missing, though.

&gt; Source/WebKit2/ChangeLog:10
&gt; +        Wrote a test for long press on an image, and used the sheet scraping functionality
&gt; +        to make sure that the correct actions were being displayed.

You might want to reference the revision that added the code you&apos;re now testing.

&gt; Source/WebKit2/ChangeLog:12
&gt; +        Reviewed by NOBODY (OOPS!).

This line should go above the description

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebViewPrivate.h:266
&gt; +- (NSDictionary *)contentsOfUserInterfaceItem:(NSString *)userInterfaceItem WK_API_AVAILABLE(ios(WK_IOS_TBA));

This should have a leading underscore, as we do for all private properties and functions (as should the ones above, which I&apos;ll fix later).

&gt; Source/WebKit2/UIProcess/ios/WKContentViewInteraction.h:234
&gt;  - (void)selectFormAccessoryPickerRow:(NSInteger)rowIndex;
&gt; +- (NSDictionary *)contentsOfUserInterfaceItem:(NSString *)userInterfaceItem;

We should use underscores here as well; put one on contentsOfUserInterfaceItem.

&gt; Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:3855
&gt; +        return @{userInterfaceItem:[_actionSheetAssistant currentAvailableActionStrings]};

Preferred spacing is:
return @{ userInterfaceItem: [_actionSheetAssistant currentAvailableActionStrings] };

&gt; Tools/TestRunnerShared/UIScriptContext/UIScriptController.h:77
&gt; +    JSObjectRef contentsOfUserInterfaceItem(JSStringRef item) const;

No need for the &quot;item&quot; parameter name.

&gt; Tools/TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:65
&gt; +    // Returned object has a list of string the describe actions

Comment isn&apos;t quite accurate: its&apos;a dictionary with a key matching interfaceItem which might have arbitrary content inside.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235019</commentid>
    <comment_count>3</comment_count>
      <attachid>290258</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2016-09-29 15:57:59 -0700</bug_when>
    <thetext>Created attachment 290258
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235045</commentid>
    <comment_count>4</comment_count>
      <attachid>290258</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-09-29 17:04:28 -0700</bug_when>
    <thetext>Comment on attachment 290258
Patch

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

&gt; Source/WebKit2/ChangeLog:3
&gt; +        Test for long press on image

This title isn&apos;t really accurate. It&apos;s &quot;Make it possible to test web-related user-interface features&quot; or something.

&gt; Source/WebKit2/ChangeLog:11
&gt; +        Wrote a test for long press on an image, and used the sheet scraping functionality

s/Wrote/Add

&gt; Source/WebKit2/UIProcess/ios/WKActionSheetAssistant.h:75
&gt; +- (NSArray *)currentAvailableActionStrings;

&quot;strings&quot; is a bit vague. &quot;titles&quot;?

&gt; Source/WebKit2/UIProcess/ios/WKActionSheetAssistant.mm:224
&gt; +    for (UIAlertAction *action in _interactionSheet.get().actions)
&gt; +        [array addObject:action.title];

This gets localized text. Is this OK, or should we stringify the action enum values?

&gt; LayoutTests/fast/events/touch/ios/long-press-on-image.html:33
&gt; +					var actionDictionary = JSON.parse(result);

Please de-tab the file.

&gt; LayoutTests/fast/events/touch/ios/long-press-on-image.html:42
&gt; +						output += &apos;Available Actions: &lt;br&gt;&apos;;
&gt; +						var arrayLength = actionStrings.length;
&gt; +						for (var i = 0; i &lt; arrayLength; i++) {
&gt; +						    output += actionStrings[i] + &apos;&lt;br&gt;&apos;;
&gt; +						}

You could do this with an Array.join(separator).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235296</commentid>
    <comment_count>5</comment_count>
      <attachid>290353</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2016-09-30 11:17:59 -0700</bug_when>
    <thetext>Created attachment 290353
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235314</commentid>
    <comment_count>6</comment_count>
      <attachid>290353</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-30 11:41:54 -0700</bug_when>
    <thetext>Comment on attachment 290353
Patch

Clearing flags on attachment: 290353

Committed r206645: &lt;http://trac.webkit.org/changeset/206645&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235315</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-30 11:42:00 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290050</attachid>
            <date>2016-09-27 19:53:13 -0700</date>
            <delta_ts>2016-09-29 15:57:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162657-20160927195014.patch</filename>
            <type>text/plain</type>
            <size>9603</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNjQ3NikKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDE2LTA5LTI3ICBNZWdhbiBH
YXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgVGVzdCBmb3IgbG9u
ZyBwcmVzcyBvbiBpbWFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTYyNjU3CisKKyAgICAgICAgQWRkZWQgdGhlIGFiaWxpdHkgdG8gcHVsbCB0aGUg
c3RyaW5ncyBmcm9tIGFuIEFjdGlvbiBTaGVldCBhbmQgcGFzcyB0aGVtIHRvCisgICAgICAgIHRl
c3Qgc2NyaXB0cyB0byBtYWtlIHN1cmUgd2UgYXJlIGdpdmluZyB0aGUgY29ycmVjdCBhdmFpbGFi
bGUgYWN0aW9ucyBmb3IKKyAgICAgICAgdGhlIGl0ZW0gd2UgYXJlIGludGVyYWN0aW5nIHdpdGgu
CisgICAgICAgIFdyb3RlIGEgdGVzdCBmb3IgbG9uZyBwcmVzcyBvbiBhbiBpbWFnZSwgYW5kIHVz
ZWQgdGhlIHNoZWV0IHNjcmFwaW5nIGZ1bmN0aW9uYWxpdHkKKyAgICAgICAgdG8gbWFrZSBzdXJl
IHRoYXQgdGhlIGNvcnJlY3QgYWN0aW9ucyB3ZXJlIGJlaW5nIGRpc3BsYXllZC4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgY29udGVudHNPZlVzZXJJ
bnRlcmZhY2VJdGVtOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFu
dC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbToK
KyAgICAgICAgKC1bV0tBY3Rpb25TaGVldEFzc2lzdGFudCBjdXJyZW50QXZhaWxhYmxlQWN0aW9u
U3RyaW5nc10pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
bW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgY29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVt
Ol0pOgorCiAyMDE2LTA5LTIwICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+
CiAKICAgICAgICAgUGxhdGZvcm1FdmVudDo6bV9tb2RpZmllcnMgc2hvdWxkIGJlIGFuIE9wdGlv
blNldApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcubW0JKHJldmlzaW9uIDIwNjQ3NikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC00NTE5LDYgKzQ1MTksMTEg
QEAgLSAodm9pZClzZWxlY3RGb3JtQWNjZXNzb3J5UGlja2VyUm93OihpbgogICAgIFtfY29udGVu
dFZpZXcgc2VsZWN0Rm9ybUFjY2Vzc29yeVBpY2tlclJvdzpyb3dJbmRleF07CiB9CiAKKy0gKE5T
RGljdGlvbmFyeSAqKWNvbnRlbnRzT2ZVc2VySW50ZXJmYWNlSXRlbTooTlNTdHJpbmcgKil1c2Vy
SW50ZXJmYWNlSXRlbQoreworICAgIHJldHVybiBbX2NvbnRlbnRWaWV3IGNvbnRlbnRzT2ZVc2Vy
SW50ZXJmYWNlSXRlbTooTlNTdHJpbmcgKil1c2VySW50ZXJmYWNlSXRlbV07Cit9CisKIC0gKHZv
aWQpZGlkU3RhcnRGb3JtQ29udHJvbEludGVyYWN0aW9uCiB7CiAgICAgLy8gRm9yIHN1YmNsYXNz
ZXMgdG8gb3ZlcnJpZGUuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld1ByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAkocmV2aXNpb24gMjA2NDc2KQorKysgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI2Myw2ICsyNjMsNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBf
V0tJbW1lZGlhdGVBCiAtICh2b2lkKWtleWJvYXJkQWNjZXNzb3J5QmFyUHJldmlvdXMgV0tfQVBJ
X0FWQUlMQUJMRShpb3MoMTAuMCkpOwogLSAodm9pZClkaXNtaXNzRm9ybUFjY2Vzc29yeVZpZXcg
V0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwogLSAodm9pZClzZWxlY3RGb3JtQWNj
ZXNzb3J5UGlja2VyUm93OihpbnQpcm93SW5kZXggV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9T
X1RCQSkpOworLSAoTlNEaWN0aW9uYXJ5ICopY29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtOihO
U1N0cmluZyAqKXVzZXJJbnRlcmZhY2VJdGVtIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19U
QkEpKTsKIAogLSAodm9pZClkaWRTdGFydEZvcm1Db250cm9sSW50ZXJhY3Rpb24gV0tfQVBJX0FW
QUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwogLSAodm9pZClkaWRFbmRGb3JtQ29udHJvbEludGVy
YWN0aW9uIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5o
CShyZXZpc2lvbiAyMDY0NzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQWN0
aW9uU2hlZXRBc3Npc3RhbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNzIsNiArNzIsNyBAQCBzdHJ1
Y3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb247CiAtIChSZXRhaW5QdHI8TlNBcnJh
eT4pZGVmYXVsdEFjdGlvbnNGb3JMaW5rU2hlZXQ6KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICop
ZWxlbWVudEluZm87CiAtIChSZXRhaW5QdHI8TlNBcnJheT4pZGVmYXVsdEFjdGlvbnNGb3JJbWFn
ZVNoZWV0OihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnRJbmZvOwogLSAoQk9PTClp
c1Nob3dpbmdTaGVldDsKKy0gKE5TQXJyYXkgKiljdXJyZW50QXZhaWxhYmxlQWN0aW9uU3RyaW5n
czsKIEBlbmQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQubW0JKHJl
dmlzaW9uIDIwNjQ3NikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25T
aGVldEFzc2lzdGFudC5tbQkod29ya2luZyBjb3B5KQpAQCAtMjEzLDYgKzIxMywxOSBAQCAtIChC
T09MKWlzU2hvd2luZ1NoZWV0CiAgICAgcmV0dXJuIF9pbnRlcmFjdGlvblNoZWV0ICE9IG5pbDsK
IH0KIAorLSAoTlNBcnJheSAqKWN1cnJlbnRBdmFpbGFibGVBY3Rpb25TdHJpbmdzCit7CisgICAg
aWYgKCFfaW50ZXJhY3Rpb25TaGVldCkKKyAgICAgICAgcmV0dXJuIEBbXTsKKyAgICAKKyAgICBO
U011dGFibGVBcnJheSAqYXJyYXkgPSBbTlNNdXRhYmxlQXJyYXkgYXJyYXldOworICAgIAorICAg
IGZvciAoVUlBbGVydEFjdGlvbiAqYWN0aW9uIGluIF9pbnRlcmFjdGlvblNoZWV0LmdldCgpLmFj
dGlvbnMpCisgICAgICAgIFthcnJheSBhZGRPYmplY3Q6YWN0aW9uLnRpdGxlXTsKKyAgICAKKyAg
ICByZXR1cm4gYXJyYXk7Cit9CisKIC0gKHZvaWQpX2NyZWF0ZVNoZWV0V2l0aEVsZW1lbnRBY3Rp
b25zOihOU0FycmF5ICopYWN0aW9ucyBzaG93TGlua1RpdGxlOihCT09MKXNob3dMaW5rVGl0bGUK
IHsKICAgICBhdXRvIGRlbGVnYXRlID0gX2RlbGVnYXRlLmdldCgpOwpJbmRleDogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5oCShyZXZpc2lvbiAyMDY0NzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMzEsNiArMjMxLDcg
QEAgc3RydWN0IFdLQXV0b0NvcnJlY3Rpb25EYXRhIHsKIEBpbnRlcmZhY2UgV0tDb250ZW50Vmll
dyAoV0tUZXN0aW5nKQogCiAtICh2b2lkKXNlbGVjdEZvcm1BY2Nlc3NvcnlQaWNrZXJSb3c6KE5T
SW50ZWdlcilyb3dJbmRleDsKKy0gKE5TRGljdGlvbmFyeSAqKWNvbnRlbnRzT2ZVc2VySW50ZXJm
YWNlSXRlbTooTlNTdHJpbmcgKil1c2VySW50ZXJmYWNlSXRlbTsKIAogQGVuZAogCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5tbQkocmV2aXNpb24gMjA2NDc2KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0JKHdvcmtpbmcgY29weSkKQEAgLTM4
NDksNiArMzg0OSwxNCBAQCAtICh2b2lkKXNlbGVjdEZvcm1BY2Nlc3NvcnlQaWNrZXJSb3c6KE5T
CiAgICAgICAgIFsoV0tGb3JtU2VsZWN0Q29udHJvbCAqKV9pbnB1dFBlcmlwaGVyYWwgc2VsZWN0
Um93OnJvd0luZGV4IGluQ29tcG9uZW50OjAgZXh0ZW5kaW5nU2VsZWN0aW9uOk5PXTsKIH0KIAor
LSAoTlNEaWN0aW9uYXJ5ICopY29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtOihOU1N0cmluZyAq
KXVzZXJJbnRlcmZhY2VJdGVtCit7CisgICAgaWYgKFt1c2VySW50ZXJmYWNlSXRlbSBpc0VxdWFs
VG9TdHJpbmc6QCJhY3Rpb25TaGVldCJdKQorICAgICAgICByZXR1cm4gQHt1c2VySW50ZXJmYWNl
SXRlbTpbX2FjdGlvblNoZWV0QXNzaXN0YW50IGN1cnJlbnRBdmFpbGFibGVBY3Rpb25TdHJpbmdz
XX07CisgICAgCisgICAgcmV0dXJuIG5pbDsKK30KKwogQGVuZAogCiAjaWYgSEFWRShMSU5LX1BS
RVZJRVcpCkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdl
TG9nCShyZXZpc2lvbiAyMDY0OTIpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwxOSBAQAorMjAxNi0wOS0yNyAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRu
ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFRlc3QgZm9yIGxvbmcgcHJlc3Mgb24gaW1hZ2UKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjY1NworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbToKKyAgICAgICAgKFdUUjo6VUlTY3Jp
cHRDb250cm9sbGVyOjpjb250ZW50c09mVXNlckludGVyZmFjZUl0ZW0pOgorICAgICAgICAoV1RS
OjpVSVNjcmlwdENvbnRyb2xsZXI6OnNlbGVjdEZvcm1BY2Nlc3NvcnlQaWNrZXJSb3cpOiBEZWxl
dGVkLgorICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdz
L1VJU2NyaXB0Q29udHJvbGxlci5pZGw6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNj
cmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tOgorICAgICAgICAoV1RSOjpVSVNjcmlw
dENvbnRyb2xsZXI6OmNvbnRlbnRzT2ZVc2VySW50ZXJmYWNlSXRlbSk6CisgICAgICAgIChXVFI6
OlVJU2NyaXB0Q29udHJvbGxlcjo6c2VsZWN0Rm9ybUFjY2Vzc29yeVBpY2tlclJvdyk6IERlbGV0
ZWQuCisKIDIwMTYtMDktMjcgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0
Lm9yZz4KIAogICAgICAgICBDb3JyZWN0bHkgcGFyc2UgVVJMcyB3aXRoIHRoZSBmaXJzdCB0YWIg
aW4gdGhlIGZyYWdtZW50CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9pb3MvVUlTY3JpcHRD
b250cm9sbGVySU9TLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9V
SVNjcmlwdENvbnRyb2xsZXJJT1MubW0JKHJldmlzaW9uIDIwNjQ3NikKKysrIFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0JKHdvcmtpbmcgY29weSkKQEAg
LTEyNyw2ICsxMjcsMTEgQEAgdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OmRpc21pc3NGb3JtQWNj
ZQogdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnNlbGVjdEZvcm1BY2Nlc3NvcnlQaWNrZXJSb3co
bG9uZyByb3dJbmRleCkKIHsKIH0KKyAgICAKK0pTT2JqZWN0UmVmIFVJU2NyaXB0Q29udHJvbGxl
cjo6Y29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtKEpTU3RyaW5nUmVmIGludGVyZmFjZUl0ZW0p
IGNvbnN0Cit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CiAKIHZvaWQgVUlTY3JpcHRDb250cm9s
bGVyOjpzY3JvbGxUb09mZnNldChsb25nLCBsb25nKQogewpJbmRleDogVG9vbHMvVGVzdFJ1bm5l
clNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9s
bGVyLmgJKHJldmlzaW9uIDIwNjQ3NikKKysrIFRvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3Jp
cHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC03NCw2ICs3
NCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpc21pc3NGb3JtQWNjZXNzb3J5VmlldygpOwogICAg
IHZvaWQgc2VsZWN0Rm9ybUFjY2Vzc29yeVBpY2tlclJvdyhsb25nKTsKICAgICAKKyAgICBKU09i
amVjdFJlZiBjb250ZW50c09mVXNlckludGVyZmFjZUl0ZW0oSlNTdHJpbmdSZWYgaXRlbSkgY29u
c3Q7CisgICAgCiAgICAgdm9pZCBzY3JvbGxUb09mZnNldChsb25nIHgsIGxvbmcgeSk7CiAKICAg
ICB2b2lkIHNldERpZFN0YXJ0Rm9ybUNvbnRyb2xJbnRlcmFjdGlvbkNhbGxiYWNrKEpTVmFsdWVS
ZWYpOwpJbmRleDogVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGlu
Z3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0UnVubmVy
U2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsCShy
ZXZpc2lvbiAyMDY0NzYpCisrKyBUb29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4
dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC02Miw2
ICs2Miw5IEBAIGludGVyZmFjZSBVSVNjcmlwdENvbnRyb2xsZXIgewogICAgIHZvaWQga2V5Ym9h
cmRBY2Nlc3NvcnlCYXJOZXh0KCk7CiAgICAgdm9pZCBrZXlib2FyZEFjY2Vzc29yeUJhclByZXZp
b3VzKCk7CiAKKyAgICAvLyBSZXR1cm5lZCBvYmplY3QgaGFzIGEgbGlzdCBvZiBzdHJpbmcgdGhl
IGRlc2NyaWJlIGFjdGlvbnMKKyAgICBvYmplY3QgY29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVt
KERPTVN0cmluZyBpbnRlcmZhY2VJdGVtKTsKKwogICAgIC8vIFRoZXNlIGNhbGxiYWNrcyBhbHNv
IHdvcmsgZm9yIHRoZSBmb3JtIGFjY2Vzc29yeSB2aWV3cy4KICAgICBhdHRyaWJ1dGUgb2JqZWN0
IGRpZFNob3dLZXlib2FyZENhbGxiYWNrOwogICAgIGF0dHJpYnV0ZSBvYmplY3QgZGlkSGlkZUtl
eWJvYXJkQ2FsbGJhY2s7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlw
dENvbnRyb2xsZXJJT1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9p
b3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tCShyZXZpc2lvbiAyMDY0NzYpCisrKyBUb29scy9X
ZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTI0Nyw2ICsyNDcsMTMgQEAgdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnNlbGVjdEZv
cm1BY2NlcwogICAgIFRlc3RSdW5uZXJXS1dlYlZpZXcgKndlYlZpZXcgPSBUZXN0Q29udHJvbGxl
cjo6c2luZ2xldG9uKCkubWFpbldlYlZpZXcoKS0+cGxhdGZvcm1WaWV3KCk7CiAgICAgW3dlYlZp
ZXcgc2VsZWN0Rm9ybUFjY2Vzc29yeVBpY2tlclJvdzpyb3dJbmRleF07CiB9CisgICAgCitKU09i
amVjdFJlZiBVSVNjcmlwdENvbnRyb2xsZXI6OmNvbnRlbnRzT2ZVc2VySW50ZXJmYWNlSXRlbShK
U1N0cmluZ1JlZiBpbnRlcmZhY2VJdGVtKSBjb25zdAoreworICAgIFRlc3RSdW5uZXJXS1dlYlZp
ZXcgKndlYlZpZXcgPSBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkubWFpbldlYlZpZXcoKS0+
cGxhdGZvcm1WaWV3KCk7CisgICAgTlNEaWN0aW9uYXJ5ICpjb250ZW50RGljdGlvbmFyeSA9IFt3
ZWJWaWV3IGNvbnRlbnRzT2ZVc2VySW50ZXJmYWNlSXRlbTp0b1dURlN0cmluZyh0b1dLKGludGVy
ZmFjZUl0ZW0pKV07CisgICAgcmV0dXJuIEpTVmFsdWVUb09iamVjdChtX2NvbnRleHQtPmpzQ29u
dGV4dCgpLCBbSlNWYWx1ZSB2YWx1ZVdpdGhPYmplY3Q6Y29udGVudERpY3Rpb25hcnkgaW5Db250
ZXh0OltKU0NvbnRleHQgY29udGV4dFdpdGhKU0dsb2JhbENvbnRleHRSZWY6bV9jb250ZXh0LT5q
c0NvbnRleHQoKV1dLkpTVmFsdWVSZWYsIG51bGxwdHIpOworfQogCiBzdGF0aWMgQ0dQb2ludCBj
b250ZW50T2Zmc2V0Qm91bmRlZEluVmFsaWRSYW5nZShVSVNjcm9sbFZpZXcgKnNjcm9sbFZpZXcs
IENHUG9pbnQgY29udGVudE9mZnNldCkKIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290258</attachid>
            <date>2016-09-29 15:57:59 -0700</date>
            <delta_ts>2016-09-30 11:17:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162657-20160929155456.patch</filename>
            <type>text/plain</type>
            <size>14136</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNjYxMCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDE2LTA5LTI5ICBNZWdhbiBH
YXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgVGVzdCBmb3IgbG9u
ZyBwcmVzcyBvbiBpbWFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTYyNjU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkZWQgdGhlIGFiaWxpdHkgdG8gcHVsbCB0aGUgc3RyaW5ncyBmcm9tIGFuIEFj
dGlvbiBTaGVldCBhbmQgcGFzcyB0aGVtIHRvCisgICAgICAgIHRlc3Qgc2NyaXB0cyB0byBtYWtl
IHN1cmUgd2UgYXJlIGdpdmluZyB0aGUgY29ycmVjdCBhdmFpbGFibGUgYWN0aW9ucyBmb3IKKyAg
ICAgICAgdGhlIGl0ZW0gd2UgYXJlIGludGVyYWN0aW5nIHdpdGguCisgICAgICAgIFdyb3RlIGEg
dGVzdCBmb3IgbG9uZyBwcmVzcyBvbiBhbiBpbWFnZSwgYW5kIHVzZWQgdGhlIHNoZWV0IHNjcmFw
aW5nIGZ1bmN0aW9uYWxpdHkKKyAgICAgICAgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIGNvcnJlY3Qg
YWN0aW9ucyB3ZXJlIGJlaW5nIGRpc3BsYXllZC4KKyAgICAgICAgVGVzdCBmb3IgcHJldmlvdXMg
cGF0Y2gsIENoYW5nZXNldCAyMDU5MTU7IEJ1ZyAxNjE3NjEKKworICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2NvbnRlbnRz
T2ZVc2VySW50ZXJmYWNlSXRlbTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRB
c3Npc3RhbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3Rh
bnQubW06CisgICAgICAgICgtW1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQgY3VycmVudEF2YWlsYWJs
ZUFjdGlvblN0cmluZ3NdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9jb250ZW50c09mVXNlckludGVy
ZmFjZUl0ZW06XSk6CisKIDIwMTYtMDktMjkgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
IAogICAgICAgICBBbGxvdyBvdmVycmlkaW5nIHNvbWUgTlNVUkxTZXNzaW9uQ29uZmlndXJhdGlv
biBwcm9wZXJ0aWVzIG9uIGEgcGVyLU5ldHdvcmtQcm9jZXNzIGJhc2lzCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQkocmV2aXNpb24g
MjA2NjEwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTQ1MTksNiArNDUxOSwxMSBAQCAtICh2b2lkKXNlbGVjdEZv
cm1BY2Nlc3NvcnlQaWNrZXJSb3c6KGluCiAgICAgW19jb250ZW50VmlldyBzZWxlY3RGb3JtQWNj
ZXNzb3J5UGlja2VyUm93OnJvd0luZGV4XTsKIH0KIAorLSAoTlNEaWN0aW9uYXJ5ICopX2NvbnRl
bnRzT2ZVc2VySW50ZXJmYWNlSXRlbTooTlNTdHJpbmcgKil1c2VySW50ZXJmYWNlSXRlbQorewor
ICAgIHJldHVybiBbX2NvbnRlbnRWaWV3IF9jb250ZW50c09mVXNlckludGVyZmFjZUl0ZW06KE5T
U3RyaW5nICopdXNlckludGVyZmFjZUl0ZW1dOworfQorCiAtICh2b2lkKWRpZFN0YXJ0Rm9ybUNv
bnRyb2xJbnRlcmFjdGlvbgogewogICAgIC8vIEZvciBzdWJjbGFzc2VzIHRvIG92ZXJyaWRlLgpJ
bmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdQcml2YXRlLmgJKHJldmlzaW9uIDIwNjYxMCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNjMs
NiArMjYzLDcgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLSW1tZWRpYXRlQQogLSAo
dm9pZClrZXlib2FyZEFjY2Vzc29yeUJhclByZXZpb3VzIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEw
LjApKTsKIC0gKHZvaWQpZGlzbWlzc0Zvcm1BY2Nlc3NvcnlWaWV3IFdLX0FQSV9BVkFJTEFCTEUo
aW9zKFdLX0lPU19UQkEpKTsKIC0gKHZvaWQpc2VsZWN0Rm9ybUFjY2Vzc29yeVBpY2tlclJvdzoo
aW50KXJvd0luZGV4IFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKKy0gKE5TRGlj
dGlvbmFyeSAqKV9jb250ZW50c09mVXNlckludGVyZmFjZUl0ZW06KE5TU3RyaW5nICopdXNlcklu
dGVyZmFjZUl0ZW0gV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwogCiAtICh2b2lk
KWRpZFN0YXJ0Rm9ybUNvbnRyb2xJbnRlcmFjdGlvbiBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19J
T1NfVEJBKSk7CiAtICh2b2lkKWRpZEVuZEZvcm1Db250cm9sSW50ZXJhY3Rpb24gV0tfQVBJX0FW
QUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50LmgJKHJldmlzaW9uIDIwNjYx
MCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC03Miw2ICs3Miw3IEBAIHN0cnVjdCBJbnRlcmFjdGlvbklu
Zm9ybWF0aW9uQXRQb3NpdGlvbjsKIC0gKFJldGFpblB0cjxOU0FycmF5PilkZWZhdWx0QWN0aW9u
c0ZvckxpbmtTaGVldDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50SW5mbzsKIC0g
KFJldGFpblB0cjxOU0FycmF5PilkZWZhdWx0QWN0aW9uc0ZvckltYWdlU2hlZXQ6KF9XS0FjdGl2
YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudEluZm87CiAtIChCT09MKWlzU2hvd2luZ1NoZWV0Owor
LSAoTlNBcnJheSAqKWN1cnJlbnRBdmFpbGFibGVBY3Rpb25TdHJpbmdzOwogQGVuZAogCiAjZW5k
aWYgLy8gUExBVEZPUk0oSU9TKQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9X
S0FjdGlvblNoZWV0QXNzaXN0YW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbQkocmV2aXNpb24gMjA2NjEwKQor
KysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lm1t
CSh3b3JraW5nIGNvcHkpCkBAIC0yMTMsNiArMjEzLDE5IEBAIC0gKEJPT0wpaXNTaG93aW5nU2hl
ZXQKICAgICByZXR1cm4gX2ludGVyYWN0aW9uU2hlZXQgIT0gbmlsOwogfQogCistIChOU0FycmF5
ICopY3VycmVudEF2YWlsYWJsZUFjdGlvblN0cmluZ3MKK3sKKyAgICBpZiAoIV9pbnRlcmFjdGlv
blNoZWV0KQorICAgICAgICByZXR1cm4gQFtdOworICAgIAorICAgIE5TTXV0YWJsZUFycmF5ICph
cnJheSA9IFtOU011dGFibGVBcnJheSBhcnJheV07CisgICAgCisgICAgZm9yIChVSUFsZXJ0QWN0
aW9uICphY3Rpb24gaW4gX2ludGVyYWN0aW9uU2hlZXQuZ2V0KCkuYWN0aW9ucykKKyAgICAgICAg
W2FycmF5IGFkZE9iamVjdDphY3Rpb24udGl0bGVdOworICAgIAorICAgIHJldHVybiBhcnJheTsK
K30KKwogLSAodm9pZClfY3JlYXRlU2hlZXRXaXRoRWxlbWVudEFjdGlvbnM6KE5TQXJyYXkgKilh
Y3Rpb25zIHNob3dMaW5rVGl0bGU6KEJPT0wpc2hvd0xpbmtUaXRsZQogewogICAgIGF1dG8gZGVs
ZWdhdGUgPSBfZGVsZWdhdGUuZ2V0KCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgJKHJldmlzaW9uIDIw
NjYxMCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTIzMSw2ICsyMzEsNyBAQCBzdHJ1Y3QgV0tBdXRv
Q29ycmVjdGlvbkRhdGEgewogQGludGVyZmFjZSBXS0NvbnRlbnRWaWV3IChXS1Rlc3RpbmcpCiAK
IC0gKHZvaWQpc2VsZWN0Rm9ybUFjY2Vzc29yeVBpY2tlclJvdzooTlNJbnRlZ2VyKXJvd0luZGV4
OworLSAoTlNEaWN0aW9uYXJ5ICopX2NvbnRlbnRzT2ZVc2VySW50ZXJmYWNlSXRlbTooTlNTdHJp
bmcgKil1c2VySW50ZXJmYWNlSXRlbTsKIAogQGVuZAogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQko
cmV2aXNpb24gMjA2NjEwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24ubW0JKHdvcmtpbmcgY29weSkKQEAgLTM4NDksNiArMzg0OSwxNCBA
QCAtICh2b2lkKXNlbGVjdEZvcm1BY2Nlc3NvcnlQaWNrZXJSb3c6KE5TCiAgICAgICAgIFsoV0tG
b3JtU2VsZWN0Q29udHJvbCAqKV9pbnB1dFBlcmlwaGVyYWwgc2VsZWN0Um93OnJvd0luZGV4IGlu
Q29tcG9uZW50OjAgZXh0ZW5kaW5nU2VsZWN0aW9uOk5PXTsKIH0KIAorLSAoTlNEaWN0aW9uYXJ5
ICopX2NvbnRlbnRzT2ZVc2VySW50ZXJmYWNlSXRlbTooTlNTdHJpbmcgKil1c2VySW50ZXJmYWNl
SXRlbQoreworICAgIGlmIChbdXNlckludGVyZmFjZUl0ZW0gaXNFcXVhbFRvU3RyaW5nOkAiYWN0
aW9uU2hlZXQiXSkKKyAgICAgICAgcmV0dXJuIEB7IHVzZXJJbnRlcmZhY2VJdGVtOiBbX2FjdGlv
blNoZWV0QXNzaXN0YW50IGN1cnJlbnRBdmFpbGFibGVBY3Rpb25TdHJpbmdzXSB9OworICAgIAor
ICAgIHJldHVybiBuaWw7Cit9CisKIEBlbmQKIAogI2lmIEhBVkUoTElOS19QUkVWSUVXKQpJbmRl
eDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNp
b24gMjA2NjIwKQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MjIgQEAKKzIwMTYtMDktMjkgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNv
bT4KKworICAgICAgICBUZXN0IGZvciBsb25nIHByZXNzIG9uIGltYWdlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI2NTcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2lvcy9V
SVNjcmlwdENvbnRyb2xsZXJJT1MubW06CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxl
cjo6Y29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtKToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRD
b250cm9sbGVyOjpzZWxlY3RGb3JtQWNjZXNzb3J5UGlja2VyUm93KTogRGVsZXRlZC4KKyAgICAg
ICAgKiBUZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENv
bnRyb2xsZXIuaWRsOgorICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0
L1VJU2NyaXB0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxl
cjo6Y29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtKToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRD
b250cm9sbGVyOjpzZWxlY3RGb3JtQWNjZXNzb3J5UGlja2VyUm93KTogRGVsZXRlZC4KKyAgICAg
ICAgKiBUZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIu
aDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1Mu
bW06CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6Y29udGVudHNPZlVzZXJJbnRl
cmZhY2VJdGVtKToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpzZWxlY3RGb3Jt
QWNjZXNzb3J5UGlja2VyUm93KTogRGVsZXRlZC4KKwogMjAxNi0wOS0yOSAgQWxleCBDaHJpc3Rl
bnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEZpeCBzeW50YXggdmlv
bGF0aW9uIGhhbmRsaW5nIGluIElQdjQgYWRkcmVzcyBwYXJzaW5nCkluZGV4OiBUb29scy9EdW1w
UmVuZGVyVHJlZS9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0JKHJldmlzaW9u
IDIwNjYxMCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJ
T1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTEyNyw2ICsxMjcsMTEgQEAgdm9pZCBVSVNjcmlwdENv
bnRyb2xsZXI6OmRpc21pc3NGb3JtQWNjZQogdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnNlbGVj
dEZvcm1BY2Nlc3NvcnlQaWNrZXJSb3cobG9uZyByb3dJbmRleCkKIHsKIH0KKyAgICAKK0pTT2Jq
ZWN0UmVmIFVJU2NyaXB0Q29udHJvbGxlcjo6Y29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtKEpT
U3RyaW5nUmVmIGludGVyZmFjZUl0ZW0pIGNvbnN0Cit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9
CiAKIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpzY3JvbGxUb09mZnNldChsb25nLCBsb25nKQog
ewpJbmRleDogVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRD
b250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2Ny
aXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiAyMDY2MTApCisrKyBU
b29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTksNiArMTk5LDExIEBAIHZvaWQgVUlTY3JpcHRDb250
cm9sbGVyOjpkaXNtaXNzRm9ybUFjY2UKIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpzZWxlY3RG
b3JtQWNjZXNzb3J5UGlja2VyUm93KGxvbmcpCiB7CiB9CisgICAgCitKU09iamVjdFJlZiBVSVNj
cmlwdENvbnRyb2xsZXI6OmNvbnRlbnRzT2ZVc2VySW50ZXJmYWNlSXRlbShKU1N0cmluZ1JlZiBp
bnRlcmZhY2VJdGVtKSBjb25zdAoreworICAgIHJldHVybiBudWxscHRyOworfQogCiB2b2lkIFVJ
U2NyaXB0Q29udHJvbGxlcjo6c2Nyb2xsVG9PZmZzZXQobG9uZyB4LCBsb25nIHkpCiB7CkluZGV4
OiBUb29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xs
ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4
dC9VSVNjcmlwdENvbnRyb2xsZXIuaAkocmV2aXNpb24gMjA2NjEwKQorKysgVG9vbHMvVGVzdFJ1
bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTc0LDYgKzc0LDggQEAgcHVibGljOgogICAgIHZvaWQgZGlzbWlzc0Zvcm1BY2Nl
c3NvcnlWaWV3KCk7CiAgICAgdm9pZCBzZWxlY3RGb3JtQWNjZXNzb3J5UGlja2VyUm93KGxvbmcp
OwogICAgIAorICAgIEpTT2JqZWN0UmVmIGNvbnRlbnRzT2ZVc2VySW50ZXJmYWNlSXRlbShKU1N0
cmluZ1JlZikgY29uc3Q7CisgICAgCiAgICAgdm9pZCBzY3JvbGxUb09mZnNldChsb25nIHgsIGxv
bmcgeSk7CiAKICAgICB2b2lkIHNldERpZFN0YXJ0Rm9ybUNvbnRyb2xJbnRlcmFjdGlvbkNhbGxi
YWNrKEpTVmFsdWVSZWYpOwpJbmRleDogVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENv
bnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRy
b2xsZXIuaWRsCShyZXZpc2lvbiAyMDY2MTApCisrKyBUb29scy9UZXN0UnVubmVyU2hhcmVkL1VJ
U2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsCSh3b3JraW5nIGNv
cHkpCkBAIC02Miw2ICs2Miw5IEBAIGludGVyZmFjZSBVSVNjcmlwdENvbnRyb2xsZXIgewogICAg
IHZvaWQga2V5Ym9hcmRBY2Nlc3NvcnlCYXJOZXh0KCk7CiAgICAgdm9pZCBrZXlib2FyZEFjY2Vz
c29yeUJhclByZXZpb3VzKCk7CiAKKyAgICAvLyBSZXR1cm5lZCBvYmplY3QgaXMgYSBkaWN0aW9u
YXJ5IHdpdGggdGhlIHBhc3NlZCBpbiBzdHJpbmcgYXMgYSBrZXkgZm9yIHJldHVybmVkIG9iamVj
dAorICAgIG9iamVjdCBjb250ZW50c09mVXNlckludGVyZmFjZUl0ZW0oRE9NU3RyaW5nIGludGVy
ZmFjZUl0ZW0pOworCiAgICAgLy8gVGhlc2UgY2FsbGJhY2tzIGFsc28gd29yayBmb3IgdGhlIGZv
cm0gYWNjZXNzb3J5IHZpZXdzLgogICAgIGF0dHJpYnV0ZSBvYmplY3QgZGlkU2hvd0tleWJvYXJk
Q2FsbGJhY2s7CiAgICAgYXR0cmlidXRlIG9iamVjdCBkaWRIaWRlS2V5Ym9hcmRDYWxsYmFjazsK
SW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRy
b2xsZXJJT1MubW0JKHJldmlzaW9uIDIwNjYxMCkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIv
aW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjQ3LDYgKzI0
NywxMyBAQCB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6c2VsZWN0Rm9ybUFjY2VzCiAgICAgVGVz
dFJ1bm5lcldLV2ViVmlldyAqd2ViVmlldyA9IFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5t
YWluV2ViVmlldygpLT5wbGF0Zm9ybVZpZXcoKTsKICAgICBbd2ViVmlldyBzZWxlY3RGb3JtQWNj
ZXNzb3J5UGlja2VyUm93OnJvd0luZGV4XTsKIH0KKyAgICAKK0pTT2JqZWN0UmVmIFVJU2NyaXB0
Q29udHJvbGxlcjo6Y29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtKEpTU3RyaW5nUmVmIGludGVy
ZmFjZUl0ZW0pIGNvbnN0Cit7CisgICAgVGVzdFJ1bm5lcldLV2ViVmlldyAqd2ViVmlldyA9IFRl
c3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVZpZXcoKTsK
KyAgICBOU0RpY3Rpb25hcnkgKmNvbnRlbnREaWN0aW9uYXJ5ID0gW3dlYlZpZXcgX2NvbnRlbnRz
T2ZVc2VySW50ZXJmYWNlSXRlbTp0b1dURlN0cmluZyh0b1dLKGludGVyZmFjZUl0ZW0pKV07Cisg
ICAgcmV0dXJuIEpTVmFsdWVUb09iamVjdChtX2NvbnRleHQtPmpzQ29udGV4dCgpLCBbSlNWYWx1
ZSB2YWx1ZVdpdGhPYmplY3Q6Y29udGVudERpY3Rpb25hcnkgaW5Db250ZXh0OltKU0NvbnRleHQg
Y29udGV4dFdpdGhKU0dsb2JhbENvbnRleHRSZWY6bV9jb250ZXh0LT5qc0NvbnRleHQoKV1dLkpT
VmFsdWVSZWYsIG51bGxwdHIpOworfQogCiBzdGF0aWMgQ0dQb2ludCBjb250ZW50T2Zmc2V0Qm91
bmRlZEluVmFsaWRSYW5nZShVSVNjcm9sbFZpZXcgKnNjcm9sbFZpZXcsIENHUG9pbnQgY29udGVu
dE9mZnNldCkKIHsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNjYxMCkKKysrIExheW91dFRlc3RzL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDE2LTA5LTI5ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgVGVzdCBmb3Ig
bG9uZyBwcmVzcyBvbiBpbWFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTYyNjU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvbG9uZy1wcmVzcy1vbi1pbWFnZS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy9sb25n
LXByZXNzLW9uLWltYWdlLmh0bWw6IEFkZGVkLgorCiAyMDE2LTA5LTI5ICBSeWFuIEhhZGRhZCAg
PHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92aW5nIEVsIENhcGl0YW4gbW9k
aWZpZXIgZnJvbSBmbGFreSB0ZXN0IG1lZGlhL3Jlc3RvcmUtZnJvbS1wYWdlLWNhY2hlLmh0bWwu
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvbG9uZy1wcmVzcy1vbi1p
bWFnZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
dG91Y2gvaW9zL2xvbmctcHJlc3Mtb24taW1hZ2UtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkK
KysrIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9sb25nLXByZXNzLW9uLWltYWdl
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUgQEAKK0F2YWlsYWJsZSBB
Y3Rpb25zOiAKK1NhdmUgSW1hZ2UKK0NvcHkKK0NhbmNlbAorUEFTUwpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2xvbmctcHJlc3Mtb24taW1hZ2UuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvbG9uZy1wcmVzcy1vbi1p
bWFnZS5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNo
L2lvcy9sb25nLXByZXNzLW9uLWltYWdlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3
MSBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGli
bGVWaWV3cG9ydD10cnVlIF0gLS0+CisKKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdD4KKyAg
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAg
ICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gZ2V0VUlTY3JpcHQoKQorICAgICAgICB7CisgICAg
ICAgICAgICByZXR1cm4gYAorICAgICAgICAgICAgKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgIHVpQ29udHJvbGxlci5sb25nUHJlc3NBdFBvaW50KDMwLCAyMCwgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgICAgIC8vdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoIkRvbmUi
KTsKKwkJCQkJdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoSlNPTi5zdHJpbmdpZnkodWlD
b250cm9sbGVyLmNvbnRlbnRzT2ZVc2VySW50ZXJmYWNlSXRlbSgnYWN0aW9uU2hlZXQnKSkpOwor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSkoKTtgCisgICAgICAgIH0KKworICAg
ICAgICBmdW5jdGlvbiBydW5UZXN0KCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCF0ZXN0
UnVubmVyLnJ1blVJU2NyaXB0KQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAg
ICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKKyAgICAg
ICAgICAgIC8vIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsIGZ1bmN0aW9uKGV2
ZW50KSB7CisgICAgICAgICAgICAvLyAgICAgb3V0cHV0ICs9ICdQQVNTOiBzdWNjZXNzZnVsbHkg
c2VsZWN0ZWQgdGhlIHdvcmQgJzsKKyAgICAgICAgICAgIC8vIH0pOworICAgICAgICAgICAgaWYg
KHRlc3RSdW5uZXIucnVuVUlTY3JpcHQpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1
blVJU2NyaXB0KGdldFVJU2NyaXB0KCksIGZ1bmN0aW9uKHJlc3VsdCkgeworCQkJCQl2YXIgYWN0
aW9uRGljdGlvbmFyeSA9IEpTT04ucGFyc2UocmVzdWx0KTsKKwkJCQkJdmFyIGFjdGlvblN0cmlu
Z3MgPSBhY3Rpb25EaWN0aW9uYXJ5LmFjdGlvblNoZWV0OworCQkJCQl2YXIgb3V0cHV0ID0gJyc7
CisJCQkJCQorCQkJCQlpZiAoYWN0aW9uU3RyaW5nc1swXSA9PSAnU2F2ZSBJbWFnZScgJiYgYWN0
aW9uU3RyaW5nc1sxXSA9PSAnQ29weScgJiYgYWN0aW9uU3RyaW5nc1syXSA9PSAnQ2FuY2VsJykg
eworCQkJCQkJb3V0cHV0ICs9ICdBdmFpbGFibGUgQWN0aW9uczogPGJyPic7CisJCQkJCQl2YXIg
YXJyYXlMZW5ndGggPSBhY3Rpb25TdHJpbmdzLmxlbmd0aDsKKwkJCQkJCWZvciAodmFyIGkgPSAw
OyBpIDwgYXJyYXlMZW5ndGg7IGkrKykgeworCQkJCQkJICAgIG91dHB1dCArPSBhY3Rpb25TdHJp
bmdzW2ldICsgJzxicj4nOworCQkJCQkJfQorCQkJCQkJb3V0cHV0ICs9ICdQQVNTJzsKKwkJCQkJ
fQorCQkJCQllbHNlCisJCQkJCQlvdXRwdXQgPSAnRkFJTCcKKworICAgICAgICAgICAgICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0JykuaW5uZXJIVE1MID0gb3V0cHV0Owor
ICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHdpbmRvdy5hZGRF
dmVudExpc3RlbmVyKCdsb2FkJywgcnVuVGVzdCwgZmFsc2UpOworICAgIDwvc2NyaXB0PgorICAg
IDxzdHlsZT4KKyAgICAgICAgI3RhcmdldCB7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4Owor
ICAgICAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjog
c2lsdmVyOworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9y
dCIgY29udGVudD0iaW5pdGlhbC1zY2FsZT0xIj4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0i
dGFyZ2V0Ij4KKwk8aW1nIHNyYz0iLi4vLi4vLi4vaW1hZ2VzL3Jlc291cmNlcy9kaWNlLnBuZyIg
d2lkdGg9IjMyMCIgaGVpZ2h0PSIyNDAiIGFsdD0iRGljZSI+CisgICAgVGhpcyB0ZXN0IHJlcXVp
cmVzIFVJU2NyaXB0Q29udHJvbGxlciB0byBydW4uCis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290353</attachid>
            <date>2016-09-30 11:17:59 -0700</date>
            <delta_ts>2016-09-30 11:41:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162657-20160930111456.patch</filename>
            <type>text/plain</type>
            <size>14118</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNjYxMCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDE2LTA5LTI5ICBNZWdhbiBH
YXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBpdCBwb3Nz
aWJsZSB0byB0ZXN0IHdlYi1yZWxhdGVkIHVzZXItaW50ZXJmYWNlIGZlYXR1cmVzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI2NTcKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0aGUgYWJpbGl0
eSB0byBwdWxsIHRoZSBzdHJpbmdzIGZyb20gYW4gQWN0aW9uIFNoZWV0IGFuZCBwYXNzIHRoZW0g
dG8KKyAgICAgICAgdGVzdCBzY3JpcHRzIHRvIG1ha2Ugc3VyZSB3ZSBhcmUgZ2l2aW5nIHRoZSBj
b3JyZWN0IGF2YWlsYWJsZSBhY3Rpb25zIGZvcgorICAgICAgICB0aGUgaXRlbSB3ZSBhcmUgaW50
ZXJhY3Rpbmcgd2l0aC4KKyAgICAgICAgQWRkZWQgYSB0ZXN0IGZvciBsb25nIHByZXNzIG9uIGFu
IGltYWdlLCBhbmQgdXNlZCB0aGUgc2hlZXQgc2NyYXBpbmcgZnVuY3Rpb25hbGl0eQorICAgICAg
ICB0byBtYWtlIHN1cmUgdGhhdCB0aGUgY29ycmVjdCBhY3Rpb25zIHdlcmUgYmVpbmcgZGlzcGxh
eWVkLgorICAgICAgICBUZXN0IGZvciBwcmV2aW91cyBwYXRjaCwgQ2hhbmdlc2V0IDIwNTkxNTsg
QnVnIDE2MTc2MQorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06
CisgICAgICAgICgtW1dLV2ViVmlldyBfY29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtOl0pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbToKKyAgICAgICAgKC1bV0tBY3Rp
b25TaGVldEFzc2lzdGFudCBjdXJyZW50QXZhaWxhYmxlQWN0aW9uU3RyaW5nc10pOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dL
Q29udGVudFZpZXcgX2NvbnRlbnRzT2ZVc2VySW50ZXJmYWNlSXRlbTpdKToKKwogMjAxNi0wOS0y
OSAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIEFsbG93IG92ZXJyaWRp
bmcgc29tZSBOU1VSTFNlc3Npb25Db25maWd1cmF0aW9uIHByb3BlcnRpZXMgb24gYSBwZXItTmV0
d29ya1Byb2Nlc3MgYmFzaXMKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tCShyZXZpc2lvbiAyMDY2MTApCisrKyBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtNDUx
OSw2ICs0NTE5LDExIEBAIC0gKHZvaWQpc2VsZWN0Rm9ybUFjY2Vzc29yeVBpY2tlclJvdzooaW4K
ICAgICBbX2NvbnRlbnRWaWV3IHNlbGVjdEZvcm1BY2Nlc3NvcnlQaWNrZXJSb3c6cm93SW5kZXhd
OwogfQogCistIChOU0RpY3Rpb25hcnkgKilfY29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtOihO
U1N0cmluZyAqKXVzZXJJbnRlcmZhY2VJdGVtCit7CisgICAgcmV0dXJuIFtfY29udGVudFZpZXcg
X2NvbnRlbnRzT2ZVc2VySW50ZXJmYWNlSXRlbTooTlNTdHJpbmcgKil1c2VySW50ZXJmYWNlSXRl
bV07Cit9CisKIC0gKHZvaWQpZGlkU3RhcnRGb3JtQ29udHJvbEludGVyYWN0aW9uCiB7CiAgICAg
Ly8gRm9yIHN1YmNsYXNzZXMgdG8gb3ZlcnJpZGUuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAkocmV2aXNpb24g
MjA2NjEwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQ
cml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2Myw2ICsyNjMsNyBAQCB0eXBlZGVmIE5TX0VO
VU0oTlNJbnRlZ2VyLCBfV0tJbW1lZGlhdGVBCiAtICh2b2lkKWtleWJvYXJkQWNjZXNzb3J5QmFy
UHJldmlvdXMgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTAuMCkpOwogLSAodm9pZClkaXNtaXNzRm9y
bUFjY2Vzc29yeVZpZXcgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwogLSAodm9p
ZClzZWxlY3RGb3JtQWNjZXNzb3J5UGlja2VyUm93OihpbnQpcm93SW5kZXggV0tfQVBJX0FWQUlM
QUJMRShpb3MoV0tfSU9TX1RCQSkpOworLSAoTlNEaWN0aW9uYXJ5ICopX2NvbnRlbnRzT2ZVc2Vy
SW50ZXJmYWNlSXRlbTooTlNTdHJpbmcgKil1c2VySW50ZXJmYWNlSXRlbSBXS19BUElfQVZBSUxB
QkxFKGlvcyhXS19JT1NfVEJBKSk7CiAKIC0gKHZvaWQpZGlkU3RhcnRGb3JtQ29udHJvbEludGVy
YWN0aW9uIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKIC0gKHZvaWQpZGlkRW5k
Rm9ybUNvbnRyb2xJbnRlcmFjdGlvbiBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3Rh
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQWN0aW9u
U2hlZXRBc3Npc3RhbnQuaAkocmV2aXNpb24gMjA2NjEwKQorKysgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTcy
LDYgKzcyLDcgQEAgc3RydWN0IEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOwogLSAo
UmV0YWluUHRyPE5TQXJyYXk+KWRlZmF1bHRBY3Rpb25zRm9yTGlua1NoZWV0OihfV0tBY3RpdmF0
ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnRJbmZvOwogLSAoUmV0YWluUHRyPE5TQXJyYXk+KWRlZmF1
bHRBY3Rpb25zRm9ySW1hZ2VTaGVldDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50
SW5mbzsKIC0gKEJPT0wpaXNTaG93aW5nU2hlZXQ7CistIChOU0FycmF5ICopY3VycmVudEF2YWls
YWJsZUFjdGlvblRpdGxlczsKIEBlbmQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRB
c3Npc3RhbnQubW0JKHJldmlzaW9uIDIwNjYxMCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbQkod29ya2luZyBjb3B5KQpAQCAtMjEzLDYg
KzIxMywxOSBAQCAtIChCT09MKWlzU2hvd2luZ1NoZWV0CiAgICAgcmV0dXJuIF9pbnRlcmFjdGlv
blNoZWV0ICE9IG5pbDsKIH0KIAorLSAoTlNBcnJheSAqKWN1cnJlbnRBdmFpbGFibGVBY3Rpb25U
aXRsZXMKK3sKKyAgICBpZiAoIV9pbnRlcmFjdGlvblNoZWV0KQorICAgICAgICByZXR1cm4gQFtd
OworICAgIAorICAgIE5TTXV0YWJsZUFycmF5ICphcnJheSA9IFtOU011dGFibGVBcnJheSBhcnJh
eV07CisgICAgCisgICAgZm9yIChVSUFsZXJ0QWN0aW9uICphY3Rpb24gaW4gX2ludGVyYWN0aW9u
U2hlZXQuZ2V0KCkuYWN0aW9ucykKKyAgICAgICAgW2FycmF5IGFkZE9iamVjdDphY3Rpb24udGl0
bGVdOworICAgIAorICAgIHJldHVybiBhcnJheTsKK30KKwogLSAodm9pZClfY3JlYXRlU2hlZXRX
aXRoRWxlbWVudEFjdGlvbnM6KE5TQXJyYXkgKilhY3Rpb25zIHNob3dMaW5rVGl0bGU6KEJPT0wp
c2hvd0xpbmtUaXRsZQogewogICAgIGF1dG8gZGVsZWdhdGUgPSBfZGVsZWdhdGUuZ2V0KCk7Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLmgJKHJldmlzaW9uIDIwNjYxMCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAg
LTIzMSw2ICsyMzEsNyBAQCBzdHJ1Y3QgV0tBdXRvQ29ycmVjdGlvbkRhdGEgewogQGludGVyZmFj
ZSBXS0NvbnRlbnRWaWV3IChXS1Rlc3RpbmcpCiAKIC0gKHZvaWQpc2VsZWN0Rm9ybUFjY2Vzc29y
eVBpY2tlclJvdzooTlNJbnRlZ2VyKXJvd0luZGV4OworLSAoTlNEaWN0aW9uYXJ5ICopX2NvbnRl
bnRzT2ZVc2VySW50ZXJmYWNlSXRlbTooTlNTdHJpbmcgKil1c2VySW50ZXJmYWNlSXRlbTsKIAog
QGVuZAogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQkocmV2aXNpb24gMjA2NjEwKQorKysgU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0JKHdvcmtp
bmcgY29weSkKQEAgLTM4NDksNiArMzg0OSwxNCBAQCAtICh2b2lkKXNlbGVjdEZvcm1BY2Nlc3Nv
cnlQaWNrZXJSb3c6KE5TCiAgICAgICAgIFsoV0tGb3JtU2VsZWN0Q29udHJvbCAqKV9pbnB1dFBl
cmlwaGVyYWwgc2VsZWN0Um93OnJvd0luZGV4IGluQ29tcG9uZW50OjAgZXh0ZW5kaW5nU2VsZWN0
aW9uOk5PXTsKIH0KIAorLSAoTlNEaWN0aW9uYXJ5ICopX2NvbnRlbnRzT2ZVc2VySW50ZXJmYWNl
SXRlbTooTlNTdHJpbmcgKil1c2VySW50ZXJmYWNlSXRlbQoreworICAgIGlmIChbdXNlckludGVy
ZmFjZUl0ZW0gaXNFcXVhbFRvU3RyaW5nOkAiYWN0aW9uU2hlZXQiXSkKKyAgICAgICAgcmV0dXJu
IEB7IHVzZXJJbnRlcmZhY2VJdGVtOiBbX2FjdGlvblNoZWV0QXNzaXN0YW50IGN1cnJlbnRBdmFp
bGFibGVBY3Rpb25UaXRsZXNdIH07CisgICAgCisgICAgcmV0dXJuIG5pbDsKK30KKwogQGVuZAog
CiAjaWYgSEFWRShMSU5LX1BSRVZJRVcpCkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMDY2MjApCisrKyBUb29scy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMiBAQAorMjAxNi0wOS0yOSAgTWVnYW4gR2Fy
ZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgaXQgcG9zc2li
bGUgdG8gdGVzdCB3ZWItcmVsYXRlZCB1c2VyLWludGVyZmFjZSBmZWF0dXJlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyNjU3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9p
b3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRy
b2xsZXI6OmNvbnRlbnRzT2ZVc2VySW50ZXJmYWNlSXRlbSk6CisgICAgICAgIChXVFI6OlVJU2Ny
aXB0Q29udHJvbGxlcjo6c2VsZWN0Rm9ybUFjY2Vzc29yeVBpY2tlclJvdyk6IERlbGV0ZWQuCisg
ICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3Jp
cHRDb250cm9sbGVyLmlkbDoKKyAgICAgICAgKiBUZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29u
dGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRy
b2xsZXI6OmNvbnRlbnRzT2ZVc2VySW50ZXJmYWNlSXRlbSk6CisgICAgICAgIChXVFI6OlVJU2Ny
aXB0Q29udHJvbGxlcjo6c2VsZWN0Rm9ybUFjY2Vzc29yeVBpY2tlclJvdyk6IERlbGV0ZWQuCisg
ICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9s
bGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVy
SU9TLm1tOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OmNvbnRlbnRzT2ZVc2Vy
SW50ZXJmYWNlSXRlbSk6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6c2VsZWN0
Rm9ybUFjY2Vzc29yeVBpY2tlclJvdyk6IERlbGV0ZWQuCisKIDIwMTYtMDktMjkgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBGaXggc3ludGF4
IHZpb2xhdGlvbiBoYW5kbGluZyBpbiBJUHY0IGFkZHJlc3MgcGFyc2luZwpJbmRleDogVG9vbHMv
RHVtcFJlbmRlclRyZWUvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9EdW1wUmVuZGVyVHJlZS9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tCShyZXZp
c2lvbiAyMDY2MTApCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9pb3MvVUlTY3JpcHRDb250cm9s
bGVySU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMjcsNiArMTI3LDExIEBAIHZvaWQgVUlTY3Jp
cHRDb250cm9sbGVyOjpkaXNtaXNzRm9ybUFjY2UKIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpz
ZWxlY3RGb3JtQWNjZXNzb3J5UGlja2VyUm93KGxvbmcgcm93SW5kZXgpCiB7CiB9CisgICAgCitK
U09iamVjdFJlZiBVSVNjcmlwdENvbnRyb2xsZXI6OmNvbnRlbnRzT2ZVc2VySW50ZXJmYWNlSXRl
bShKU1N0cmluZ1JlZiBpbnRlcmZhY2VJdGVtKSBjb25zdAoreworICAgIHJldHVybiBudWxscHRy
OworfQogCiB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6c2Nyb2xsVG9PZmZzZXQobG9uZywgbG9u
ZykKIHsKSW5kZXg6IFRvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2Ny
aXB0Q29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9V
SVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNwcAkocmV2aXNpb24gMjA2NjEwKQor
KysgVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9s
bGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTk5LDYgKzE5OSwxMSBAQCB2b2lkIFVJU2NyaXB0
Q29udHJvbGxlcjo6ZGlzbWlzc0Zvcm1BY2NlCiB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6c2Vs
ZWN0Rm9ybUFjY2Vzc29yeVBpY2tlclJvdyhsb25nKQogewogfQorICAgIAorSlNPYmplY3RSZWYg
VUlTY3JpcHRDb250cm9sbGVyOjpjb250ZW50c09mVXNlckludGVyZmFjZUl0ZW0oSlNTdHJpbmdS
ZWYgaW50ZXJmYWNlSXRlbSkgY29uc3QKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KIAogdm9p
ZCBVSVNjcmlwdENvbnRyb2xsZXI6OnNjcm9sbFRvT2Zmc2V0KGxvbmcgeCwgbG9uZyB5KQogewpJ
bmRleDogVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250
cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENv
bnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmgJKHJldmlzaW9uIDIwNjYxMCkKKysrIFRvb2xzL1Rl
c3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC03NCw2ICs3NCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpc21pc3NGb3Jt
QWNjZXNzb3J5VmlldygpOwogICAgIHZvaWQgc2VsZWN0Rm9ybUFjY2Vzc29yeVBpY2tlclJvdyhs
b25nKTsKICAgICAKKyAgICBKU09iamVjdFJlZiBjb250ZW50c09mVXNlckludGVyZmFjZUl0ZW0o
SlNTdHJpbmdSZWYpIGNvbnN0OworICAgIAogICAgIHZvaWQgc2Nyb2xsVG9PZmZzZXQobG9uZyB4
LCBsb25nIHkpOwogCiAgICAgdm9pZCBzZXREaWRTdGFydEZvcm1Db250cm9sSW50ZXJhY3Rpb25D
YWxsYmFjayhKU1ZhbHVlUmVmKTsKSW5kZXg6IFRvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3Jp
cHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRD
b250cm9sbGVyLmlkbAkocmV2aXNpb24gMjA2NjEwKQorKysgVG9vbHMvVGVzdFJ1bm5lclNoYXJl
ZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbAkod29ya2lu
ZyBjb3B5KQpAQCAtNjIsNiArNjIsOSBAQCBpbnRlcmZhY2UgVUlTY3JpcHRDb250cm9sbGVyIHsK
ICAgICB2b2lkIGtleWJvYXJkQWNjZXNzb3J5QmFyTmV4dCgpOwogICAgIHZvaWQga2V5Ym9hcmRB
Y2Nlc3NvcnlCYXJQcmV2aW91cygpOwogCisgICAgLy8gUmV0dXJuZWQgb2JqZWN0IGlzIGEgZGlj
dGlvbmFyeSB3aXRoIHRoZSBwYXNzZWQgaW4gc3RyaW5nIGFzIGEga2V5IGZvciByZXR1cm5lZCBv
YmplY3QKKyAgICBvYmplY3QgY29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtKERPTVN0cmluZyBp
bnRlcmZhY2VJdGVtKTsKKwogICAgIC8vIFRoZXNlIGNhbGxiYWNrcyBhbHNvIHdvcmsgZm9yIHRo
ZSBmb3JtIGFjY2Vzc29yeSB2aWV3cy4KICAgICBhdHRyaWJ1dGUgb2JqZWN0IGRpZFNob3dLZXli
b2FyZENhbGxiYWNrOwogICAgIGF0dHJpYnV0ZSBvYmplY3QgZGlkSGlkZUtleWJvYXJkQ2FsbGJh
Y2s7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJ
T1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRD
b250cm9sbGVySU9TLm1tCShyZXZpc2lvbiAyMDY2MTApCisrKyBUb29scy9XZWJLaXRUZXN0UnVu
bmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTI0Nyw2
ICsyNDcsMTMgQEAgdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnNlbGVjdEZvcm1BY2NlcwogICAg
IFRlc3RSdW5uZXJXS1dlYlZpZXcgKndlYlZpZXcgPSBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9u
KCkubWFpbldlYlZpZXcoKS0+cGxhdGZvcm1WaWV3KCk7CiAgICAgW3dlYlZpZXcgc2VsZWN0Rm9y
bUFjY2Vzc29yeVBpY2tlclJvdzpyb3dJbmRleF07CiB9CisgICAgCitKU09iamVjdFJlZiBVSVNj
cmlwdENvbnRyb2xsZXI6OmNvbnRlbnRzT2ZVc2VySW50ZXJmYWNlSXRlbShKU1N0cmluZ1JlZiBp
bnRlcmZhY2VJdGVtKSBjb25zdAoreworICAgIFRlc3RSdW5uZXJXS1dlYlZpZXcgKndlYlZpZXcg
PSBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkubWFpbldlYlZpZXcoKS0+cGxhdGZvcm1WaWV3
KCk7CisgICAgTlNEaWN0aW9uYXJ5ICpjb250ZW50RGljdGlvbmFyeSA9IFt3ZWJWaWV3IF9jb250
ZW50c09mVXNlckludGVyZmFjZUl0ZW06dG9XVEZTdHJpbmcodG9XSyhpbnRlcmZhY2VJdGVtKSld
OworICAgIHJldHVybiBKU1ZhbHVlVG9PYmplY3QobV9jb250ZXh0LT5qc0NvbnRleHQoKSwgW0pT
VmFsdWUgdmFsdWVXaXRoT2JqZWN0OmNvbnRlbnREaWN0aW9uYXJ5IGluQ29udGV4dDpbSlNDb250
ZXh0IGNvbnRleHRXaXRoSlNHbG9iYWxDb250ZXh0UmVmOm1fY29udGV4dC0+anNDb250ZXh0KCld
XS5KU1ZhbHVlUmVmLCBudWxscHRyKTsKK30KIAogc3RhdGljIENHUG9pbnQgY29udGVudE9mZnNl
dEJvdW5kZWRJblZhbGlkUmFuZ2UoVUlTY3JvbGxWaWV3ICpzY3JvbGxWaWV3LCBDR1BvaW50IGNv
bnRlbnRPZmZzZXQpCiB7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMDY2MTApCisrKyBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxNi0wOS0yOSAg
TWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2Ug
aXQgcG9zc2libGUgdG8gdGVzdCB3ZWItcmVsYXRlZCB1c2VyLWludGVyZmFjZSBmZWF0dXJlcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyNjU3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2V2
ZW50cy90b3VjaC9pb3MvbG9uZy1wcmVzcy1vbi1pbWFnZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy9sb25nLXByZXNzLW9uLWltYWdlLmh0bWw6
IEFkZGVkLgorCiAyMDE2LTA5LTI5ICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29t
PgogCiAgICAgICAgIFJlbW92aW5nIEVsIENhcGl0YW4gbW9kaWZpZXIgZnJvbSBmbGFreSB0ZXN0
IG1lZGlhL3Jlc3RvcmUtZnJvbS1wYWdlLWNhY2hlLmh0bWwuCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy90b3VjaC9pb3MvbG9uZy1wcmVzcy1vbi1pbWFnZS1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2xvbmctcHJlc3Mt
b24taW1hZ2UtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3RvdWNoL2lvcy9sb25nLXByZXNzLW9uLWltYWdlLWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDUgQEAKK0F2YWlsYWJsZSBBY3Rpb25zOiAKK1NhdmUgSW1hZ2UK
K0NvcHkKK0NhbmNlbAorUEFTUwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gv
aW9zL2xvbmctcHJlc3Mtb24taW1hZ2UuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy90b3VjaC9pb3MvbG9uZy1wcmVzcy1vbi1pbWFnZS5odG1sCShub25leGlzdGVu
dCkKKysrIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9sb25nLXByZXNzLW9uLWlt
YWdlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2NCBAQAorPCFET0NUWVBFIGh0bWw+
IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+
CisKKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICB9CisKKyAgICAgICAgZnVu
Y3Rpb24gZ2V0VUlTY3JpcHQoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gYAorICAg
ICAgICAgICAgKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci5sb25n
UHJlc3NBdFBvaW50KDMwLCAyMCwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHVp
Q29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKEpTT04uc3RyaW5naWZ5KHVpQ29udHJvbGxlci5j
b250ZW50c09mVXNlckludGVyZmFjZUl0ZW0oJ2FjdGlvblNoZWV0JykpKTsKKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICB9KSgpO2AKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0
aW9uIHJ1blRlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIucnVu
VUlTY3JpcHQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICB2YXIgdGFy
Z2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOworICAgICAgICAgICAgaWYg
KHRlc3RSdW5uZXIucnVuVUlTY3JpcHQpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1
blVJU2NyaXB0KGdldFVJU2NyaXB0KCksIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgICAg
ICAgICAgICB2YXIgYWN0aW9uRGljdGlvbmFyeSA9IEpTT04ucGFyc2UocmVzdWx0KTsKKyAgICAg
ICAgICAgICAgICAgICAgdmFyIGFjdGlvblN0cmluZ3MgPSBhY3Rpb25EaWN0aW9uYXJ5LmFjdGlv
blNoZWV0OworICAgICAgICAgICAgICAgICAgICB2YXIgb3V0cHV0ID0gJyc7CisgICAgICAgICAg
ICAgICAgICAgIGlmIChhY3Rpb25TdHJpbmdzWzBdID09ICdTYXZlIEltYWdlJyAmJiBhY3Rpb25T
dHJpbmdzWzFdID09ICdDb3B5JyAmJiBhY3Rpb25TdHJpbmdzWzJdID09ICdDYW5jZWwnKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0F2YWlsYWJsZSBBY3Rpb25zOiA8YnI+
JzsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAgYWN0aW9uU3RyaW5ncy5qb2lu
KCc8YnI+Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJzxicj4nOworICAg
ICAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdQQVNTJzsKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICBv
dXRwdXQgPSAnRkFJTCcKKworICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndGFyZ2V0JykuaW5uZXJIVE1MID0gb3V0cHV0OworICAgICAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywg
cnVuVGVzdCwgZmFsc2UpOworICAgIDwvc2NyaXB0PgorICAgIDxzdHlsZT4KKyAgICAgICAgI3Rh
cmdldCB7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICAgICAgd2lkdGg6IDIw
MHB4OworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogc2lsdmVyOworICAgICAgICB9Cisg
ICAgPC9zdHlsZT4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0iaW5pdGlhbC1z
Y2FsZT0xIj4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0idGFyZ2V0Ij4KKyAgICA8aW1nIHNy
Yz0iLi4vLi4vLi4vaW1hZ2VzL3Jlc291cmNlcy9kaWNlLnBuZyIgd2lkdGg9IjMyMCIgaGVpZ2h0
PSIyNDAiIGFsdD0iRGljZSI+CisgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIFVJU2NyaXB0Q29udHJv
bGxlciB0byBydW4uCis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>