<?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>74679</bug_id>
          
          <creation_ts>2011-12-15 19:47:52 -0800</creation_ts>
          <short_desc>Make it easier to add files to XYZ.xcodeproj/project.pbxproj with the commit-queue</short_desc>
          <delta_ts>2014-02-03 13:52:23 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>abarth</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>eric</cc>
    
    <cc>levin</cc>
    
    <cc>lforschler</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>522462</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-12-15 19:47:52 -0800</bug_when>
    <thetext>When changing project.pbxproj, there is a high chance the file will conflicts with someone else when landing.

Each file is added in 4 sections: PBXBuildFile, PBXFileReference, the file&apos;s group and a build section (header or source).
The first 3 section are sorted. The build section is not sorted (probably because people do not know how to get there in XCode). Since files are added at the end of the build section, they always conflict.

I would like it to be easier to commit changes in the project files, and make it easier to merge the file between in branches.

Suggestions:
1) add a check to check-webkit-style to make sure all 4 sections are sorted alphabetically
2) add a script to sort the sections so we don&apos;t have to document how to do it in XCode
3) add a Git merge driver to solve the common problems of adding and removing files

Thought?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522512</commentid>
    <comment_count>1</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2011-12-15 21:39:00 -0800</bug_when>
    <thetext>(In reply to comment #0)
&gt; When changing project.pbxproj, there is a high chance the file will conflicts with someone else when landing.
&gt; 
&gt; Each file is added in 4 sections: PBXBuildFile, PBXFileReference, the file&apos;s group and a build section (header or source).
&gt; The first 3 section are sorted. The build section is not sorted (probably because people do not know how to get there in XCode). Since files are added at the end of the build section, they always conflict.
&gt; 
&gt; I would like it to be easier to commit changes in the project files, and make it easier to merge the file between in branches.

This would also resolve cq? patches with Xcode project file changes that might otherwise fail to be applied.

&gt; Suggestions:
&gt; 1) add a check to check-webkit-style to make sure all 4 sections are sorted alphabetically

Sounds good.

&gt; 2) add a script to sort the sections so we don&apos;t have to document how to do it in Xcode

Didn&apos;t I already write this, or does it miss a section?  :)

Tools/Scripts/sort-Xcode-project-file

&gt; 3) add a Git merge driver to solve the common problems of adding and removing files

This might be tricky, but would definitely be worth the effort (for those of us that merge Xcode project file changes regularly :).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>529983</commentid>
    <comment_count>2</comment_count>
      <attachid>121212</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-01-04 20:55:14 -0800</bug_when>
    <thetext>Created attachment 121212
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531715</commentid>
    <comment_count>3</comment_count>
      <attachid>121212</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2012-01-07 22:27:03 -0800</bug_when>
    <thetext>Comment on attachment 121212
Patch

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

r=me, but consider altering the test to make it clear which section is causing the error.

This is a great step in the right direction.  All we need to do is to sort the Xcode project files for these checks to be effective!

&gt; Tools/Scripts/webkitpy/style/checkers/xcodeproj.py:76
&gt; +        If the current match should not be after the previous match, issue and style error.&quot;&quot;&quot;

Grammar:  &quot;issue and style error.&quot;?  Maybe &quot;issue a style error.&quot;?

&gt; Tools/Scripts/webkitpy/style/checkers/xcodeproj.py:133
&gt; +                            # FIXME: Use the exact same rules as sort-Xcode-project-file.

Should probably file a bug for this and include it in the comment.

&gt; Tools/Scripts/webkitpy/style/checkers/xcodeproj_unittest.py:122
&gt; +        self.assert_error([&apos;developmentRegion = English;&apos;,
&gt; +                              &apos;mainGroup = 00B9318013BA867F0035A948 /* WebKit */;&apos;,
&gt; +                              &apos;00B9318013BA867F0035A948 /* WebKit */ = {&apos;,
&gt; +                              &apos;    isa = PBXGroup;&apos;,
&gt; +                              &apos;    children = (&apos;,
&gt; +                              &apos;        00A629C013D0BEC70050AC52 /* MarkupTokenBase.h */&apos;,
&gt; +                              &apos;        00022E6813CE1BBA00282D5B /* CharacterReferenceParserInlineMethods.h */,&apos;,
&gt; +                              &apos;    );&apos;,
&gt; +                              &apos;}&apos;,
&gt; +                              &apos;children = (&apos;,
&gt; +                              &apos;00A629C013D0BEC70050AC52 /* MarkupTokenBase.h */&apos;,
&gt; +                              &apos;00022E6813CE1BBA00282D5B /* CharacterReferenceParserInlineMethods.h */,&apos;,
&gt; +                              &apos;);&apos;], &apos;Resource files not sorted alphabetically: &quot;CharacterReferenceParserInlineMethods.h&quot; &lt; &quot;MarkupTokenBase.h&quot;.&apos;)

Nit: Might be less confusing to have different hashes/filenames in the outer &apos;children&apos; section so that you know which one is causing the error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531716</commentid>
    <comment_count>4</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2012-01-07 22:28:40 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 121212 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=121212&amp;action=review
&gt; 
&gt; r=me, but consider altering the test to make it clear which section is causing the error.

Also, I&apos;d feel a bit more comfortable if someone with more experience writing checker patches also reviewed this, but it seems pretty safe on the surface if it passes the all of the existing checker tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531717</commentid>
    <comment_count>5</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-01-07 22:35:01 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Also, I&apos;d feel a bit more comfortable if someone with more experience writing checker patches also reviewed this, but it seems pretty safe on the surface if it passes the all of the existing checker tests.

Eric maybe? Eric, would you mind having a look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531722</commentid>
    <comment_count>6</comment_count>
      <attachid>121212</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-01-07 23:14:10 -0800</bug_when>
    <thetext>Comment on attachment 121212
Patch

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

I&apos;m not sure what this does?  This is for validating XCode project files?  Is there some way we can have XCode do this for us?  Some sort of xcodebuild --lint-project option?

