<?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>196173</bug_id>
          
          <creation_ts>2019-03-22 23:54:52 -0700</creation_ts>
          <short_desc>Need a way to include WebKitAdditions code in WebKit API headers</short_desc>
          <delta_ts>2019-03-29 15:27:53 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit API</component>
          <version>WebKit 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>DoNotImportToRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>196284</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>andersca</cc>
    
    <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mitz</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1520584</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-03-22 23:54:52 -0700</bug_when>
    <thetext>SSIA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1520587</commentid>
    <comment_count>1</comment_count>
      <attachid>365804</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-03-23 00:01:46 -0700</bug_when>
    <thetext>Created attachment 365804
There has got to be a better way :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1520588</commentid>
    <comment_count>2</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-03-23 00:03:48 -0700</bug_when>
    <thetext>Work towards: &lt;rdar://problem/47228232&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1520641</commentid>
    <comment_count>3</comment_count>
      <attachid>365820</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-03-23 16:25:26 -0700</bug_when>
    <thetext>Created attachment 365820
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1520642</commentid>
    <comment_count>4</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-03-23 16:38:25 -0700</bug_when>
    <thetext>This approach, while hacky, should at least fulfill these requirements:
- When building with a non-internal SDK, we don&apos;t produce framework headers with invalid content (e.g. #if USE(APPLE_INTERNAL_SDK)).
- When building with an internal SDK, we produce framework headers that contain the internal bits from WebKitAdditions.
- When building with an internal SDK, the symbols defined in the WebKitAdditions pieces can be referenced in implementation files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521753</commentid>
    <comment_count>5</comment_count>
      <attachid>365820</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-03-27 11:21:40 -0700</bug_when>
    <thetext>Comment on attachment 365820
Patch

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

This is 😡 but OK. For now.

&gt; Source/WebKit/mac/replace-webkit-additions-includes.py:35
&gt; +        file_in_build_directory = open(&quot;%s/%s&quot; % (built_products_directory, additions_path), &quot;r&quot;)

os.path.join (in a bunch of places)

&gt; Source/WebKit/mac/replace-webkit-additions-includes.py:75
&gt; +                print &quot;(%s): failed to write to file: %s&quot; % (argv[0], header_path)

print as a function? what happens with python3? do we care? I don&apos;t know?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521844</commentid>
    <comment_count>6</comment_count>
      <attachid>365820</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-03-27 14:20:47 -0700</bug_when>
    <thetext>Comment on attachment 365820
Patch

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

&gt;&gt; Source/WebKit/mac/replace-webkit-additions-includes.py:35
&gt;&gt; +        file_in_build_directory = open(&quot;%s/%s&quot; % (built_products_directory, additions_path), &quot;r&quot;)
&gt; 
&gt; os.path.join (in a bunch of places)

👍🏻

&gt; Source/WebKit/mac/replace-webkit-additions-includes.py:50
&gt; +    header_path = argv[1]
&gt; +    built_products_directory = argv[2]
&gt; +    sdk_root_directory = argv[3]

I also added sanity checks here to return early and print usage if the wrong number of arguments is supplied.

&gt;&gt; Source/WebKit/mac/replace-webkit-additions-includes.py:75
&gt;&gt; +                print &quot;(%s): failed to write to file: %s&quot; % (argv[0], header_path)
&gt; 
&gt; print as a function? what happens with python3? do we care? I don&apos;t know?

Good catch, we should be compatible with python3!

I ran this with `/usr/bin/env python3` for good measure, and verified that everything behaves as expected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521884</commentid>
    <comment_count>7</comment_count>
      <attachid>366117</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-03-27 15:50:32 -0700</bug_when>
    <thetext>Created attachment 366117
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521908</commentid>
    <comment_count>8</comment_count>
      <attachid>366117</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-27 16:34:15 -0700</bug_when>
    <thetext>Comment on attachment 366117
Patch for landing

Clearing flags on attachment: 366117

Committed r243569: &lt;https://trac.webkit.org/changeset/243569&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>365804</attachid>
            <date>2019-03-23 00:01:46 -0700</date>
            <delta_ts>2019-03-23 16:25:25 -0700</delta_ts>
            <desc>There has got to be a better way :(</desc>
            <filename>bug-196173-20190323000145.patch</filename>
            <type>text/plain</type>
            <size>3150</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzMTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDZiZjM0ZDE4OTA3NjAxYTYw
NDU4ZmVmNDU4NjBiNjU2OTRkM2QzYzkuLjljMDkxNGE2N2FmMDFiODdlNmZjYWE2MzU2ZDYwYjEy
Mzc0ZGI1YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTktMDMtMjIgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgTmVlZCBhIHdheSB0byBp
bmNsdWRlIFdlYktpdEFkZGl0aW9ucyBjb2RlIGluIFdlYktpdCBBUEkgaGVhZGVycworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2MTczCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNlcyBXS19B
RERJVElPTlNfSU5DTFVERSwgd2hpY2ggbWF5IGJlIGFkZGVkIHRvIHB1YmxpYyBhbmQgcHJpdmF0
ZSBXZWJLaXQgaGVhZGVycyB0byBpbXBvcnQgY29udGVudCBmcm9tCisgICAgICAgIHVzci9sb2Nh
bC9pbmNsdWRlL1dlYktpdEFkZGl0aW9ucy4gU2FtcGxlIHVzYWdlOgorCisgICAgICAgIFdLX0FE
RElUSU9OU19JTkNMVURFKFdLV2ViVmlld0NvbmZpZ3VyYXRpb25BZGRpdGlvbnMuaCkKKworICAg
ICAgICAqIFNoYXJlZC9BUEkvQ29jb2EvV0tGb3VuZGF0aW9uLmg6CisgICAgICAgICogbWFjL3Bv
c3Rwcm9jZXNzLWZyYW1ld29yay1oZWFkZXJzLnNoOgorCiAyMDE5LTAzLTIyICBXZW5zb24gSHNp
ZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJLaXQyXSBSZW5hbWUg
QVBJOjpXZWJzaXRlUG9saWNpZXMgdG8gQVBJOjpXZWJzaXRlQmVoYXZpb3JzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV0tGb3VuZGF0aW9uLmggYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV0tGb3VuZGF0aW9uLmgKaW5kZXggOTBjNWVhZGVkODE2
YWRiYjM2OTRiM2ZhNWU4ZjU0NDlkMDE1MWY1YS4uODMwZDA3MTk3OTY2YjcyZGY3MDE2YTRiNjQ2
ZTY4NjYyNmI5OTI4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29h
L1dLRm91bmRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9XS0Zv
dW5kYXRpb24uaApAQCAtMzksNSArMzksNiBAQAogI2RlZmluZSBXS19BUElfREVQUkVDQVRFRChf
bWVzc2FnZSwgLi4uKSBfX2F0dHJpYnV0ZV9fKChkZXByZWNhdGVkKF9tZXNzYWdlKSkpCiAjZGVm
aW5lIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoX3JlcGxhY2VtZW50LCAuLi4p
IF9fYXR0cmlidXRlX18oKGRlcHJlY2F0ZWQoInVzZSAiICNfcmVwbGFjZW1lbnQpKSkKICNkZWZp
bmUgV0tfQ0xBU1NfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKF9yZXBsYWNlbWVudCwgLi4u
KSBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKSBfX2F0dHJpYnV0ZV9fKChk
ZXByZWNhdGVkKCJ1c2UgIiAjX3JlcGxhY2VtZW50KSkpCisjZGVmaW5lIFdLX0FERElUSU9OU19J
TkNMVURFKC4uLikKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9wb3N0
cHJvY2Vzcy1mcmFtZXdvcmstaGVhZGVycy5zaCBiL1NvdXJjZS9XZWJLaXQvbWFjL3Bvc3Rwcm9j
ZXNzLWZyYW1ld29yay1oZWFkZXJzLnNoCmluZGV4IDA3MTA2YjRiZGJlOWUxNDY0NWU0ZGI5MDBm
NDgzMDA2NTBiODAxN2UuLmUyNjQ4OGY0ZDc0YzQ3ZDA2MTM0MTRkNDJmZGIyMjkyMzNjZDE1MDUg
MTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL3Bvc3Rwcm9jZXNzLWZyYW1ld29yay1oZWFk
ZXJzLnNoCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL3Bvc3Rwcm9jZXNzLWZyYW1ld29yay1oZWFk
ZXJzLnNoCkBAIC00OCw2ICs0OCwxNSBAQCBmdW5jdGlvbiBwcm9jZXNzX2RlZmluaXRpb25zICgp
IHsKICAgICBzb3VyY2UgIiR7REVGSU5JVElPTlNfRklMRX0iCiB9CiAKK2Z1bmN0aW9uIHJlcGxh
Y2Vfd2Via2l0X2FkZGl0aW9uc19pbmNsdWRlcyAoKSB7CisgICAgZm9yIElOQ0xVREVfTkFNRSBp
biBgc2VkIC1uICdzL15XS19BRERJVElPTlNfSU5DTFVERShcKC4qXCkpJC9cMS9wJyAkMWAKKyAg
ICBkbworICAgICAgICBsb2NhbCBJTkNMVURFX1BBVEg9JEJVSUxUX1BST0RVQ1RTX0RJUi91c3Iv
bG9jYWwvaW5jbHVkZS9XZWJLaXRBZGRpdGlvbnMvJElOQ0xVREVfTkFNRQorICAgICAgICBzZWQg
LWkgLnRtcCAtZSAiL1dLX0FERElUSU9OU19JTkNMVURFKCR7SU5DTFVERV9OQU1FfSkvciAke0lO
Q0xVREVfUEFUSH0iIC1lICJzL1dLX0FERElUSU9OU19JTkNMVURFKCR7SU5DTFVERV9OQU1FfSkv
L2ciICQxIHx8IGV4aXQgJD8KKyAgICBkb25lCisgICAgcmV0dXJuIDAKK30KKwogZnVuY3Rpb24g
cmV3cml0ZV9oZWFkZXJzICgpIHsKICAgICBpZiBbWyAiJHtXS19QTEFURk9STV9OQU1FfSIgPT0g
Im1hY29zeCIgXV07IHRoZW4KICAgICAgICAgW1sgLW4gJHtPU1hfVkVSU0lPTn0gXV0gfHwgT1NY
X1ZFUlNJT049JHtNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVR9CkBAIC04MSw2ICs5MCw3IEBAIGZ1
bmN0aW9uIHJld3JpdGVfaGVhZGVycyAoKSB7CiAgICAgZm9yIEhFQURFUl9QQVRIIGluICIkezF9
LyIqLmg7IGRvCiAgICAgICAgIGlmIFtbICIkSEVBREVSX1BBVEgiIC1udCAkVElNRVNUQU1QX1BB
VEggXV07IHRoZW4KICAgICAgICAgICAgIGRpdHRvICIke0hFQURFUl9QQVRIfSIgIiR7VEFSR0VU
X1RFTVBfRElSfS8ke0hFQURFUl9QQVRIIyMqL30iCisgICAgICAgICAgICByZXBsYWNlX3dlYmtp
dF9hZGRpdGlvbnNfaW5jbHVkZXMgIiR7VEFSR0VUX1RFTVBfRElSfS8ke0hFQURFUl9QQVRIIyMq
L30iCiAgICAgICAgICAgICBzZWQgLWkgLnRtcCAtRSAiJHtTRURfT1BUSU9OU1tAXX0iICIke1RB
UkdFVF9URU1QX0RJUn0vJHtIRUFERVJfUEFUSCMjKi99IiB8fCBleGl0ICQ/CiAgICAgICAgICAg
ICBtdiAiJHtUQVJHRVRfVEVNUF9ESVJ9LyR7SEVBREVSX1BBVEgjIyovfSIgIiRIRUFERVJfUEFU
SCIKICAgICAgICAgZmkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>365820</attachid>
            <date>2019-03-23 16:25:26 -0700</date>
            <delta_ts>2019-03-27 11:21:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196173-20190323162525.patch</filename>
            <type>text/plain</type>
            <size>7061</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzMTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDZiZjM0ZDE4OTA3NjAxYTYw
NDU4ZmVmNDU4NjBiNjU2OTRkM2QzYzkuLjI1YzE5ZDU4NDE0Y2NjZDA5ZTE5NmFhMzZlZDRjYjkw
NGZlY2I4Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTktMDMtMjMgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgTmVlZCBhIHdheSB0byBp
bmNsdWRlIFdlYktpdEFkZGl0aW9ucyBjb2RlIGluIFdlYktpdCBBUEkgaGVhZGVycworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2MTczCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNlIGEgbWVj
aGFuaXNtIHRoYXQgYWxsb3dzIHVzIHRvIGluc2VydCBjb2RlIGZyb20gV2ViS2l0QWRkaXRpb25z
IGludG8gcHVibGljIG9yIHByaXZhdGUgU0RLIGhlYWRlcnMKKyAgICAgICAgdXNpbmcgYCNpbXBv
cnRgcyBvZiB0aGUgZm9ybToKKworICAgICAgICBgYGAKKyAgICAgICAgI2lmIFVTRShBUFBMRV9J
TlRFUk5BTF9TREspCisgICAgICAgICNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9XS1dlYlZpZXdD
b25maWd1cmF0aW9uQWRkaXRpb25zLmg+CisgICAgICAgICNlbmRpZgorICAgICAgICBgYGAKKwor
ICAgICAgICBUaGUgcmVzdWx0aW5nIGhlYWRlciBpbiB0aGUgYnVpbHQgcHJvZHVjdHMgZGlyZWN0
b3J5IHdpbGwgY29udGFpbiB0aGUgY29udGVudHMgb2YgdGhlIGltcG9ydGVkIGZpbGUgaW5zZXJ0
ZWQgaW4KKyAgICAgICAgcGxhY2Ugb2YgdGhlIGAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykg
4oCmICNlbmRpZmAgYmxvY2s7IGhvd2V2ZXIsIHdoZW4gYnVpbGRpbmcgd2l0aCB0aGUgQXBwbGUg
aW50ZXJuYWwgU0RLLAorICAgICAgICB0aGUgYWRkaXRpb25zIGhlYWRlciBjb250ZW50IHdpbGwg
YmUgaW1wb3J0ZWQgYnkgdGhlIHVzdWFsIG1lYW5zLgorCisgICAgICAgICogbWFjL3Bvc3Rwcm9j
ZXNzLWZyYW1ld29yay1oZWFkZXJzLnNoOgorICAgICAgICAqIG1hYy9yZXBsYWNlLXdlYmtpdC1h
ZGRpdGlvbnMtaW5jbHVkZXMucHk6IEFkZGVkLgorCisgICAgICAgIEFkZCBhIHN0ZXAgd2hlbiBw
b3N0LXByb2Nlc3NpbmcgZnJhbWV3b3JrIGhlYWRlcnMgdG8gcmVwbGFjZSBpbnN0YW5jZXMgb2Yg
YCNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSDigKYgI2VuZGlmYAorICAgICAgICB3aXRoIHRo
ZSB0ZXh0IGNvbnRlbnQgb2YgdGhlIGFkZGl0aW9ucyBmaWxlcy4gVGhlIHJlcGxhY2VtZW50IHNj
cmlwdCBmaXJzdCBzZWFyY2hlcyBpbiB0aGUgYnVpbHQgcHJvZHVjdHMKKyAgICAgICAgZGlyZWN0
b3J5IGZvciB0aGUgbWF0Y2hpbmcgYWRkaXRpb25zIGZpbGUsIGFuZCBmYWxscyBiYWNrIHRvIHRo
ZSBTREsgaWYgbm8gbWF0Y2hpbmcgZmlsZSBpcyBmb3VuZC4gSWYgbmVpdGhlcgorICAgICAgICBh
cmUgcHJlc2VudCAoZS5nLiBhIGJ1aWxkIHVzaW5nIHRoZSBwdWJsaWMgU0RLKSwgdGhlbiB0aGUg
YmxvY2sgaXMgc2ltcGx5IHJlcGxhY2VkIGJ5IHRoZSBlbXB0eSBzdHJpbmcuCisKKyAgICAgICAg
KHJlYWRfY29udGVudF9mcm9tX3dlYmtpdF9hZGRpdGlvbnMpOgorICAgICAgICAobWFpbik6CisK
IDIwMTktMDMtMjIgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAg
ICAgICAgW1dlYktpdDJdIFJlbmFtZSBBUEk6OldlYnNpdGVQb2xpY2llcyB0byBBUEk6OldlYnNp
dGVCZWhhdmlvcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL3Bvc3Rwcm9jZXNzLWZy
YW1ld29yay1oZWFkZXJzLnNoIGIvU291cmNlL1dlYktpdC9tYWMvcG9zdHByb2Nlc3MtZnJhbWV3
b3JrLWhlYWRlcnMuc2gKaW5kZXggMDcxMDZiNGJkYmU5ZTE0NjQ1ZTRkYjkwMGY0ODMwMDY1MGI4
MDE3ZS4uZjAzYzU2YzE1ZTkxMzFlNmZlYzY1MWZlZmRjMjNlNmU1MzQ3MDM1MSAxMDA3NTUKLS0t
IGEvU291cmNlL1dlYktpdC9tYWMvcG9zdHByb2Nlc3MtZnJhbWV3b3JrLWhlYWRlcnMuc2gKKysr
IGIvU291cmNlL1dlYktpdC9tYWMvcG9zdHByb2Nlc3MtZnJhbWV3b3JrLWhlYWRlcnMuc2gKQEAg
LTQ4LDYgKzQ4LDE0IEBAIGZ1bmN0aW9uIHByb2Nlc3NfZGVmaW5pdGlvbnMgKCkgewogICAgIHNv
dXJjZSAiJHtERUZJTklUSU9OU19GSUxFfSIKIH0KIAorZnVuY3Rpb24gcmVwbGFjZV93ZWJraXRf
YWRkaXRpb25zX2luY2x1ZGVzICgpIHsKKyAgICBpZiBbWyAteiBgZ3JlcCAnI2ltcG9ydCA8V2Vi
S2l0QWRkaXRpb25zLy4qXC5oPicgJDFgIF1dOyB0aGVuCisgICAgICAgIHJldHVybiAwCisgICAg
ZmkKKyAgICBweXRob24gIiQoZGlybmFtZSAkMCkvcmVwbGFjZS13ZWJraXQtYWRkaXRpb25zLWlu
Y2x1ZGVzLnB5IiAkMSAiJHtCVUlMVF9QUk9EVUNUU19ESVJ9IiAiJHtTREtST09UfSIKKyAgICBy
ZXR1cm4gJD8KK30KKwogZnVuY3Rpb24gcmV3cml0ZV9oZWFkZXJzICgpIHsKICAgICBpZiBbWyAi
JHtXS19QTEFURk9STV9OQU1FfSIgPT0gIm1hY29zeCIgXV07IHRoZW4KICAgICAgICAgW1sgLW4g
JHtPU1hfVkVSU0lPTn0gXV0gfHwgT1NYX1ZFUlNJT049JHtNQUNPU1hfREVQTE9ZTUVOVF9UQVJH
RVR9CkBAIC04MSw2ICs4OSw3IEBAIGZ1bmN0aW9uIHJld3JpdGVfaGVhZGVycyAoKSB7CiAgICAg
Zm9yIEhFQURFUl9QQVRIIGluICIkezF9LyIqLmg7IGRvCiAgICAgICAgIGlmIFtbICIkSEVBREVS
X1BBVEgiIC1udCAkVElNRVNUQU1QX1BBVEggXV07IHRoZW4KICAgICAgICAgICAgIGRpdHRvICIk
e0hFQURFUl9QQVRIfSIgIiR7VEFSR0VUX1RFTVBfRElSfS8ke0hFQURFUl9QQVRIIyMqL30iCisg
ICAgICAgICAgICByZXBsYWNlX3dlYmtpdF9hZGRpdGlvbnNfaW5jbHVkZXMgIiR7VEFSR0VUX1RF
TVBfRElSfS8ke0hFQURFUl9QQVRIIyMqL30iCiAgICAgICAgICAgICBzZWQgLWkgLnRtcCAtRSAi
JHtTRURfT1BUSU9OU1tAXX0iICIke1RBUkdFVF9URU1QX0RJUn0vJHtIRUFERVJfUEFUSCMjKi99
IiB8fCBleGl0ICQ/CiAgICAgICAgICAgICBtdiAiJHtUQVJHRVRfVEVNUF9ESVJ9LyR7SEVBREVS
X1BBVEgjIyovfSIgIiRIRUFERVJfUEFUSCIKICAgICAgICAgZmkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL3JlcGxhY2Utd2Via2l0LWFkZGl0aW9ucy1pbmNsdWRlcy5weSBiL1NvdXJj
ZS9XZWJLaXQvbWFjL3JlcGxhY2Utd2Via2l0LWFkZGl0aW9ucy1pbmNsdWRlcy5weQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hYzM5MTZlNGI0OTBkOTlkMWVmNGQ2N2FiMTRiZWMwODVhZmZmNjYzCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9tYWMvcmVwbGFjZS13ZWJraXQtYWRkaXRpb25zLWluY2x1
ZGVzLnB5CkBAIC0wLDAgKzEsODMgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIworIyBDb3B5
cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMg
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
IyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyMKKworaW1wb3J0IG9zCitpbXBvcnQgcmUK
K2ltcG9ydCBzeXMKKworCitkZWYgcmVhZF9jb250ZW50X2Zyb21fd2Via2l0X2FkZGl0aW9ucyhi
dWlsdF9wcm9kdWN0c19kaXJlY3RvcnksIHNka19yb290X2RpcmVjdG9yeSwgZmlsZW5hbWUpOgor
ICAgIGFkZGl0aW9uc19wYXRoID0gInVzci9sb2NhbC9pbmNsdWRlL1dlYktpdEFkZGl0aW9ucy8l
cyIgJSBmaWxlbmFtZQorICAgIHRyeToKKyAgICAgICAgZmlsZV9pbl9idWlsZF9kaXJlY3Rvcnkg
PSBvcGVuKCIlcy8lcyIgJSAoYnVpbHRfcHJvZHVjdHNfZGlyZWN0b3J5LCBhZGRpdGlvbnNfcGF0
aCksICJyIikKKyAgICAgICAgcmV0dXJuIGZpbGVfaW5fYnVpbGRfZGlyZWN0b3J5LnJlYWQoKQor
ICAgIGV4Y2VwdDoKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZmlsZV9pbl9zZGtfcm9vdCA9
IG9wZW4oIiVzLyVzIiAlIChzZGtfcm9vdF9kaXJlY3RvcnksIGFkZGl0aW9uc19wYXRoKSwgInIi
KQorICAgICAgICAgICAgcmV0dXJuIGZpbGVfaW5fc2RrX3Jvb3QucmVhZCgpCisgICAgICAgIGV4
Y2VwdDoKKyAgICAgICAgICAgIHJldHVybiAiIgorCisKK2RlZiBtYWluKGFyZ3Y9Tm9uZSk6Cisg
ICAgaWYgbm90IGFyZ3Y6CisgICAgICAgIGFyZ3YgPSBzeXMuYXJndgorICAgIGhlYWRlcl9wYXRo
ID0gYXJndlsxXQorICAgIGJ1aWx0X3Byb2R1Y3RzX2RpcmVjdG9yeSA9IGFyZ3ZbMl0KKyAgICBz
ZGtfcm9vdF9kaXJlY3RvcnkgPSBhcmd2WzNdCisgICAgaWYgaGVhZGVyX3BhdGggaXMgTm9uZToK
KyAgICAgICAgcHJpbnQgIiglcyk6IGhlYWRlciBwYXRoIHVuc3BlY2lmaWVkIiAlIGFyZ3ZbMF0K
KyAgICAgICAgcmV0dXJuIDEKKworICAgIGlmIGJ1aWx0X3Byb2R1Y3RzX2RpcmVjdG9yeSBpcyBO
b25lOgorICAgICAgICBwcmludCAiKCVzKTogYnVpbHQgcHJvZHVjdHMgZGlyZWN0b3J5IHVuc3Bl
Y2lmaWVkIiAlIGFyZ3ZbMF0KKyAgICAgICAgcmV0dXJuIDEKKworICAgIGlmIHNka19yb290X2Rp
cmVjdG9yeSBpcyBOb25lOgorICAgICAgICBwcmludCAiKCVzKTogU0RLIHJvb3QgZGlyZWN0b3J5
IHVuc3BlY2lmaWVkIiAlIGFyZ3ZbMF0KKyAgICAgICAgcmV0dXJuIDEKKworICAgIGFkZGl0aW9u
c19pbXBvcnRfcGF0dGVybiA9IHJlLmNvbXBpbGUociJcI2lmIFVTRVwoQVBQTEVfSU5URVJOQUxf
U0RLXClcbiNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy8oLipcLmgpPlxuI2VuZGlmIikKKyAgICB0
cnk6CisgICAgICAgIHdpdGggb3BlbihoZWFkZXJfcGF0aCwgInIiKSBhcyBoZWFkZXI6CisgICAg
ICAgICAgICBoZWFkZXJfY29udGVudHMgPSBoZWFkZXIucmVhZCgpCisgICAgICAgICAgICBtYXRj
aCA9IGFkZGl0aW9uc19pbXBvcnRfcGF0dGVybi5zZWFyY2goaGVhZGVyX2NvbnRlbnRzKQorICAg
ICAgICAgICAgd2hpbGUgbWF0Y2g6CisgICAgICAgICAgICAgICAgaGVhZGVyX2NvbnRlbnRzID0g
aGVhZGVyX2NvbnRlbnRzWzptYXRjaC5zdGFydCgpXSArIHJlYWRfY29udGVudF9mcm9tX3dlYmtp
dF9hZGRpdGlvbnMoYnVpbHRfcHJvZHVjdHNfZGlyZWN0b3J5LCBzZGtfcm9vdF9kaXJlY3Rvcnks
IG1hdGNoLmdyb3VwcygpWzBdKSArIGhlYWRlcl9jb250ZW50c1ttYXRjaC5lbmQoKTpdCisgICAg
ICAgICAgICAgICAgbWF0Y2ggPSBhZGRpdGlvbnNfaW1wb3J0X3BhdHRlcm4uc2VhcmNoKGhlYWRl
cl9jb250ZW50cykKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICB3aXRoIG9wZW4o
aGVhZGVyX3BhdGgsICJ3IikgYXMgaGVhZGVyOgorICAgICAgICAgICAgICAgICAgICBoZWFkZXIu
d3JpdGUoaGVhZGVyX2NvbnRlbnRzKQorICAgICAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAg
ICAgIHByaW50ICIoJXMpOiBmYWlsZWQgdG8gd3JpdGUgdG8gZmlsZTogJXMiICUgKGFyZ3ZbMF0s
IGhlYWRlcl9wYXRoKQorICAgICAgICAgICAgICAgIHJldHVybiAxCisgICAgICAgIHJldHVybiAw
CisgICAgZXhjZXB0OgorICAgICAgICBwcmludCAiKCVzKTogZmFpbGVkIHRvIHJlYWQgZmlsZTog
JXMiICUgKGFyZ3ZbMF0sIGhlYWRlcl9wYXRoKQorICAgICAgICByZXR1cm4gMQorCitpZiBfX25h
bWVfXyA9PSAiX19tYWluX18iOgorICAgIHN5cy5leGl0KG1haW4oc3lzLmFyZ3YpKQo=
</data>
<flag name="review"
          id="382231"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>366117</attachid>
            <date>2019-03-27 15:50:32 -0700</date>
            <delta_ts>2019-03-27 16:34:15 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-196173-20190327155026.patch</filename>
            <type>text/plain</type>
            <size>7243</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzNTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM5NDBlZDYzM2M5OTQxZWZi
YjI0MTlhN2IxYTRiYTAzOWUxZjdlZmMuLjdiN2QwN2EwZjdmY2NjNTAzNTA0MGU3MjhhMzEwYmM1
Zjk5NDg1NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTktMDMtMjMgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgTmVlZCBhIHdheSB0byBp
bmNsdWRlIFdlYktpdEFkZGl0aW9ucyBjb2RlIGluIFdlYktpdCBBUEkgaGVhZGVycworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2MTczCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBJbnRyb2R1Y2UgYSBtZWNoYW5p
c20gdGhhdCBhbGxvd3MgdXMgdG8gaW5zZXJ0IGNvZGUgZnJvbSBXZWJLaXRBZGRpdGlvbnMgaW50
byBwdWJsaWMgb3IgcHJpdmF0ZSBTREsgaGVhZGVycworICAgICAgICB1c2luZyBgI2ltcG9ydGBz
IG9mIHRoZSBmb3JtOgorCisgICAgICAgIGBgYAorICAgICAgICAjaWYgVVNFKEFQUExFX0lOVEVS
TkFMX1NESykKKyAgICAgICAgI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1dLV2ViVmlld0NvbmZp
Z3VyYXRpb25BZGRpdGlvbnMuaD4KKyAgICAgICAgI2VuZGlmCisgICAgICAgIGBgYAorCisgICAg
ICAgIFRoZSByZXN1bHRpbmcgaGVhZGVyIGluIHRoZSBidWlsdCBwcm9kdWN0cyBkaXJlY3Rvcnkg
d2lsbCBjb250YWluIHRoZSBjb250ZW50cyBvZiB0aGUgaW1wb3J0ZWQgZmlsZSBpbnNlcnRlZCBp
bgorICAgICAgICBwbGFjZSBvZiB0aGUgYCNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSDigKYg
I2VuZGlmYCBibG9jazsgaG93ZXZlciwgd2hlbiBidWlsZGluZyB3aXRoIHRoZSBBcHBsZSBpbnRl
cm5hbCBTREssCisgICAgICAgIHRoZSBhZGRpdGlvbnMgaGVhZGVyIGNvbnRlbnQgd2lsbCBiZSBp
bXBvcnRlZCBieSB0aGUgdXN1YWwgbWVhbnMuCisKKyAgICAgICAgKiBtYWMvcG9zdHByb2Nlc3Mt
ZnJhbWV3b3JrLWhlYWRlcnMuc2g6CisgICAgICAgICogbWFjL3JlcGxhY2Utd2Via2l0LWFkZGl0
aW9ucy1pbmNsdWRlcy5weTogQWRkZWQuCisKKyAgICAgICAgQWRkIGEgc3RlcCB3aGVuIHBvc3Qt
cHJvY2Vzc2luZyBmcmFtZXdvcmsgaGVhZGVycyB0byByZXBsYWNlIGluc3RhbmNlcyBvZiBgI2lm
IFVTRShBUFBMRV9JTlRFUk5BTF9TREspIOKApiAjZW5kaWZgCisgICAgICAgIHdpdGggdGhlIHRl
eHQgY29udGVudCBvZiB0aGUgYWRkaXRpb25zIGZpbGVzLiBUaGUgcmVwbGFjZW1lbnQgc2NyaXB0
IGZpcnN0IHNlYXJjaGVzIGluIHRoZSBidWlsdCBwcm9kdWN0cworICAgICAgICBkaXJlY3Rvcnkg
Zm9yIHRoZSBtYXRjaGluZyBhZGRpdGlvbnMgZmlsZSwgYW5kIGZhbGxzIGJhY2sgdG8gdGhlIFNE
SyBpZiBubyBtYXRjaGluZyBmaWxlIGlzIGZvdW5kLiBJZiBuZWl0aGVyCisgICAgICAgIGFyZSBw
cmVzZW50IChlLmcuIGEgYnVpbGQgdXNpbmcgdGhlIHB1YmxpYyBTREspLCB0aGVuIHRoZSBibG9j
ayBpcyBzaW1wbHkgcmVwbGFjZWQgYnkgdGhlIGVtcHR5IHN0cmluZy4KKworICAgICAgICAocmVh
ZF9jb250ZW50X2Zyb21fd2Via2l0X2FkZGl0aW9ucyk6CisgICAgICAgIChtYWluKToKKwogMjAx
OS0wMy0yNiAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBb
bWFjT1NdIENvcnJlY3Qga2VyYmVyb3MtcmVsYXRlZCBzYW5kYm94IHZpb2xhdGlvbnMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL3Bvc3Rwcm9jZXNzLWZyYW1ld29yay1oZWFkZXJzLnNo
IGIvU291cmNlL1dlYktpdC9tYWMvcG9zdHByb2Nlc3MtZnJhbWV3b3JrLWhlYWRlcnMuc2gKaW5k
ZXggMDcxMDZiNGJkYmU5ZTE0NjQ1ZTRkYjkwMGY0ODMwMDY1MGI4MDE3ZS4uOWQ2Y2JhYjM5YjE4
ZTU1YTJiYzFlMWVkNzk5ODQ2NGJiOTUzOGFlNyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvcG9zdHByb2Nlc3MtZnJhbWV3b3JrLWhlYWRlcnMuc2gKKysrIGIvU291cmNlL1dlYktpdC9t
YWMvcG9zdHByb2Nlc3MtZnJhbWV3b3JrLWhlYWRlcnMuc2gKQEAgLTQ4LDYgKzQ4LDE0IEBAIGZ1
bmN0aW9uIHByb2Nlc3NfZGVmaW5pdGlvbnMgKCkgewogICAgIHNvdXJjZSAiJHtERUZJTklUSU9O
U19GSUxFfSIKIH0KIAorZnVuY3Rpb24gcmVwbGFjZV93ZWJraXRfYWRkaXRpb25zX2luY2x1ZGVz
ICgpIHsKKyAgICBpZiBbWyAteiBgZ3JlcCAnI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zLy4qXC5o
PicgIiR7MX0iYCBdXTsgdGhlbgorICAgICAgICByZXR1cm4gMAorICAgIGZpCisgICAgcHl0aG9u
ICIkKGRpcm5hbWUgJDApL3JlcGxhY2Utd2Via2l0LWFkZGl0aW9ucy1pbmNsdWRlcy5weSIgIiR7
MX0iICIke0JVSUxUX1BST0RVQ1RTX0RJUn0iICIke1NES1JPT1R9IgorICAgIHJldHVybiAkPwor
fQorCiBmdW5jdGlvbiByZXdyaXRlX2hlYWRlcnMgKCkgewogICAgIGlmIFtbICIke1dLX1BMQVRG
T1JNX05BTUV9IiA9PSAibWFjb3N4IiBdXTsgdGhlbgogICAgICAgICBbWyAtbiAke09TWF9WRVJT
SU9OfSBdXSB8fCBPU1hfVkVSU0lPTj0ke01BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVH0KQEAgLTgx
LDYgKzg5LDcgQEAgZnVuY3Rpb24gcmV3cml0ZV9oZWFkZXJzICgpIHsKICAgICBmb3IgSEVBREVS
X1BBVEggaW4gIiR7MX0vIiouaDsgZG8KICAgICAgICAgaWYgW1sgIiRIRUFERVJfUEFUSCIgLW50
ICRUSU1FU1RBTVBfUEFUSCBdXTsgdGhlbgogICAgICAgICAgICAgZGl0dG8gIiR7SEVBREVSX1BB
VEh9IiAiJHtUQVJHRVRfVEVNUF9ESVJ9LyR7SEVBREVSX1BBVEgjIyovfSIKKyAgICAgICAgICAg
IHJlcGxhY2Vfd2Via2l0X2FkZGl0aW9uc19pbmNsdWRlcyAiJHtUQVJHRVRfVEVNUF9ESVJ9LyR7
SEVBREVSX1BBVEgjIyovfSIKICAgICAgICAgICAgIHNlZCAtaSAudG1wIC1FICIke1NFRF9PUFRJ
T05TW0BdfSIgIiR7VEFSR0VUX1RFTVBfRElSfS8ke0hFQURFUl9QQVRIIyMqL30iIHx8IGV4aXQg
JD8KICAgICAgICAgICAgIG12ICIke1RBUkdFVF9URU1QX0RJUn0vJHtIRUFERVJfUEFUSCMjKi99
IiAiJEhFQURFUl9QQVRIIgogICAgICAgICBmaQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9t
YWMvcmVwbGFjZS13ZWJraXQtYWRkaXRpb25zLWluY2x1ZGVzLnB5IGIvU291cmNlL1dlYktpdC9t
YWMvcmVwbGFjZS13ZWJraXQtYWRkaXRpb25zLWluY2x1ZGVzLnB5Cm5ldyBmaWxlIG1vZGUgMTAw
NzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ3OWU2
MjhiMThjMTFmOWJhZDA1M2M3NmY1YmVkNDgwODI0MDhkNzcKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9yZXBsYWNlLXdlYmtpdC1hZGRpdGlvbnMtaW5jbHVkZXMucHkKQEAg
LTAsMCArMSw4OCBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjCisjIENvcHlyaWdodCAoQykg
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorIworCitpbXBvcnQgb3MKK2ltcG9ydCByZQoraW1wb3J0IHN5
cworCisKK2RlZiByZWFkX2NvbnRlbnRfZnJvbV93ZWJraXRfYWRkaXRpb25zKGJ1aWx0X3Byb2R1
Y3RzX2RpcmVjdG9yeSwgc2RrX3Jvb3RfZGlyZWN0b3J5LCBmaWxlbmFtZSk6CisgICAgYWRkaXRp
b25zX3BhdGggPSBvcy5wYXRoLmpvaW4oInVzci9sb2NhbC9pbmNsdWRlL1dlYktpdEFkZGl0aW9u
cyIsIGZpbGVuYW1lKQorICAgIHRyeToKKyAgICAgICAgZmlsZV9pbl9idWlsZF9kaXJlY3Rvcnkg
PSBvcGVuKG9zLnBhdGguam9pbihidWlsdF9wcm9kdWN0c19kaXJlY3RvcnksIGFkZGl0aW9uc19w
YXRoKSwgInIiKQorICAgICAgICByZXR1cm4gZmlsZV9pbl9idWlsZF9kaXJlY3RvcnkucmVhZCgp
CisgICAgZXhjZXB0OgorICAgICAgICB0cnk6CisgICAgICAgICAgICBmaWxlX2luX3Nka19yb290
ID0gb3Blbihvcy5wYXRoLmpvaW4oc2RrX3Jvb3RfZGlyZWN0b3J5LCBhZGRpdGlvbnNfcGF0aCks
ICJyIikKKyAgICAgICAgICAgIHJldHVybiBmaWxlX2luX3Nka19yb290LnJlYWQoKQorICAgICAg
ICBleGNlcHQ6CisgICAgICAgICAgICByZXR1cm4gIiIKKworCitkZWYgbWFpbihhcmd2PU5vbmUp
OgorICAgIGlmIG5vdCBhcmd2OgorICAgICAgICBhcmd2ID0gc3lzLmFyZ3YKKworICAgIGlmIGxl
bihhcmd2KSAhPSA0OgorICAgICAgICBwcmludCgiVXNhZ2U6IHJlcGxhY2Utd2Via2l0LWFkZGl0
aW9ucy1pbmNsdWRlcy5weSA8aGVhZGVyX3BhdGg+IDxidWlsdF9wcm9kdWN0c19kaXJlY3Rvcnk+
IDxzZGtfcm9vdF9kaXJlY3Rvcnk+IikKKyAgICAgICAgcmV0dXJuIDEKKworICAgIGhlYWRlcl9w
YXRoID0gYXJndlsxXQorICAgIGJ1aWx0X3Byb2R1Y3RzX2RpcmVjdG9yeSA9IGFyZ3ZbMl0KKyAg
ICBzZGtfcm9vdF9kaXJlY3RvcnkgPSBhcmd2WzNdCisgICAgaWYgbm90IGxlbihoZWFkZXJfcGF0
aCk6CisgICAgICAgIHByaW50KCIoJXMpOiBoZWFkZXIgcGF0aCB1bnNwZWNpZmllZCIgJSBhcmd2
WzBdKQorICAgICAgICByZXR1cm4gMQorCisgICAgaWYgbm90IGxlbihidWlsdF9wcm9kdWN0c19k
aXJlY3RvcnkpOgorICAgICAgICBwcmludCgiKCVzKTogYnVpbHQgcHJvZHVjdHMgZGlyZWN0b3J5
IHVuc3BlY2lmaWVkIiAlIGFyZ3ZbMF0pCisgICAgICAgIHJldHVybiAxCisKKyAgICBpZiBub3Qg
bGVuKHNka19yb290X2RpcmVjdG9yeSk6CisgICAgICAgIHByaW50KCIoJXMpOiBTREsgcm9vdCBk
aXJlY3RvcnkgdW5zcGVjaWZpZWQiICUgYXJndlswXSkKKyAgICAgICAgcmV0dXJuIDEKKworICAg
IGFkZGl0aW9uc19pbXBvcnRfcGF0dGVybiA9IHJlLmNvbXBpbGUociJcI2lmIFVTRVwoQVBQTEVf
SU5URVJOQUxfU0RLXClcbiNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy8oLipcLmgpPlxuI2VuZGlm
IikKKyAgICB0cnk6CisgICAgICAgIHdpdGggb3BlbihoZWFkZXJfcGF0aCwgInIiKSBhcyBoZWFk
ZXI6CisgICAgICAgICAgICBoZWFkZXJfY29udGVudHMgPSBoZWFkZXIucmVhZCgpCisgICAgICAg
ICAgICBtYXRjaCA9IGFkZGl0aW9uc19pbXBvcnRfcGF0dGVybi5zZWFyY2goaGVhZGVyX2NvbnRl
bnRzKQorICAgICAgICAgICAgd2hpbGUgbWF0Y2g6CisgICAgICAgICAgICAgICAgaGVhZGVyX2Nv
bnRlbnRzID0gaGVhZGVyX2NvbnRlbnRzWzptYXRjaC5zdGFydCgpXSArIHJlYWRfY29udGVudF9m
cm9tX3dlYmtpdF9hZGRpdGlvbnMoYnVpbHRfcHJvZHVjdHNfZGlyZWN0b3J5LCBzZGtfcm9vdF9k
aXJlY3RvcnksIG1hdGNoLmdyb3VwcygpWzBdKSArIGhlYWRlcl9jb250ZW50c1ttYXRjaC5lbmQo
KTpdCisgICAgICAgICAgICAgICAgbWF0Y2ggPSBhZGRpdGlvbnNfaW1wb3J0X3BhdHRlcm4uc2Vh
cmNoKGhlYWRlcl9jb250ZW50cykKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICB3
aXRoIG9wZW4oaGVhZGVyX3BhdGgsICJ3IikgYXMgaGVhZGVyOgorICAgICAgICAgICAgICAgICAg
ICBoZWFkZXIud3JpdGUoaGVhZGVyX2NvbnRlbnRzKQorICAgICAgICAgICAgZXhjZXB0OgorICAg
ICAgICAgICAgICAgIHByaW50KCIoJXMpOiBmYWlsZWQgdG8gd3JpdGUgdG8gZmlsZTogJXMiICUg
KGFyZ3ZbMF0sIGhlYWRlcl9wYXRoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gMQorICAgICAg
ICByZXR1cm4gMAorICAgIGV4Y2VwdDoKKyAgICAgICAgcHJpbnQoIiglcyk6IGZhaWxlZCB0byBy
ZWFkIGZpbGU6ICVzIiAlIChhcmd2WzBdLCBoZWFkZXJfcGF0aCkpCisgICAgICAgIHJldHVybiAx
CisKK2lmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CisgICAgc3lzLmV4aXQobWFpbihzeXMuYXJn
dikpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>