<?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>170424</bug_id>
          
          <creation_ts>2017-04-03 15:02:45 -0700</creation_ts>
          <short_desc>AX: Expose link children when doing search predication on iOS</short_desc>
          <delta_ts>2017-04-03 16:06:29 -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>Accessibility</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Nan Wang">n_wang</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>buildbot</cc>
    
    <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>n_wang</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1293832</commentid>
    <comment_count>0</comment_count>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2017-04-03 15:02:45 -0700</bug_when>
    <thetext>Since the children of the links are exposed on iOS instead of the link itself most of the time. We should expose the children when doing search predication.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1293845</commentid>
    <comment_count>1</comment_count>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2017-04-03 15:07:54 -0700</bug_when>
    <thetext>&lt;rdar://problem/31413335&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1293856</commentid>
    <comment_count>2</comment_count>
      <attachid>306123</attachid>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2017-04-03 15:14:24 -0700</bug_when>
    <thetext>Created attachment 306123
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1293859</commentid>
    <comment_count>3</comment_count>
      <attachid>306123</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2017-04-03 15:27:46 -0700</bug_when>
    <thetext>Comment on attachment 306123
patch

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

&gt; Source/WebCore/ChangeLog:7
&gt; +        Since the children of the links are exposed on iOS instead of the link itself

The children of links are accessible elements on iOS instead of the link itself, so we should expose the children when doing predicated searches as well.

&gt; Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:665
&gt; +    NSDictionary *parameterizedAttribute = searchPredicateParameterizedAttributeForSearchCriteria(context, startElement, isDirectionNext, 5, searchKey, searchText, visibleOnly, immediateDescendantsOnly);

any reason you chose five?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1293866</commentid>
    <comment_count>4</comment_count>
      <attachid>306123</attachid>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2017-04-03 15:30:00 -0700</bug_when>
    <thetext>Comment on attachment 306123
patch

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

&gt;&gt; Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:665
&gt;&gt; +    NSDictionary *parameterizedAttribute = searchPredicateParameterizedAttributeForSearchCriteria(context, startElement, isDirectionNext, 5, searchKey, searchText, visibleOnly, immediateDescendantsOnly);
&gt; 
&gt; any reason you chose five?

I just picked a number thats greater than 1, and I think 5 should be enough for normal test cases. Do you have any suggestion ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1293875</commentid>
    <comment_count>5</comment_count>
      <attachid>306123</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2017-04-03 15:34:11 -0700</bug_when>
    <thetext>Comment on attachment 306123
patch

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

&gt;&gt;&gt; Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:665
&gt;&gt;&gt; +    NSDictionary *parameterizedAttribute = searchPredicateParameterizedAttributeForSearchCriteria(context, startElement, isDirectionNext, 5, searchKey, searchText, visibleOnly, immediateDescendantsOnly);
&gt;&gt; 
&gt;&gt; any reason you chose five?
&gt; 
&gt; I just picked a number thats greater than 1, and I think 5 should be enough for normal test cases. Do you have any suggestion ?

probably fine as is</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1293878</commentid>
    <comment_count>6</comment_count>
      <attachid>306132</attachid>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2017-04-03 15:37:38 -0700</bug_when>
    <thetext>Created attachment 306132
patch

updated from review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1293887</commentid>
    <comment_count>7</comment_count>
      <attachid>306132</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-03 16:06:28 -0700</bug_when>
    <thetext>Comment on attachment 306132
patch

Clearing flags on attachment: 306132

Committed r214851: &lt;http://trac.webkit.org/changeset/214851&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1293888</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-03 16:06:29 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306123</attachid>
            <date>2017-04-03 15:14:24 -0700</date>
            <delta_ts>2017-04-03 15:37:38 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>10227</size>
            <attacher name="Nan Wang">n_wang</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNDcxOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE3LTA0LTAzICBOYW4gV2Fu