&gt; Tools/Scripts/webkitpy/style/checkers/xcodeproj.py:33
&gt; +def find_main_group_hash(lines):

Free functions. :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531725</commentid>
    <comment_count>7</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-01-07 23:27:40 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; I&apos;m not sure what this does?  This is for validating XCode project files?  Is there some way we can have XCode do this for us?  Some sort of xcodebuild --lint-project option?

The project files are valid, but the resource are unsorted because people forget to sort the files in the targets of  Xcode.

&gt; &gt; Tools/Scripts/webkitpy/style/checkers/xcodeproj.py:33
&gt; &gt; +def find_main_group_hash(lines):
&gt; 
&gt; Free functions. :(

What is the problem with free functions? I kinda like them in Python since everything is scoped by the module. I wasn&apos;t aware they are a problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531727</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-01-07 23:38:36 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; I&apos;m not sure what this does?  This is for validating XCode project files?  Is there some way we can have XCode do this for us?  Some sort of xcodebuild --lint-project option?
&gt; 
&gt; The project files are valid, but the resource are unsorted because people forget to sort the files in the targets of  Xcode.

Seems we should just make webkit-patch (or some other pre-submit hook) just auto-sort the file instead?  Why not correct the sort instead of warn about it?

&gt; &gt; &gt; Tools/Scripts/webkitpy/style/checkers/xcodeproj.py:33
&gt; &gt; &gt; +def find_main_group_hash(lines):
&gt; &gt; 
&gt; &gt; Free functions. :(
&gt; 
&gt; What is the problem with free functions? I kinda like them in Python since everything is scoped by the module. I wasn&apos;t aware they are a problem.

They&apos;re OK, they&apos;re just harder to mock.  In general OO programming (which webkit generally subscribes to) discourages free functions.  Just making a sad face, that&apos;s all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531823</commentid>
    <comment_count>9</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-01-08 15:04:21 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; &gt; The project files are valid, but the resource are unsorted because people forget to sort the files in the targets of  Xcode.
&gt; 
&gt; Seems we should just make webkit-patch (or some other pre-submit hook) just auto-sort the file instead?  Why not correct the sort instead of warn about it?

I think it would be good but it is an orthogonal issue. Not everyone uses webkit-patch, and the lack of sorting can be intentional (like having the generated files at the end of a group).

I&apos;d like to land this, and try the auto-sorting through webkit-patch in a separate bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531913</commentid>
    <comment_count>10</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2012-01-08 18:52:26 -0800</bug_when>
    <thetext>Was there a webkit-dev thread about this?

Do people really want this enforced?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531919</commentid>
    <comment_count>11</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-01-08 18:58:20 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; Was there a webkit-dev thread about this?
 
No, I did not think that was a big deal.

&gt; Do people really want this enforced?

It will make the commit queue more effective and, in some cases, make our life a lot easier for the Apple port.

What are your concerns regarding this? I am all for having more scripts to simplify the handling of XCode project files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531920</commentid>
    <comment_count>12</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2012-01-08 19:03:24 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; Was there a webkit-dev thread about this?
&gt; 
&gt; No, I did not think that was a big deal.
&gt; 
&gt; &gt; Do people really want this enforced?
&gt; 
&gt; It will make the commit queue more effective and, in some cases, make our life a lot easier for the Apple port.
&gt; 
&gt; What are your concerns regarding this? I am all for having more scripts to simplify the handling of XCode project files.

I just didn&apos;t know if people cared that much or would find it more of a pain to have the style checker flag this. I hope that everytime the style checker flags something, people think &quot;I need to fix this.&quot; as opposed to &quot;Oh there goes that noisy style checker. It is always saying stuff that no one cares about.&quot;

So I didn&apos;t know what category this fell in (which honestly I was reluctant to weigh in on this bug for a while.... but I had not articulated it). I know it is supposed to be sorted but it feels like it frequently isn&apos;t done by people and folks don&apos;t seem to care about it, so I wasn&apos;t sure about the value here. That&apos;s all :)

If you did this because you heard of a need, then that would be good evidence as well.  I was verbose but I hope that helps clarify what I was thinking.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531928</commentid>
    <comment_count>13</comment_count>
      <attachid>121212</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2012-01-08 19:17:00 -0800</bug_when>
    <thetext>Comment on attachment 121212
Patch

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

fwiw, this checker calls turn_off_line_filtering() which is good because it means that errors will be flagged regardless of the lines that the person changed.

For example, if they added something out of order the item after what they added may be flagged but that would be filtered out normally because it hasn&apos;t changed. Since this class calls turn_off_line_filtering(), the error will be displayed.

The downside is that as soon as this is checked in, any existing errors in the xcodeproj files will be flagged whenever someone changes them, so it would be good to make sure that they are properly sorted when checking this in.

Just a few minor comments below. Otherwise it seems fine (espcially if folks want this enforced, which I don&apos;t have a good sense of -- see my other comments.)

&gt; Tools/Scripts/webkitpy/style/checkers/xcodeproj.py:4
&gt; +# Copyright (C) 2011 Apple Inc. All rights reserved.

2012

&gt; Tools/Scripts/webkitpy/style/checkers/xcodeproj.py:82
&gt; +            if (current_hash == previous_hash):

No need for parenthesis around the condition.

&gt; Tools/Scripts/webkitpy/style/checkers/xcodeproj.py:99
&gt; +                if (file_section_start_regexp.match(line)):

No need for parenthesis around the condition.

&gt; Tools/Scripts/webkitpy/style/checkers/xcodeproj.py:121
&gt; +                if (children_section_start_regexp.match(line)):

parens.

&gt; Tools/Scripts/webkitpy/style/checkers/xcodeproj.py:140
&gt; +                                pass

Why do a &quot;pass&quot; here as opposed to doing a ! on the condition?

if file_extension and previous_file_extension:
    self._check_resource_order(line_index, regexp_match, previous_match)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531929</commentid>
    <comment_count>14</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-01-08 19:20:41 -0800</bug_when>
    <thetext>&gt; If you did this because you heard of a need, then that would be good evidence as well.

We loose time on a daily basis because the project files almost never merge. I am not doing this patch for fun :)