ZyAgPG5fd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IEV4cG9zZSBsaW5rIGNoaWxkcmVu
IHdoZW4gZG9pbmcgc2VhcmNoIHByZWRpY2F0aW9uIG9uIGlPUworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNDI0CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8zMTQxMzMzNT4KKworICAgICAgICBTaW5jZSB0aGUgY2hpbGRyZW4gb2YgdGhlIGxpbmtz
IGFyZSBleHBvc2VkIG9uIGlPUyBpbnN0ZWFkIG9mIHRoZSBsaW5rIGl0c2VsZgorICAgICAgICBt
b3N0IG9mIHRoZSB0aW1lLiBXZSBzaG91bGQgZXhwb3NlIHRoZSBjaGlsZHJlbiB3aGVuIGRvaW5n
IHNlYXJjaCBwcmVkaWNhdGlvbi4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUZXN0OiBhY2Nlc3NpYmlsaXR5L2lvcy1zaW11bGF0b3IvaW9zLXNlYXJj
aC1wcmVkaWNhdGUtbGluay1jaGlsZHJlbi5odG1sCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eU9iamVjdDo6aXNBY2Nlc3NpYmlsaXR5T2JqZWN0U2VhcmNoTWF0Y2hBdEluZGV4KToKKwogMjAx
Ny0wNC0wMSAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFtYY29k
ZV0gSW4gZW5naW5lZXJpbmcgYnVpbGRzLCBsaW5rZXIgd2FybnMgYWJvdXQgbGlid2VicnRjLmR5
bGli4oCZcyBpbnN0YWxsIG5hbWUgYmVpbmcgaW52YWxpZApJbmRleDogU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCShyZXZpc2lv
biAyMTQ3MTgpCisrKyBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDEsOCArMjAxLDE0IEBAIGJvb2wgQWNjZXNz
aWJpbGl0eU9iamVjdDo6aXNBY2Nlc3NpYmlsaXQKICAgICBjYXNlIExhbmRtYXJrU2VhcmNoS2V5
OgogICAgICAgICByZXR1cm4gYXhPYmplY3QtPmlzTGFuZG1hcmsoKTsKICAgICAgICAgCi0gICAg
Y2FzZSBMaW5rU2VhcmNoS2V5OgotICAgICAgICByZXR1cm4gYXhPYmplY3QtPmlzTGluaygpOwor
ICAgIGNhc2UgTGlua1NlYXJjaEtleTogeworICAgICAgICBib29sIGlzTGluayA9IGF4T2JqZWN0
LT5pc0xpbmsoKTsKKyNpZiBQTEFURk9STShJT1MpCisgICAgICAgIGlmICghaXNMaW5rKQorICAg
ICAgICAgICAgaXNMaW5rID0gYXhPYmplY3QtPmlzRGVzY2VuZGFudE9mUm9sZShXZWJDb3JlTGlu
a1JvbGUpOworI2VuZGlmCisgICAgICAgIHJldHVybiBpc0xpbms7CisgICAgfQogICAgICAgICAK
ICAgICBjYXNlIExpc3RTZWFyY2hLZXk6CiAgICAgICAgIHJldHVybiBheE9iamVjdC0+aXNMaXN0
KCk7CkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMTQ4NDMpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwxNiBAQAorMjAxNy0wNC0wMyAgTmFuIFdhbmcgIDxuX3dhbmdAYXBwbGUuY29tPgor
CisgICAgICAgIEFYOiBFeHBvc2UgbGluayBjaGlsZHJlbiB3aGVuIGRvaW5nIHNlYXJjaCBwcmVk
aWNhdGlvbiBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE3MDQyNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzE0MTMzMzU+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbToKKyAgICAgICAgKEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnVpRWxlbWVudEZvclNlYXJjaFByZWRpY2F0ZSk6CisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElP
Uy5tbToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dWlFbGVtZW50Rm9y
U2VhcmNoUHJlZGljYXRlKToKKwogMjAxNy0wNC0wMyAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxl
LmNvbT4KIAogICAgICAgICBydW4tc2FmYXJpIHNob3VsZCBzdXBwb3J0IGxhdW5jaGluZyB3aXRo
IGN1c3RvbSBsYW5ndWFnZSBhbmQgbG9jYWxlCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9p
b3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1w
UmVuZGVyVHJlZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQkocmV2aXNpb24gMjE0
NzE4KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJ
T1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTExMjMsMTEgKzExMjMsMTUgQEAgdW5zaWduZWQgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6dWlFbGVtZQogCiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnVpRWxlbWVudEZvclNlYXJjaFByZWRpY2F0ZShKU0NvbnRl
eHRSZWYgY29udGV4dCwgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCAqc3RhcnRFbGVtZW50LCBib29s
IGlzRGlyZWN0aW9uTmV4dCwgSlNWYWx1ZVJlZiBzZWFyY2hLZXksIEpTU3RyaW5nUmVmIHNlYXJj
aFRleHQsIGJvb2wgdmlzaWJsZU9ubHksIGJvb2wgaW1tZWRpYXRlRGVzY2VuZGFudHNPbmx5KQog
ewotICAgIE5TRGljdGlvbmFyeSAqcGFyYW1ldGVyaXplZEF0dHJpYnV0ZSA9IHNlYXJjaFByZWRp
Y2F0ZVBhcmFtZXRlcml6ZWRBdHRyaWJ1dGVGb3JTZWFyY2hDcml0ZXJpYShjb250ZXh0LCBzdGFy
dEVsZW1lbnQsIGlzRGlyZWN0aW9uTmV4dCwgMSwgc2VhcmNoS2V5LCBzZWFyY2hUZXh0LCB2aXNp
YmxlT25seSwgaW1tZWRpYXRlRGVzY2VuZGFudHNPbmx5KTsKKyAgICBOU0RpY3Rpb25hcnkgKnBh
cmFtZXRlcml6ZWRBdHRyaWJ1dGUgPSBzZWFyY2hQcmVkaWNhdGVQYXJhbWV0ZXJpemVkQXR0cmli
dXRlRm9yU2VhcmNoQ3JpdGVyaWEoY29udGV4dCwgc3RhcnRFbGVtZW50LCBpc0RpcmVjdGlvbk5l
eHQsIDUsIHNlYXJjaEtleSwgc2VhcmNoVGV4dCwgdmlzaWJsZU9ubHksIGltbWVkaWF0ZURlc2Nl
bmRhbnRzT25seSk7CiAgICAgaWQgdmFsdWUgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlGaW5k
TWF0Y2hpbmdPYmplY3RzOnBhcmFtZXRlcml6ZWRBdHRyaWJ1dGVdOwogICAgIGlmICghW3ZhbHVl
IGlzS2luZE9mQ2xhc3M6W05TQXJyYXkgY2xhc3NdXSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
Ci0gICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQoW3ZhbHVlIGxhc3RPYmplY3RdKTsK
KyAgICBmb3IgKGlkIGVsZW1lbnQgaW4gdmFsdWUpIHsKKyAgICAgICAgaWYgKFtlbGVtZW50IGlz
QWNjZXNzaWJpbGl0eUVsZW1lbnRdKQorICAgICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQoZWxlbWVudCk7CisgICAgfQorICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50KFt2YWx1ZSBmaXJzdE9iamVjdF0pOwogfQogCiBKU1N0cmluZ1JlZiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpzZWxlY3RUZXh0V2l0aENyaXRlcmlhKEpTQ29udGV4dFJlZiBjb250ZXh0LCBK
U1N0cmluZ1JlZiBhbWJpZ3VpdHlSZXNvbHV0aW9uLCBKU1ZhbHVlUmVmIHNlYXJjaFN0cmluZ3Ms
IEpTU3RyaW5nUmVmIHJlcGxhY2VtZW50U3RyaW5nLCBKU1N0cmluZ1JlZiBhY3Rpdml0eSkKSW5k
ZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnRJT1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQkocmV2aXNpb24g
MjE0NzE4KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQkod29ya2luZyBjb3B5KQpAQCAtNjYyLDExICs2NjIs
MTUgQEAgdW5zaWduZWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dWlFbGVtZQogCiBSZWZQdHI8
QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dWlFbGVtZW50
Rm9yU2VhcmNoUHJlZGljYXRlKEpTQ29udGV4dFJlZiBjb250ZXh0LCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50ICpzdGFydEVsZW1lbnQsIGJvb2wgaXNEaXJlY3Rpb25OZXh0LCBKU1ZhbHVlUmVmIHNl
YXJjaEtleSwgSlNTdHJpbmdSZWYgc2VhcmNoVGV4dCwgYm9vbCB2aXNpYmxlT25seSwgYm9vbCBp
bW1lZGlhdGVEZXNjZW5kYW50c09ubHkpCiB7Ci0gICAgTlNEaWN0aW9uYXJ5ICpwYXJhbWV0ZXJp
emVkQXR0cmlidXRlID0gc2VhcmNoUHJlZGljYXRlUGFyYW1ldGVyaXplZEF0dHJpYnV0ZUZvclNl
YXJjaENyaXRlcmlhKGNvbnRleHQsIHN0YXJ0RWxlbWVudCwgaXNEaXJlY3Rpb25OZXh0LCAxLCBz
ZWFyY2hLZXksIHNlYXJjaFRleHQsIHZpc2libGVPbmx5LCBpbW1lZGlhdGVEZXNjZW5kYW50c09u
bHkpOworICAgIE5TRGljdGlvbmFyeSAqcGFyYW1ldGVyaXplZEF0dHJpYnV0ZSA9IHNlYXJjaFBy
ZWRpY2F0ZVBhcmFtZXRlcml6ZWRBdHRyaWJ1dGVGb3JTZWFyY2hDcml0ZXJpYShjb250ZXh0LCBz
dGFydEVsZW1lbnQsIGlzRGlyZWN0aW9uTmV4dCwgNSwgc2VhcmNoS2V5LCBzZWFyY2hUZXh0LCB2
aXNpYmxlT25seSwgaW1tZWRpYXRlRGVzY2VuZGFudHNPbmx5KTsKICAgICBpZCB2YWx1ZSA9IFtt
X2VsZW1lbnQgYWNjZXNzaWJpbGl0eUZpbmRNYXRjaGluZ09iamVjdHM6cGFyYW1ldGVyaXplZEF0
dHJpYnV0ZV07CiAgICAgaWYgKCFbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNBcnJheSBjbGFzc11d
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6Y3JlYXRlKFt2YWx1ZSBsYXN0T2JqZWN0XSk7CisgICAgZm9yIChpZCBlbGVtZW50IGlu
IHZhbHVlKSB7CisgICAgICAgIGlmIChbZWxlbWVudCBpc0FjY2Vzc2liaWxpdHlFbGVtZW50XSkK
KyAgICAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUoZWxlbWVu
dCk7CisgICAgfQorICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUoW3Zh
bHVlIGZpcnN0T2JqZWN0XSk7CiB9CiAKIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpzZWxlY3RUZXh0V2l0aENyaXRlcmlhKEpTQ29udGV4dFJlZiwgSlNT
dHJpbmdSZWYgYW1iaWd1aXR5UmVzb2x1dGlvbiwgSlNWYWx1ZVJlZiBzZWFyY2hTdHJpbmdzLCBK
U1N0cmluZ1JlZiByZXBsYWNlbWVudFN0cmluZywgSlNTdHJpbmdSZWYgYWN0aXZpdHkpCkluZGV4
OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCShyZXZpc2lvbiAyMTQ3MTgpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxNy0wNC0wMyAgTmFuIFdhbmcgIDxuX3dhbmdAYXBw
bGUuY29tPgorCisgICAgICAgIEFYOiBFeHBvc2UgbGluayBjaGlsZHJlbiB3aGVuIGRvaW5nIHNl
YXJjaCBwcmVkaWNhdGlvbiBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3MDQyNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzE0MTMzMzU+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L2lvcy1zaW11bGF0b3IvaW9zLXNlYXJjaC1wcmVkaWNhdGUtbGluay1jaGlsZHJl
bi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaW9zLXNpbXVs
YXRvci9pb3Mtc2VhcmNoLXByZWRpY2F0ZS1saW5rLWNoaWxkcmVuLmh0bWw6IEFkZGVkLgorCiAy
MDE3LTA0LTAxICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAg
IFJvbGxpbmcgYmFjayBodHRwOi8vdHJhYy53ZWJraXQub3JnL3IyMTQ2NjMgLSBtZW1vcnkgY29y
cnVwdGlvbgpJbmRleDogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pb3Mtc2ltdWxhdG9yL2lv
cy1zZWFyY2gtcHJlZGljYXRlLWxpbmstY2hpbGRyZW4tZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaW9zLXNpbXVsYXRvci9pb3Mtc2VhcmNoLXBy
ZWRpY2F0ZS1saW5rLWNoaWxkcmVuLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2lvcy1zaW11bGF0b3IvaW9zLXNlYXJjaC1wcmVkaWNhdGUt
bGluay1jaGlsZHJlbi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMiBA
QAorc3RhcnQgdGV4dAorCitoZWFkaW5nIHRleHQKKworc3ViIHRleHQKK3N0YXJ0IHRleHQgMgor
CitsaW5rMiB0ZXh0IGxpbmszCitUaGlzIHRlc3RzIHRoZSBhYmlsaXR5IHRvIHNlYXJjaCBmb3Ig
ZXhwb3NlZCBsaW5rIGNoaWxkcmVuLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyByZXN1bHRFbGVtZW50LmRlc2NyaXB0aW9uIGlzICdBWExhYmVsOiBoZWFkaW5nIHRleHQn
CitQQVNTIHJlc3VsdEVsZW1lbnQuZGVzY3JpcHRpb24gaXMgJ0FYTGFiZWw6IHN1YiB0ZXh0Jwor
UEFTUyByZXN1bHRFbGVtZW50LmRlc2NyaXB0aW9uIGlzICdBWExhYmVsOiBoZWFkaW5nIHRleHQn
CitQQVNTIHJlc3VsdEVsZW1lbnQuZGVzY3JpcHRpb24gaXMgJ0FYTGFiZWw6IGxpbmsyIHRleHQn
CitQQVNTIHJlc3VsdEVsZW1lbnQuZGVzY3JpcHRpb24gaXMgJ0FYTGFiZWw6IGxpbmszJworUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaW9zLXNpbXVsYXRvci9pb3Mtc2VhcmNoLXByZWRpY2F0
ZS1saW5rLWNoaWxkcmVuLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9pb3Mtc2ltdWxhdG9yL2lvcy1zZWFyY2gtcHJlZGljYXRlLWxpbmstY2hpbGRyZW4uaHRt
bAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2lvcy1zaW11bGF0
b3IvaW9zLXNlYXJjaC1wcmVkaWNhdGUtbGluay1jaGlsZHJlbi5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsNjAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhU
TUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKworPHAg
aWQ9InN0YXJ0Ij5zdGFydCB0ZXh0PC9wPgorPGEgaWQ9ImxpbmsiIGhyZWY9JyMnPgorPGgzPmhl
YWRpbmcgdGV4dDwvaDM+Cis8ZGl2PnN1YiB0ZXh0PC9kaXY+Cis8L2E+CisKKzxwIGlkPSJzdGFy
dDIiPnN0YXJ0IHRleHQgMjwvcD4KKzxhIGlkPSJsaW5rMiIgaHJlZj0nIyc+Cis8c3Bhbj5saW5r
Mjwvc3Bhbj4KKzxzcGFuPiB0ZXh0PC9zcGFuPgorPC9hPgorPGEgaHJlZj0iIyI+bGluazM8L2E+
CisgICAgCis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorCis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoZSBhYmlsaXR5IHRv
IHNlYXJjaCBmb3IgZXhwb3NlZCBsaW5rIGNoaWxkcmVuLiIpOworICAgIAorICAgIGlmICh3aW5k
b3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICAgICAgd2luZG93LnRlc3RSdW5uZXIu
a2VlcFdlYkhpc3RvcnkoKTsKKyAgICAgICAgCisgICAgICAgIHZhciBjb250YWluZXJFbGVtZW50
ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIucm9vdEVsZW1lbnQ7CisgICAgICAgIHZhciBzdGFy
dEVsZW1lbnQgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQo
InN0YXJ0Iik7CisgICAgICAgIHZhciByZXN1bHRFbGVtZW50OworICAgICAgICAKKyAgICAgICAg
cmVzdWx0RWxlbWVudCA9IGNvbnRhaW5lckVsZW1lbnQudWlFbGVtZW50Rm9yU2VhcmNoUHJlZGlj
YXRlKHN0YXJ0RWxlbWVudCwgdHJ1ZSwgIkFYTGlua1NlYXJjaEtleSIsICIiLCBmYWxzZSk7Cisg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRFbGVtZW50LmRlc2NyaXB0aW9uIiwgIidBWExhYmVsOiBo
ZWFkaW5nIHRleHQnIik7CisgICAgICAgIAorICAgICAgICBzdGFydEVsZW1lbnQgPSByZXN1bHRF
bGVtZW50OworICAgICAgICByZXN1bHRFbGVtZW50ID0gY29udGFpbmVyRWxlbWVudC51aUVsZW1l
bnRGb3JTZWFyY2hQcmVkaWNhdGUoc3RhcnRFbGVtZW50LCB0cnVlLCAiQVhMaW5rU2VhcmNoS2V5
IiwgIiIsIGZhbHNlKTsKKyAgICAgICAgc2hvdWxkQmUoInJlc3VsdEVsZW1lbnQuZGVzY3JpcHRp
b24iLCAiJ0FYTGFiZWw6IHN1YiB0ZXh0JyIpOworICAgICAgICAKKyAgICAgICAgLy8gU2VhcmNo
IGJhY2t3YXJkcy4KKyAgICAgICAgc3RhcnRFbGVtZW50ID0gcmVzdWx0RWxlbWVudDsKKyAgICAg
ICAgcmVzdWx0RWxlbWVudCA9IGNvbnRhaW5lckVsZW1lbnQudWlFbGVtZW50Rm9yU2VhcmNoUHJl
ZGljYXRlKHN0YXJ0RWxlbWVudCwgZmFsc2UsICJBWExpbmtTZWFyY2hLZXkiLCAiIiwgZmFsc2Up
OworICAgICAgICBzaG91bGRCZSgicmVzdWx0RWxlbWVudC5kZXNjcmlwdGlvbiIsICInQVhMYWJl
bDogaGVhZGluZyB0ZXh0JyIpOworICAgICAgICAKKyAgICAgICAgLy8gVGVzdCB0aGUgY2FzZSB3
aGVyZSB0aGUgbGluayBpdHNlbGYgaXMgbm90IGlnbm9yZWQuCisgICAgICAgIHN0YXJ0RWxlbWVu
dCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgic3RhcnQy
Iik7CisgICAgICAgIHJlc3VsdEVsZW1lbnQgPSBjb250YWluZXJFbGVtZW50LnVpRWxlbWVudEZv
clNlYXJjaFByZWRpY2F0ZShzdGFydEVsZW1lbnQsIHRydWUsICJBWExpbmtTZWFyY2hLZXkiLCAi
IiwgZmFsc2UpOworICAgICAgICBzaG91bGRCZSgicmVzdWx0RWxlbWVudC5kZXNjcmlwdGlvbiIs
ICInQVhMYWJlbDogbGluazIgdGV4dCciKTsKKyAgICAgICAgCisgICAgICAgIHN0YXJ0RWxlbWVu
dCA9IHJlc3VsdEVsZW1lbnQ7CisgICAgICAgIHJlc3VsdEVsZW1lbnQgPSBjb250YWluZXJFbGVt
ZW50LnVpRWxlbWVudEZvclNlYXJjaFByZWRpY2F0ZShzdGFydEVsZW1lbnQsIHRydWUsICJBWExp
bmtTZWFyY2hLZXkiLCAiIiwgZmFsc2UpOworICAgICAgICBzaG91bGRCZSgicmVzdWx0RWxlbWVu
dC5kZXNjcmlwdGlvbiIsICInQVhMYWJlbDogbGluazMnIik7CisgICAgfQorICAgIAorPC9zY3Jp
cHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306132</attachid>
            <date>2017-04-03 15:37:38 -0700</date>
            <delta_ts>2017-04-03 16:06:28 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>10225</size>
            <attacher name="Nan Wang">n_wang</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNDcxOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE3LTA0LTAzICBOYW4gV2Fu