&gt; I was verbose but I hope that helps clarify what I was thinking.

I know it is already a pain to edit the XCode file and I don&apos;t want to make things worse.

I&apos;ll give a shot at sorting automatically through webkit-patch and land both patch together.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531973</commentid>
    <comment_count>15</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-01-08 22:17:44 -0800</bug_when>
    <thetext>Maybe we should just sort the project file automagically often?  That seems better than warning the user.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531974</commentid>
    <comment_count>16</comment_count>
      <attachid>121212</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-01-08 22:18:40 -0800</bug_when>
    <thetext>Comment on attachment 121212
Patch

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

&gt; Tools/Scripts/webkitpy/style/checkers/xcodeproj_unittest.py:77
&gt; +                           &apos;);&apos;], &apos;Resource files not sorted alphabetically: &quot;CharacterReferenceParserInlineMethods.h&quot; &lt; &quot;MarkupTokenBase.h&quot;.&apos;)

Maybe these messages should say what to do?

&quot;Resource files not sorted alphabetically. Please run Tools/Scripts/sort-xcodeproj.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>976003</commentid>
    <comment_count>17</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-02-03 13:52:23 -0800</bug_when>
    <thetext>Irrelevant now, iOS is upstream.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121212</attachid>
            <date>2012-01-04 20:55:14 -0800</date>
            <delta_ts>2012-01-08 22:18:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74679-20120104205513.patch</filename>
            <type>text/plain</type>
            <size>14391</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzOTQ5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZGRmNGY3YjlmMmI4NDUzODE1MmRkMTU4MjhiZjc5OTQ1
ZGQ2MTdiMS4uNzIxMmZmYzA1Nzk3OTgwNWUzMzRmOGU5MjRlMjQzOTU2M2I2M2I5YyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMw
IEBACisyMDEyLTAxLTA0ICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgor
CisgICAgICAgIE1ha2UgaXQgZWFzaWVyIHRvIGFkZCBmaWxlcyB0byBYWVoueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiB3aXRoIHRoZSBjb21taXQtcXVldWUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0Njc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbXByb3ZlIHRoZSBzdHlsZSBj
aGVja2VyIHRvIHZlcmlmeSB0aGUgb3JkZXJpbmcgb2YgcmVzb3VyY2VzIGluIFhDb2RlIHByb2pl
Y3QgZmlsZXMuCisKKyAgICAgICAgVGhlIGdvYWwgaXMgdG8gbWFrZSBzdXJlIHRoZSAiZmlsZXMi
IGFuZCAiY2hpbGRyZW4iIHNlY3Rpb25zIGFyZSBzb3J0ZWQgY29ycmVjdGx5LgorICAgICAgICBJ
dCBpcyB0aGUgY291bnRlcnBhcnQgdG8gdGhlIHNjcmlwdCBzb3J0LVhjb2RlLXByb2plY3QtZmls
ZS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMveGNvZGVwcm9q
LnB5OgorICAgICAgICAoZmluZF9tYWluX2dyb3VwX2hhc2gpOgorICAgICAgICAoX19pbml0X18p
OgorICAgICAgICAoX2NoZWNrX2RldmVsb3BtZW50X3JlZ2lvbl9saW5lKToKKyAgICAgICAgKF9j
aGVja19kZXZlbG9wbWVudF9yZWdpb24pOgorICAgICAgICAoX2NoZWNrX3Jlc291cmNlX29yZGVy
KToKKyAgICAgICAgKF9jaGVja19maWxlc19zZWN0aW9uc19vcmRlcik6CisgICAgICAgIChfY2hl
Y2tfY2hpbGRyZW5fc2VjdGlvbnNfb3JkZXIpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
c3R5bGUvY2hlY2tlcnMveGNvZGVwcm9qX3VuaXR0ZXN0LnB5OgorICAgICAgICAodGVzdF9jaGls
ZHJlbl9zZWN0aW9uX3NvcnRpbmcpOgorICAgICAgICAodGVzdF9jaGlsZHJlbl9zZWN0aW9uX3Nv
cnRpbmdfY2FzZSk6CisgICAgICAgICh0ZXN0X2NoaWxkcmVuX3NlY3Rpb25fbm9fbWFpbmdyb3Vw
X3NvcnRpbmcpOgorICAgICAgICAodGVzdF9jaGlsZHJlbl9zZWN0aW9uX25vX2V4dGVuc2lvbl9u
b19zb3J0aW5nKToKKyAgICAgICAgKHRlc3RfZmlsZV9zZWN0aW9uX3NvcnRpbmcpOgorCiAyMDEy
LTAxLTAzICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBbR1RLXSBydW4tZ3RrLXRlc3Qgc2hvdWxkIGlnbm9yZSBmaWxlcyB3aXRoIG5hbWVzIHdp
dGhvdXQgYSAidGVzdCIgb3IgIlRlc3QiIHByZWZpeApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy94Y29kZXByb2oucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3N0eWxlL2NoZWNrZXJzL3hjb2RlcHJvai5weQppbmRleCA4OWMwNzJkOTQ1MDQ1Nzlk
YzFhOTY4MGQ2NDY0YzYwYzlmOWMxOTc2Li4xOGFlNzgzNTUyMmRhYWJiNjc4MmY3ZTRiNTBmYzJl
NTJjMzZjYjJlIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNr
ZXJzL3hjb2RlcHJvai5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNr
ZXJzL3hjb2RlcHJvai5weQpAQCAtMSw2ICsxLDcgQEAKICMhL3Vzci9iaW4vZW52IHB5dGhvbgog
IwogIyBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyMgQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMK
ICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjUsOSArMjYsMTggQEAKIAogIiIiQ2hlY2tz
IFhjb2RlIHByb2plY3QgZmlsZXMuIiIiCiAKK2ltcG9ydCBvcwogaW1wb3J0IHJlCiAKIAorZGVm
IGZpbmRfbWFpbl9ncm91cF9oYXNoKGxpbmVzKToKKyAgICAiIiJSZXR1cm4gdGhlIElEL0hhc2gg
b2YgdGhlIE1haW5Hcm91cCAodGhlIHJvb3Qgb2YgdGhlIHRyZWUpIG9mIHRoZSBwcm9qZWN0IGZp
bGUuIiIiCisgICAgbWFpbl9ncm91cF9yZWdleHAgPSByZS5jb21waWxlKCdeKFxzKiltYWluR3Jv
dXAgPSAoP1A8aGFzaD5bMC05QS1GXXsyNH0pIC9cKiAuKyBcKi87JCcpCisgICAgZm9yIGxpbmUg
aW4gbGluZXM6CisgICAgICAgIG1hdGNoID0gbWFpbl9ncm91cF9yZWdleHAubWF0Y2gobGluZSkK
KyAgICAgICAgaWYgbWF0Y2g6CisgICAgICAgICAgICByZXR1cm4gbWF0Y2guZ3JvdXAoJ2hhc2gn
KQorCiBjbGFzcyBYY29kZVByb2plY3RGaWxlQ2hlY2tlcihvYmplY3QpOgogCiAgICAgIiIiUHJv
Y2Vzc2VzIFhjb2RlIHByb2plY3QgZmlsZSBsaW5lcyBmb3IgY2hlY2tpbmcgc3R5bGUuIiIiCkBA
IC0zNyw4ICs0Nyw5IEBAIGNsYXNzIFhjb2RlUHJvamVjdEZpbGVDaGVja2VyKG9iamVjdCk6CiAg
ICAgICAgIHNlbGYuaGFuZGxlX3N0eWxlX2Vycm9yID0gaGFuZGxlX3N0eWxlX2Vycm9yCiAgICAg
ICAgIHNlbGYuaGFuZGxlX3N0eWxlX2Vycm9yLnR1cm5fb2ZmX2xpbmVfZmlsdGVyaW5nKCkKICAg
ICAgICAgc2VsZi5fZGV2ZWxvcG1lbnRfcmVnaW9uX3JlZ2V4ID0gcmUuY29tcGlsZSgnZGV2ZWxv
cG1lbnRSZWdpb24gPSAoP1A8cmVnaW9uPi4rKTsnKQorICAgICAgICBzZWxmLl9yZXNvdXJjZV9y
ZWdleHAgPSByZS5jb21waWxlKCdeKFxzKikoP1A8aGFzaD5bMC05QS1GXXsyNH0pIC9cKiAoP1A8
bmFtZT4uKykgXCovLD8kJykKIAotICAgIGRlZiBfY2hlY2tfZGV2ZWxvcG1lbnRfcmVnaW9uKHNl
bGYsIGxpbmVfaW5kZXgsIGxpbmUpOgorICAgIGRlZiBfY2hlY2tfZGV2ZWxvcG1lbnRfcmVnaW9u
X2xpbmUoc2VsZiwgbGluZV9pbmRleCwgbGluZSk6CiAgICAgICAgICIiIlJldHVybnMgVHJ1ZSB3
aGVuIGRldmVsb3BtZW50UmVnaW9uIGlzIGRldGVjdGVkLiIiIgogICAgICAgICBtYXRjaGVkID0g
c2VsZi5fZGV2ZWxvcG1lbnRfcmVnaW9uX3JlZ2V4LnNlYXJjaChsaW5lKQogICAgICAgICBpZiBu
b3QgbWF0Y2hlZDoKQEAgLTQ5LDEzICs2MCw5MyBAQCBjbGFzcyBYY29kZVByb2plY3RGaWxlQ2hl
Y2tlcihvYmplY3QpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RldmVs
b3BtZW50UmVnaW9uIGlzIG5vdCBFbmdsaXNoLicpCiAgICAgICAgIHJldHVybiBUcnVlCiAKLSAg
ICBkZWYgY2hlY2soc2VsZiwgbGluZXMpOgorICAgIGRlZiBfY2hlY2tfZGV2ZWxvcG1lbnRfcmVn
aW9uKHNlbGYsIGxpbmVzKToKICAgICAgICAgZGV2ZWxvcG1lbnRfcmVnaW9uX2lzX2RldGVjdGVk
ID0gRmFsc2UKICAgICAgICAgZm9yIGxpbmVfaW5kZXgsIGxpbmUgaW4gZW51bWVyYXRlKGxpbmVz
KToKLSAgICAgICAgICAgIGlmIHNlbGYuX2NoZWNrX2RldmVsb3BtZW50X3JlZ2lvbihsaW5lX2lu
ZGV4LCBsaW5lKToKKyAgICAgICAgICAgIGlmIHNlbGYuX2NoZWNrX2RldmVsb3BtZW50X3JlZ2lv
bl9saW5lKGxpbmVfaW5kZXgsIGxpbmUpOgogICAgICAgICAgICAgICAgIGRldmVsb3BtZW50X3Jl
Z2lvbl9pc19kZXRlY3RlZCA9IFRydWUKIAogICAgICAgICBpZiBub3QgZGV2ZWxvcG1lbnRfcmVn
aW9uX2lzX2RldGVjdGVkOgogICAgICAgICAgICAgc2VsZi5oYW5kbGVfc3R5bGVfZXJyb3IobGVu
KGxpbmVzKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4Y29kZXByb2ov
c2V0dGluZ3MnLCA1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ01pc3Np
bmcgImRldmVsb3BtZW50UmVnaW9uID0gRW5nbGlzaCIuJykKKworICAgIGRlZiBfY2hlY2tfcmVz
b3VyY2Vfb3JkZXIoc2VsZiwgbGluZV9pbmRleCwgcmVzb3VyY2VfcmVnZXhwX21hdGNoLCBwcmV2
aW91c19yZXNvdXJjZV9yZWdleHBfbWF0Y2gpOgorICAgICAgICAiIiJDb21wYXJlIHRoZSAncmVz
b3VyY2VfcmVnZXhwX21hdGNoJyBvZiBsaW5lICdsaW5lX2luZGV4JyB0byB0aGUgcHJldmlvdXMg
cmVnZXhwIG1hdGNoICdwcmV2aW91c19yZXNvdXJjZV9yZWdleHBfbWF0Y2gnLgorICAgICAgICBJ
ZiB0aGUgY3VycmVudCBtYXRjaCBzaG91bGQgbm90IGJlIGFmdGVyIHRoZSBwcmV2aW91cyBtYXRj
aCwgaXNzdWUgYW5kIHN0eWxlIGVycm9yLiIiIgorICAgICAgICBmaWxlbmFtZSA9IHJlc291cmNl
X3JlZ2V4cF9tYXRjaC5ncm91cCgnbmFtZScpCisgICAgICAgIHByZXZpb3VzX2ZpbGVuYW1lID0g
cHJldmlvdXNfcmVzb3VyY2VfcmVnZXhwX21hdGNoLmdyb3VwKCduYW1lJykKKyAgICAgICAgaWYg
ZmlsZW5hbWUubG93ZXIoKSA9PSBwcmV2aW91c19maWxlbmFtZS5sb3dlcigpOgorICAgICAgICAg
ICAgY3VycmVudF9oYXNoID0gcmVzb3VyY2VfcmVnZXhwX21hdGNoLmdyb3VwKCdoYXNoJykKKyAg
ICAgICAgICAgIHByZXZpb3VzX2hhc2ggPSBwcmV2aW91c19yZXNvdXJjZV9yZWdleHBfbWF0Y2gu
Z3JvdXAoJ2hhc2gnKQorICAgICAgICAgICAgaWYgKGN1cnJlbnRfaGFzaCA9PSBwcmV2aW91c19o
YXNoKToKKyAgICAgICAgICAgICAgICBzZWxmLmhhbmRsZV9zdHlsZV9lcnJvcihsaW5lX2luZGV4
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4Y29kZXByb2ovcmVz
b3VyY2VvcmRlcicsIDUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
J1RoZSBmaWxlICVzIiBpcyByZWZlcmVuY2VkIHR3aWNlLicgJSAoZmlsZW5hbWUpKQorICAgICAg
ICBlbGlmIGZpbGVuYW1lLmxvd2VyKCkgPCBwcmV2aW91c19maWxlbmFtZS5sb3dlcigpOgorICAg
ICAgICAgICAgc2VsZi5oYW5kbGVfc3R5bGVfZXJyb3IobGluZV9pbmRleCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICd4Y29kZXByb2ovcmVzb3VyY2VvcmRlcicsIDUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUmVzb3VyY2UgZmlsZXMgbm90IHNv
cnRlZCBhbHBoYWJldGljYWxseTogIiVzIiA8ICIlcyIuJyAlIChmaWxlbmFtZSwgcHJldmlvdXNf
ZmlsZW5hbWUpKQorCisgICAgZGVmIF9jaGVja19maWxlc19zZWN0aW9uc19vcmRlcihzZWxmLCBs
aW5lcyk6CisgICAgICAgICIiIlZlcmlmeSB0aGUgc29ydGluZyBvcmRlciBvZiB0aGUgZmlsZXMg
PSAoKTsgc2VjdGlvbnMgKHJlZmVyZW5jaW5nIGFsbCBmaWxlcyBpbiBhIHRhcmdldCkuIiIiCisg
ICAgICAgIGZpbGVfc2VjdGlvbl9zdGFydF9yZWdleHAgPSByZS5jb21waWxlKCdeKFxzKilmaWxl
cyA9IFwoXHMqJCcpCisgICAgICAgIGVudW1lcmF0ZWRfbGluZV9pdGVyYXRvciA9IGVudW1lcmF0
ZShsaW5lcykKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAg
ICAgICAgICBsaW5lX2luZGV4LCBsaW5lID0gZW51bWVyYXRlZF9saW5lX2l0ZXJhdG9yLm5leHQo
KQorICAgICAgICAgICAgICAgIHByZXZpb3VzX21hdGNoID0gTm9uZQorICAgICAgICAgICAgICAg
IGlmIChmaWxlX3NlY3Rpb25fc3RhcnRfcmVnZXhwLm1hdGNoKGxpbmUpKToKKyAgICAgICAgICAg
ICAgICAgICAgbGluZV9pbmRleCwgbGluZSA9IGVudW1lcmF0ZWRfbGluZV9pdGVyYXRvci5uZXh0
KCkKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgbGluZS5zdHJpcCgpICE9ICcpOyc6CisgICAg
ICAgICAgICAgICAgICAgICAgICByZWdleHBfbWF0Y2ggPSBzZWxmLl9yZXNvdXJjZV9yZWdleHAu
bWF0Y2gobGluZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHByZXZpb3VzX21hdGNoOgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2NoZWNrX3Jlc291cmNlX29yZGVyKGxp
bmVfaW5kZXgsIHJlZ2V4cF9tYXRjaCwgcHJldmlvdXNfbWF0Y2gpCisgICAgICAgICAgICAgICAg
ICAgICAgICBwcmV2aW91c19tYXRjaCA9IHJlZ2V4cF9tYXRjaAorICAgICAgICAgICAgICAgICAg
ICAgICAgbGluZV9pbmRleCwgbGluZSA9IGVudW1lcmF0ZWRfbGluZV9pdGVyYXRvci5uZXh0KCkK
KyAgICAgICAgZXhjZXB0IFN0b3BJdGVyYXRpb246CisgICAgICAgICAgICBwYXNzCisKKyAgICBk
ZWYgX2NoZWNrX2NoaWxkcmVuX3NlY3Rpb25zX29yZGVyKHNlbGYsIGxpbmVzKToKKyAgICAgICAg
IiIiVmVyaWZ5IHRoZSBzb3J0aW5nIG9mIHRoZSBjaGlsZHJlbiA9ICgpOyBzZWN0aW9ucyAocmVm
ZXJlbmNpbmcgZmlsZXMgYnkgZ3JvdXAvImRpcmVjdG9yeSIpLiIiIgorICAgICAgICBtYWluX2dy
b3VwX2hhc2ggPSBmaW5kX21haW5fZ3JvdXBfaGFzaChsaW5lcykKKyAgICAgICAgY2hpbGRyZW5f
c2VjdGlvbl9zdGFydF9yZWdleHAgPSByZS5jb21waWxlKCdeKFxzKiljaGlsZHJlbiA9IFwoXHMq
JCcpCisKKyAgICAgICAgZW51bWVyYXRlZF9saW5lX2l0ZXJhdG9yID0gZW51bWVyYXRlKGxpbmVz
KQorICAgICAgICBsYXN0X2xpbmVzID0gW10KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgd2hp
bGUgVHJ1ZToKKyAgICAgICAgICAgICAgICBsaW5lX2luZGV4LCBsaW5lID0gZW51bWVyYXRlZF9s
aW5lX2l0ZXJhdG9yLm5leHQoKQorICAgICAgICAgICAgICAgIGxhc3RfbGluZXMgPSBsYXN0X2xp
bmVzWy0yOl0gKyBbbGluZV0KKyAgICAgICAgICAgICAgICBpZiAoY2hpbGRyZW5fc2VjdGlvbl9z
dGFydF9yZWdleHAubWF0Y2gobGluZSkpOgorICAgICAgICAgICAgICAgICAgICBpZiBtYWluX2dy
b3VwX2hhc2ggYW5kIGxhc3RfbGluZXNbMF0uc3RyaXAoKS5zdGFydHN3aXRoKG1haW5fZ3JvdXBf
aGFzaCk6CisgICAgICAgICAgICAgICAgICAgICAgICAjIFRoZSBNYWluIEdyb3VwIGlzIG5vdCBz
b3J0ZWQgYWxwaGFiZXRpY2FsbHkuCisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQor
CisgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzX21hdGNoID0gTm9uZQorICAgICAgICAgICAg
ICAgICAgICBsaW5lX2luZGV4LCBsaW5lID0gZW51bWVyYXRlZF9saW5lX2l0ZXJhdG9yLm5leHQo
KQorICAgICAgICAgICAgICAgICAgICB3aGlsZSBsaW5lLnN0cmlwKCkgIT0gJyk7JzoKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHJlZ2V4cF9tYXRjaCA9IHNlbGYuX3Jlc291cmNlX3JlZ2V4cC5t
YXRjaChsaW5lKQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgcHJldmlvdXNfbWF0Y2g6Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBUbyBiZSBjb25zaXN0ZW50IHdpdGggdGhlIHNj
cmlwdCBzb3J0LVhjb2RlLXByb2plY3QtZmlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAjIHdlIHNraXAgdGVzdGluZyB3aGVuIG9uZSBmaWxlbmFtZSBkb2VzIG5vdCBoYXZlIGFuIGV4
dGVuc2lvbi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEZJWE1FOiBVc2UgdGhlIGV4
YWN0IHNhbWUgcnVsZXMgYXMgc29ydC1YY29kZS1wcm9qZWN0LWZpbGUuCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZmlsZW5hbWUgPSByZWdleHBfbWF0Y2guZ3JvdXAoJ25hbWUnKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVfZXh0ZW5zaW9uID0gb3MucGF0aC5zcGxpdGV4
dChmaWxlbmFtZSlbMV0KKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzX2Zp
bGVuYW1lID0gcHJldmlvdXNfbWF0Y2guZ3JvdXAoJ25hbWUnKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHByZXZpb3VzX2ZpbGVfZXh0ZW5zaW9uID0gb3MucGF0aC5zcGxpdGV4dChwcmV2
aW91c19maWxlbmFtZSlbMV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBub3QgZmls
ZV9leHRlbnNpb24gb3Igbm90IHByZXZpb3VzX2ZpbGVfZXh0ZW5zaW9uOgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fY2hlY2tfcmVzb3VyY2Vf
b3JkZXIobGluZV9pbmRleCwgcmVnZXhwX21hdGNoLCBwcmV2aW91c19tYXRjaCkKKworICAgICAg
ICAgICAgICAgICAgICAgICAgcHJldmlvdXNfbWF0Y2ggPSByZWdleHBfbWF0Y2gKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGxpbmVfaW5kZXgsIGxpbmUgPSBlbnVtZXJhdGVkX2xpbmVfaXRlcmF0
b3IubmV4dCgpCisgICAgICAgIGV4Y2VwdCBTdG9wSXRlcmF0aW9uOgorICAgICAgICAgICAgcGFz
cworCisgICAgZGVmIGNoZWNrKHNlbGYsIGxpbmVzKToKKyAgICAgICAgc2VsZi5fY2hlY2tfZGV2
ZWxvcG1lbnRfcmVnaW9uKGxpbmVzKQorICAgICAgICBzZWxmLl9jaGVja19maWxlc19zZWN0aW9u
c19vcmRlcihsaW5lcykKKyAgICAgICAgc2VsZi5fY2hlY2tfY2hpbGRyZW5fc2VjdGlvbnNfb3Jk
ZXIobGluZXMpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNr
ZXJzL3hjb2RlcHJval91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUv
Y2hlY2tlcnMveGNvZGVwcm9qX3VuaXR0ZXN0LnB5CmluZGV4IDkxZDkxOTJlOWZlNTBhMTczNjk3
NGZjM2UzZGQzNWI0ZGFmZjg3NmQuLjZhYjYwM2Y1YmEyZDdjN2NkZTc5OWM4OTI3YWM5NmU3ZjUw
MjA2YjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMv
eGNvZGVwcm9qX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUv
Y2hlY2tlcnMveGNvZGVwcm9qX3VuaXR0ZXN0LnB5CkBAIC02OSw1ICs2OSw4MyBAQCBjbGFzcyBY
Y29kZVByb2plY3RGaWxlQ2hlY2tlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBz
ZWxmLmFzc2VydF9lcnJvcihbJ2RldmVsb3BtZW50UmVnaW9uID0gSmFwYW5lc2U7J10sCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICdkZXZlbG9wbWVudFJlZ2lvbiBpcyBub3QgRW5nbGlzaC4n
KQogCisgICAgZGVmIHRlc3RfY2hpbGRyZW5fc2VjdGlvbl9zb3J0aW5nKHNlbGYpOgorICAgICAg
ICBzZWxmLmFzc2VydF9lcnJvcihbJ2RldmVsb3BtZW50UmVnaW9uID0gRW5nbGlzaDsnLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ2NoaWxkcmVuID0gKCcsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAnMDBBNjI5QzAxM0QwQkVDNzAwNTBBQzUyIC8qIE1hcmt1cFRva2VuQmFzZS5o
ICovJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICcwMDAyMkU2ODEzQ0UxQkJBMDAyODJE
NUIgLyogQ2hhcmFjdGVyUmVmZXJlbmNlUGFyc2VySW5saW5lTWV0aG9kcy5oICovLCcsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnKTsnXSwgJ1Jlc291cmNlIGZpbGVzIG5vdCBzb3J0ZWQg
YWxwaGFiZXRpY2FsbHk6ICJDaGFyYWN0ZXJSZWZlcmVuY2VQYXJzZXJJbmxpbmVNZXRob2RzLmgi
IDwgIk1hcmt1cFRva2VuQmFzZS5oIi4nKQorICAgICAgICBzZWxmLmFzc2VydF9lcnJvcihbJ2Rl
dmVsb3BtZW50UmVnaW9uID0gRW5nbGlzaDsnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
J2NoaWxkcmVuID0gKCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAnMDBBNjI5QzAxM0Qw
QkVDNzAwNTBBQzUyIC8qIE1hcmt1cFRva2VuQmFzZS5oICovJywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICcwMEE2MjlDMDEzRDBCRUM3MDA1MEFDNTIgLyogTWFya3VwVG9rZW5CYXNlLmgg
Ki8nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJyk7J10sICdUaGUgZmlsZSBNYXJrdXBU
b2tlbkJhc2UuaCIgaXMgcmVmZXJlbmNlZCB0d2ljZS4nKQorICAgICAgICBzZWxmLmFzc2VydF9u
b19lcnJvcihbJ2RldmVsb3BtZW50UmVnaW9uID0gRW5nbGlzaDsnLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ2NoaWxkcmVuID0gKCcsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAnMDAwMjJFNjgxM0NFMUJCQTAwMjgyRDVCIC8qIENoYXJhY3RlclJlZmVyZW5jZVBhcnNl
cklubGluZU1ldGhvZHMuaCAqLywnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzAw
QTYyOUMwMTNEMEJFQzcwMDUwQUM1MiAvKiBNYXJrdXBUb2tlbkJhc2UuaCAqLycsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnKTsnXSkKKworICAgIGRlZiB0ZXN0X2NoaWxkcmVuX3Nl
Y3Rpb25fc29ydGluZ19jYXNlKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydF9lcnJvcihbJ2Rl
dmVsb3BtZW50UmVnaW9uID0gRW5nbGlzaDsnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
J2NoaWxkcmVuID0gKCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAnMDBBNjI5QzAxM0Qw
QkVDNzAwNTBBQzUyIC8qIGJiLmggKi8nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJzAw
MDIyRTY4MTNDRTFCQkEwMDI4MkQ1QiAvKiBBQS5oICovLCcsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAnKTsnXSwgJ1Jlc291cmNlIGZpbGVzIG5vdCBzb3J0ZWQgYWxwaGFiZXRpY2FsbHk6
ICJBQS5oIiA8ICJiYi5oIi4nKQorICAgICAgICBzZWxmLmFzc2VydF9ub19lcnJvcihbJ2RldmVs
b3BtZW50UmVnaW9uID0gRW5nbGlzaDsnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
J2NoaWxkcmVuID0gKCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnMDAwMjJFNjgx
M0NFMUJCQTAwMjgyRDVCIC8qIGFhLmggKi8sJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICcwMEE2MjlDMDEzRDBCRUM3MDA1MEFDNTIgLyogQkIuaCAqLycsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAnKTsnXSkKKworICAgIGRlZiB0ZXN0X2NoaWxkcmVuX3NlY3Rpb25f
bm9fbWFpbmdyb3VwX3NvcnRpbmcoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0X25vX2Vycm9y
KFsnZGV2ZWxvcG1lbnRSZWdpb24gPSBFbmdsaXNoOycsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAnbWFpbkdyb3VwID0gMDBCOTMxODAxM0JBODY3RjAwMzVBOTQ4IC8qIFdlYktpdCAq
LzsnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzAwQjkzMTgwMTNCQTg2N0YwMDM1
QTk0OCAvKiBXZWJLaXQgKi8gPSB7JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcg
ICAgaXNhID0gUEJYR3JvdXA7JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAg
Y2hpbGRyZW4gPSAoJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIDAw
QTYyOUMwMTNEMEJFQzcwMDUwQUM1MiAvKiBNYXJrdXBUb2tlbkJhc2UuaCAqLycsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAwMDAyMkU2ODEzQ0UxQkJBMDAyODJENUIg
LyogQ2hhcmFjdGVyUmVmZXJlbmNlUGFyc2VySW5saW5lTWV0aG9kcy5oICovLCcsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnICAgICk7J10pCisgICAgICAgIHNlbGYuYXNzZXJ0X2Vy
cm9yKFsnZGV2ZWxvcG1lbnRSZWdpb24gPSBFbmdsaXNoOycsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAnbWFpbkdyb3VwID0gMDBCOTMxODAxM0JBODY3RjAwMzVBOTQ4IC8qIFdlYktp
dCAqLzsnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzAwQjkzMTgwMTNCQTg2N0Yw
MDM1QTk0OCAvKiBXZWJLaXQgKi8gPSB7JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICcgICAgaXNhID0gUEJYR3JvdXA7JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcg
ICAgY2hpbGRyZW4gPSAoJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAg
IDAwQTYyOUMwMTNEMEJFQzcwMDUwQUM1MiAvKiBNYXJrdXBUb2tlbkJhc2UuaCAqLycsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAwMDAyMkU2ODEzQ0UxQkJBMDAyODJE
NUIgLyogQ2hhcmFjdGVyUmVmZXJlbmNlUGFyc2VySW5saW5lTWV0aG9kcy5oICovLCcsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICk7JywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICd9JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjaGlsZHJlbiA9
ICgnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzAwQTYyOUMwMTNEMEJFQzcwMDUw
QUM1MiAvKiBNYXJrdXBUb2tlbkJhc2UuaCAqLycsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAnMDAwMjJFNjgxM0NFMUJCQTAwMjgyRDVCIC8qIENoYXJhY3RlclJlZmVyZW5jZVBhcnNl
cklubGluZU1ldGhvZHMuaCAqLywnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyk7
J10sICdSZXNvdXJjZSBmaWxlcyBub3Qgc29ydGVkIGFscGhhYmV0aWNhbGx5OiAiQ2hhcmFjdGVy
UmVmZXJlbmNlUGFyc2VySW5saW5lTWV0aG9kcy5oIiA8ICJNYXJrdXBUb2tlbkJhc2UuaCIuJykK
KworICAgIGRlZiB0ZXN0X2NoaWxkcmVuX3NlY3Rpb25fbm9fZXh0ZW5zaW9uX25vX3NvcnRpbmco
c2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0X25vX2Vycm9yKFsnZGV2ZWxvcG1lbnRSZWdpb24g
PSBFbmdsaXNoOycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2hpbGRyZW4gPSAo
JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcyOUE4MTI0MzBGQkI5QzFEMDA1MTAy
OTMgLyogQkJCQiAqLywnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0ZEQTE1RUJD
MTJCMDNGMEIwMDNBNTgzQSAvKiBBQUFBICovLCcsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAnMDAwMjJFNjgxM0NFMUJCQTAwMjgyRDVCIC8qIENoYXJhY3RlclJlZmVyZW5jZVBhcnNl
cklubGluZU1ldGhvZHMuaCAqLywnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzAw
QTYyOUMwMTNEMEJFQzcwMDUwQUM1MiAvKiBNYXJrdXBUb2tlbkJhc2UuaCAqLycsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnKTsnXSkKKworICAgIGRlZiB0ZXN0X2ZpbGVfc2VjdGlv
bl9zb3J0aW5nKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydF9lcnJvcihbJ2RldmVsb3BtZW50
UmVnaW9uID0gRW5nbGlzaDsnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpbGVzID0g
KCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAnMDBBNjI5QzAxM0QwQkVDNzAwNTBBQzUy
IC8qIE1hcmt1cFRva2VuQmFzZS5oICovJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICcw
MDAyMkU2ODEzQ0UxQkJBMDAyODJENUIgLyogQ2hhcmFjdGVyUmVmZXJlbmNlUGFyc2VySW5saW5l
TWV0aG9kcy5oICovLCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAnKTsnXSwgJ1Jlc291
cmNlIGZpbGVzIG5vdCBzb3J0ZWQgYWxwaGFiZXRpY2FsbHk6ICJDaGFyYWN0ZXJSZWZlcmVuY2VQ
YXJzZXJJbmxpbmVNZXRob2RzLmgiIDwgIk1hcmt1cFRva2VuQmFzZS5oIi4nKQorICAgICAgICBz
ZWxmLmFzc2VydF9lcnJvcihbJ2RldmVsb3BtZW50UmVnaW9uID0gRW5nbGlzaDsnLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ2ZpbGVzID0gKCcsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAnMDBBNjI5QzAxM0QwQkVDNzAwNTBBQzUyIC8qIE1hcmt1cFRva2VuQmFzZS5oICovJywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICcwMEE2MjlDMDEzRDBCRUM3MDA1MEFDNTIgLyog
TWFya3VwVG9rZW5CYXNlLmggKi8nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJyk7J10s
ICdUaGUgZmlsZSBNYXJrdXBUb2tlbkJhc2UuaCIgaXMgcmVmZXJlbmNlZCB0d2ljZS4nKQorICAg
ICAgICBzZWxmLmFzc2VydF9ub19lcnJvcihbJ2RldmVsb3BtZW50UmVnaW9uID0gRW5nbGlzaDsn
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpbGVzID0gKCcsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnMDAwMjJFNjgxM0NFMUJCQTAwMjgyRDVCIC8qIENoYXJhY3RlclJlZmVy
ZW5jZVBhcnNlcklubGluZU1ldGhvZHMuaCAqLywnLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJzAwQTYyOUMwMTNEMEJFQzcwMDUwQUM1MiAvKiBNYXJrdXBUb2tlbkJhc2UuaCAqLycsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnKTsnXSkKKwogaWYgX19uYW1lX18gPT0gJ19fbWFp
bl9fJzoKICAgICB1bml0dGVzdC5tYWluKCkK
</data>
<flag name="review"
          id="121632"
          type_id="1"
          status="+"
          setter="ddkilzer"
    />
    <flag name="commit-queue"
          id="122095"
          type_id="3"
          status="-"
          setter="ddkilzer"
    />
          </attachment>
      

    </bug>

</bugzilla>