ZyAgPG5fd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IEV4cG9zZSBsaW5rIGNoaWxkcmVu
IHdoZW4gZG9pbmcgc2VhcmNoIHByZWRpY2F0aW9uIG9uIGlPUworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNDI0CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8zMTQxMzMzNT4KKworICAgICAgICBUaGUgY2hpbGRyZW4gb2YgbGlua3MgYXJlIGFjY2Vz
c2libGUgZWxlbWVudHMgb24gaU9TIGluc3RlYWQgb2YgdGhlIGxpbmsgaXRzZWxmLCAKKyAgICAg
ICAgc28gd2Ugc2hvdWxkIGV4cG9zZSB0aGUgY2hpbGRyZW4gd2hlbiBkb2luZyBwcmVkaWNhdGVk
IHNlYXJjaGVzIGFzIHdlbGwuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGVzdDogYWNjZXNzaWJpbGl0eS9pb3Mtc2ltdWxhdG9yL2lvcy1zZWFyY2gt
cHJlZGljYXRlLWxpbmstY2hpbGRyZW4uaHRtbAorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlP
YmplY3Q6OmlzQWNjZXNzaWJpbGl0eU9iamVjdFNlYXJjaE1hdGNoQXRJbmRleCk6CisKIDIwMTct
MDQtMDEgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBbWGNvZGVd
IEluIGVuZ2luZWVyaW5nIGJ1aWxkcywgbGlua2VyIHdhcm5zIGFib3V0IGxpYndlYnJ0Yy5keWxp
YuKAmXMgaW5zdGFsbCBuYW1lIGJlaW5nIGludmFsaWQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAkocmV2aXNpb24g
MjE0NzE4KQorKysgU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjAxLDggKzIwMSwxNCBAQCBib29sIEFjY2Vzc2li
aWxpdHlPYmplY3Q6OmlzQWNjZXNzaWJpbGl0CiAgICAgY2FzZSBMYW5kbWFya1NlYXJjaEtleToK
ICAgICAgICAgcmV0dXJuIGF4T2JqZWN0LT5pc0xhbmRtYXJrKCk7CiAgICAgICAgIAotICAgIGNh
c2UgTGlua1NlYXJjaEtleToKLSAgICAgICAgcmV0dXJuIGF4T2JqZWN0LT5pc0xpbmsoKTsKKyAg
ICBjYXNlIExpbmtTZWFyY2hLZXk6IHsKKyAgICAgICAgYm9vbCBpc0xpbmsgPSBheE9iamVjdC0+
aXNMaW5rKCk7CisjaWYgUExBVEZPUk0oSU9TKQorICAgICAgICBpZiAoIWlzTGluaykKKyAgICAg
ICAgICAgIGlzTGluayA9IGF4T2JqZWN0LT5pc0Rlc2NlbmRhbnRPZlJvbGUoV2ViQ29yZUxpbmtS
b2xlKTsKKyNlbmRpZgorICAgICAgICByZXR1cm4gaXNMaW5rOworICAgIH0KICAgICAgICAgCiAg
ICAgY2FzZSBMaXN0U2VhcmNoS2V5OgogICAgICAgICByZXR1cm4gYXhPYmplY3QtPmlzTGlzdCgp
OwpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwko
cmV2aXNpb24gMjE0ODQzKQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTYgQEAKKzIwMTctMDQtMDMgIE5hbiBXYW5nICA8bl93YW5nQGFwcGxlLmNvbT4KKwor
ICAgICAgICBBWDogRXhwb3NlIGxpbmsgY2hpbGRyZW4gd2hlbiBkb2luZyBzZWFyY2ggcHJlZGlj
YXRpb24gb24gaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzA0MjQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMxNDEzMzM1PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
aW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW06CisgICAgICAgIChBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojp1aUVsZW1lbnRGb3JTZWFyY2hQcmVkaWNhdGUpOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1Mu
bW06CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnVpRWxlbWVudEZvclNl
YXJjaFByZWRpY2F0ZSk6CisKIDIwMTctMDQtMDMgIEJyaWFuIEJ1cmcgIDxiYnVyZ0BhcHBsZS5j
b20+CiAKICAgICAgICAgcnVuLXNhZmFyaSBzaG91bGQgc3VwcG9ydCBsYXVuY2hpbmcgd2l0aCBj
dXN0b20gbGFuZ3VhZ2UgYW5kIGxvY2FsZQpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9z
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJl
bmRlclRyZWUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0JKHJldmlzaW9uIDIxNDcx
OCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9T
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMTIzLDExICsxMTIzLDE1IEBAIHVuc2lnbmVkIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OnVpRWxlbWUKIAogQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1lbnRGb3JTZWFyY2hQcmVkaWNhdGUoSlNDb250ZXh0
UmVmIGNvbnRleHQsIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQgKnN0YXJ0RWxlbWVudCwgYm9vbCBp
c0RpcmVjdGlvbk5leHQsIEpTVmFsdWVSZWYgc2VhcmNoS2V5LCBKU1N0cmluZ1JlZiBzZWFyY2hU
ZXh0LCBib29sIHZpc2libGVPbmx5LCBib29sIGltbWVkaWF0ZURlc2NlbmRhbnRzT25seSkKIHsK
LSAgICBOU0RpY3Rpb25hcnkgKnBhcmFtZXRlcml6ZWRBdHRyaWJ1dGUgPSBzZWFyY2hQcmVkaWNh
dGVQYXJhbWV0ZXJpemVkQXR0cmlidXRlRm9yU2VhcmNoQ3JpdGVyaWEoY29udGV4dCwgc3RhcnRF
bGVtZW50LCBpc0RpcmVjdGlvbk5leHQsIDEsIHNlYXJjaEtleSwgc2VhcmNoVGV4dCwgdmlzaWJs
ZU9ubHksIGltbWVkaWF0ZURlc2NlbmRhbnRzT25seSk7CisgICAgTlNEaWN0aW9uYXJ5ICpwYXJh
bWV0ZXJpemVkQXR0cmlidXRlID0gc2VhcmNoUHJlZGljYXRlUGFyYW1ldGVyaXplZEF0dHJpYnV0
ZUZvclNlYXJjaENyaXRlcmlhKGNvbnRleHQsIHN0YXJ0RWxlbWVudCwgaXNEaXJlY3Rpb25OZXh0
LCA1LCBzZWFyY2hLZXksIHNlYXJjaFRleHQsIHZpc2libGVPbmx5LCBpbW1lZGlhdGVEZXNjZW5k
YW50c09ubHkpOwogICAgIGlkIHZhbHVlID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5RmluZE1h
dGNoaW5nT2JqZWN0czpwYXJhbWV0ZXJpemVkQXR0cmlidXRlXTsKICAgICBpZiAoIVt2YWx1ZSBp
c0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNzXV0pCiAgICAgICAgIHJldHVybiBudWxscHRyOwot
ICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KFt2YWx1ZSBsYXN0T2JqZWN0XSk7Cisg
ICAgZm9yIChpZCBlbGVtZW50IGluIHZhbHVlKSB7CisgICAgICAgIGlmIChbZWxlbWVudCBpc0Fj
Y2Vzc2liaWxpdHlFbGVtZW50XSkKKyAgICAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50KGVsZW1lbnQpOworICAgIH0KKyAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dChbdmFsdWUgZmlyc3RPYmplY3RdKTsKIH0KIAogSlNTdHJpbmdSZWYgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6c2VsZWN0VGV4dFdpdGhDcml0ZXJpYShKU0NvbnRleHRSZWYgY29udGV4dCwgSlNT
dHJpbmdSZWYgYW1iaWd1aXR5UmVzb2x1dGlvbiwgSlNWYWx1ZVJlZiBzZWFyY2hTdHJpbmdzLCBK
U1N0cmluZ1JlZiByZXBsYWNlbWVudFN0cmluZywgSlNTdHJpbmdSZWYgYWN0aXZpdHkpCkluZGV4
OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50SU9TLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0JKHJldmlzaW9uIDIx
NDcxOCkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnRJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTY2MiwxMSArNjYyLDE1
IEBAIHVuc2lnbmVkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnVpRWxlbWUKIAogUmVmUHRyPEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnVpRWxlbWVudEZv
clNlYXJjaFByZWRpY2F0ZShKU0NvbnRleHRSZWYgY29udGV4dCwgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudCAqc3RhcnRFbGVtZW50LCBib29sIGlzRGlyZWN0aW9uTmV4dCwgSlNWYWx1ZVJlZiBzZWFy
Y2hLZXksIEpTU3RyaW5nUmVmIHNlYXJjaFRleHQsIGJvb2wgdmlzaWJsZU9ubHksIGJvb2wgaW1t
ZWRpYXRlRGVzY2VuZGFudHNPbmx5KQogewotICAgIE5TRGljdGlvbmFyeSAqcGFyYW1ldGVyaXpl
ZEF0dHJpYnV0ZSA9IHNlYXJjaFByZWRpY2F0ZVBhcmFtZXRlcml6ZWRBdHRyaWJ1dGVGb3JTZWFy
Y2hDcml0ZXJpYShjb250ZXh0LCBzdGFydEVsZW1lbnQsIGlzRGlyZWN0aW9uTmV4dCwgMSwgc2Vh
cmNoS2V5LCBzZWFyY2hUZXh0LCB2aXNpYmxlT25seSwgaW1tZWRpYXRlRGVzY2VuZGFudHNPbmx5
KTsKKyAgICBOU0RpY3Rpb25hcnkgKnBhcmFtZXRlcml6ZWRBdHRyaWJ1dGUgPSBzZWFyY2hQcmVk
aWNhdGVQYXJhbWV0ZXJpemVkQXR0cmlidXRlRm9yU2VhcmNoQ3JpdGVyaWEoY29udGV4dCwgc3Rh
cnRFbGVtZW50LCBpc0RpcmVjdGlvbk5leHQsIDUsIHNlYXJjaEtleSwgc2VhcmNoVGV4dCwgdmlz
aWJsZU9ubHksIGltbWVkaWF0ZURlc2NlbmRhbnRzT25seSk7CiAgICAgaWQgdmFsdWUgPSBbbV9l
bGVtZW50IGFjY2Vzc2liaWxpdHlGaW5kTWF0Y2hpbmdPYmplY3RzOnBhcmFtZXRlcml6ZWRBdHRy
aWJ1dGVdOwogICAgIGlmICghW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TQXJyYXkgY2xhc3NdXSkK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmNyZWF0ZShbdmFsdWUgbGFzdE9iamVjdF0pOworICAgIGZvciAoaWQgZWxlbWVudCBpbiB2
YWx1ZSkgeworICAgICAgICBpZiAoW2VsZW1lbnQgaXNBY2Nlc3NpYmlsaXR5RWxlbWVudF0pCisg
ICAgICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQp
OworICAgIH0KKyAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3JlYXRlKFt2YWx1
ZSBmaXJzdE9iamVjdF0pOwogfQogCiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6c2VsZWN0VGV4dFdpdGhDcml0ZXJpYShKU0NvbnRleHRSZWYsIEpTU3Ry
aW5nUmVmIGFtYmlndWl0eVJlc29sdXRpb24sIEpTVmFsdWVSZWYgc2VhcmNoU3RyaW5ncywgSlNT
dHJpbmdSZWYgcmVwbGFjZW1lbnRTdHJpbmcsIEpTU3RyaW5nUmVmIGFjdGl2aXR5KQpJbmRleDog
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxv
ZwkocmV2aXNpb24gMjE0NzE4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTctMDQtMDMgIE5hbiBXYW5nICA8bl93YW5nQGFwcGxl
LmNvbT4KKworICAgICAgICBBWDogRXhwb3NlIGxpbmsgY2hpbGRyZW4gd2hlbiBkb2luZyBzZWFy
Y2ggcHJlZGljYXRpb24gb24gaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzA0MjQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMxNDEzMzM1Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9pb3Mtc2ltdWxhdG9yL2lvcy1zZWFyY2gtcHJlZGljYXRlLWxpbmstY2hpbGRyZW4t
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lvcy1zaW11bGF0
b3IvaW9zLXNlYXJjaC1wcmVkaWNhdGUtbGluay1jaGlsZHJlbi5odG1sOiBBZGRlZC4KKwogMjAx
Ny0wNC0wMSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBS
b2xsaW5nIGJhY2sgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9yMjE0NjYzIC0gbWVtb3J5IGNvcnJ1
cHRpb24KSW5kZXg6IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaW9zLXNpbXVsYXRvci9pb3Mt
c2VhcmNoLXByZWRpY2F0ZS1saW5rLWNoaWxkcmVuLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2lvcy1zaW11bGF0b3IvaW9zLXNlYXJjaC1wcmVk
aWNhdGUtbGluay1jaGlsZHJlbi1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0
VGVzdHMvYWNjZXNzaWJpbGl0eS9pb3Mtc2ltdWxhdG9yL2lvcy1zZWFyY2gtcHJlZGljYXRlLWxp
bmstY2hpbGRyZW4tZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjIgQEAK
K3N0YXJ0IHRleHQKKworaGVhZGluZyB0ZXh0CisKK3N1YiB0ZXh0CitzdGFydCB0ZXh0IDIKKwor
bGluazIgdGV4dCBsaW5rMworVGhpcyB0ZXN0cyB0aGUgYWJpbGl0eSB0byBzZWFyY2ggZm9yIGV4
cG9zZWQgbGluayBjaGlsZHJlbi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgcmVzdWx0RWxlbWVudC5kZXNjcmlwdGlvbiBpcyAnQVhMYWJlbDogaGVhZGluZyB0ZXh0Jwor
UEFTUyByZXN1bHRFbGVtZW50LmRlc2NyaXB0aW9uIGlzICdBWExhYmVsOiBzdWIgdGV4dCcKK1BB
U1MgcmVzdWx0RWxlbWVudC5kZXNjcmlwdGlvbiBpcyAnQVhMYWJlbDogaGVhZGluZyB0ZXh0Jwor
UEFTUyByZXN1bHRFbGVtZW50LmRlc2NyaXB0aW9uIGlzICdBWExhYmVsOiBsaW5rMiB0ZXh0Jwor
UEFTUyByZXN1bHRFbGVtZW50LmRlc2NyaXB0aW9uIGlzICdBWExhYmVsOiBsaW5rMycKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2lvcy1zaW11bGF0b3IvaW9zLXNlYXJjaC1wcmVkaWNhdGUt
bGluay1jaGlsZHJlbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2FjY2Vzc2liaWxp
dHkvaW9zLXNpbXVsYXRvci9pb3Mtc2VhcmNoLXByZWRpY2F0ZS1saW5rLWNoaWxkcmVuLmh0bWwJ
KG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pb3Mtc2ltdWxhdG9y
L2lvcy1zZWFyY2gtcHJlZGljYXRlLWxpbmstY2hpbGRyZW4uaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDYwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1M
Ly9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBpZD0iYm9keSI+CisKKzxwIGlk
PSJzdGFydCI+c3RhcnQgdGV4dDwvcD4KKzxhIGlkPSJsaW5rIiBocmVmPScjJz4KKzxoMz5oZWFk
aW5nIHRleHQ8L2gzPgorPGRpdj5zdWIgdGV4dDwvZGl2PgorPC9hPgorCis8cCBpZD0ic3RhcnQy
Ij5zdGFydCB0ZXh0IDI8L3A+Cis8YSBpZD0ibGluazIiIGhyZWY9JyMnPgorPHNwYW4+bGluazI8
L3NwYW4+Cis8c3Bhbj4gdGV4dDwvc3Bhbj4KKzwvYT4KKzxhIGhyZWY9IiMiPmxpbmszPC9hPgor
ICAgIAorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KworPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGUgYWJpbGl0eSB0byBz
ZWFyY2ggZm9yIGV4cG9zZWQgbGluayBjaGlsZHJlbi4iKTsKKyAgICAKKyAgICBpZiAod2luZG93
LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmtl
ZXBXZWJIaXN0b3J5KCk7CisgICAgICAgIAorICAgICAgICB2YXIgY29udGFpbmVyRWxlbWVudCA9
IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnJvb3RFbGVtZW50OworICAgICAgICB2YXIgc3RhcnRF
bGVtZW50ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJz
dGFydCIpOworICAgICAgICB2YXIgcmVzdWx0RWxlbWVudDsKKyAgICAgICAgCisgICAgICAgIHJl
c3VsdEVsZW1lbnQgPSBjb250YWluZXJFbGVtZW50LnVpRWxlbWVudEZvclNlYXJjaFByZWRpY2F0
ZShzdGFydEVsZW1lbnQsIHRydWUsICJBWExpbmtTZWFyY2hLZXkiLCAiIiwgZmFsc2UpOworICAg
ICAgICBzaG91bGRCZSgicmVzdWx0RWxlbWVudC5kZXNjcmlwdGlvbiIsICInQVhMYWJlbDogaGVh
ZGluZyB0ZXh0JyIpOworICAgICAgICAKKyAgICAgICAgc3RhcnRFbGVtZW50ID0gcmVzdWx0RWxl
bWVudDsKKyAgICAgICAgcmVzdWx0RWxlbWVudCA9IGNvbnRhaW5lckVsZW1lbnQudWlFbGVtZW50
Rm9yU2VhcmNoUHJlZGljYXRlKHN0YXJ0RWxlbWVudCwgdHJ1ZSwgIkFYTGlua1NlYXJjaEtleSIs
ICIiLCBmYWxzZSk7CisgICAgICAgIHNob3VsZEJlKCJyZXN1bHRFbGVtZW50LmRlc2NyaXB0aW9u
IiwgIidBWExhYmVsOiBzdWIgdGV4dCciKTsKKyAgICAgICAgCisgICAgICAgIC8vIFNlYXJjaCBi
YWNrd2FyZHMuCisgICAgICAgIHN0YXJ0RWxlbWVudCA9IHJlc3VsdEVsZW1lbnQ7CisgICAgICAg
IHJlc3VsdEVsZW1lbnQgPSBjb250YWluZXJFbGVtZW50LnVpRWxlbWVudEZvclNlYXJjaFByZWRp
Y2F0ZShzdGFydEVsZW1lbnQsIGZhbHNlLCAiQVhMaW5rU2VhcmNoS2V5IiwgIiIsIGZhbHNlKTsK
KyAgICAgICAgc2hvdWxkQmUoInJlc3VsdEVsZW1lbnQuZGVzY3JpcHRpb24iLCAiJ0FYTGFiZWw6
IGhlYWRpbmcgdGV4dCciKTsKKyAgICAgICAgCisgICAgICAgIC8vIFRlc3QgdGhlIGNhc2Ugd2hl
cmUgdGhlIGxpbmsgaXRzZWxmIGlzIG5vdCBpZ25vcmVkLgorICAgICAgICBzdGFydEVsZW1lbnQg
PSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoInN0YXJ0MiIp
OworICAgICAgICByZXN1bHRFbGVtZW50ID0gY29udGFpbmVyRWxlbWVudC51aUVsZW1lbnRGb3JT
ZWFyY2hQcmVkaWNhdGUoc3RhcnRFbGVtZW50LCB0cnVlLCAiQVhMaW5rU2VhcmNoS2V5IiwgIiIs
IGZhbHNlKTsKKyAgICAgICAgc2hvdWxkQmUoInJlc3VsdEVsZW1lbnQuZGVzY3JpcHRpb24iLCAi
J0FYTGFiZWw6IGxpbmsyIHRleHQnIik7CisgICAgICAgIAorICAgICAgICBzdGFydEVsZW1lbnQg
PSByZXN1bHRFbGVtZW50OworICAgICAgICByZXN1bHRFbGVtZW50ID0gY29udGFpbmVyRWxlbWVu
dC51aUVsZW1lbnRGb3JTZWFyY2hQcmVkaWNhdGUoc3RhcnRFbGVtZW50LCB0cnVlLCAiQVhMaW5r
U2VhcmNoS2V5IiwgIiIsIGZhbHNlKTsKKyAgICAgICAgc2hvdWxkQmUoInJlc3VsdEVsZW1lbnQu
ZGVzY3JpcHRpb24iLCAiJ0FYTGFiZWw6IGxpbmszJyIpOworICAgIH0KKyAgICAKKzwvc2NyaXB0
PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>