{
  "appeals": 1,
  "budgets": {
    "baseline_limit_s": 600,
    "verification_timeout_s": 600,
    "worker": {
      "max_completion_tokens": 96000,
      "max_turns": 60,
      "max_wall_seconds": 1500.0,
      "prompt_token_budget": 160000
    }
  },
  "issue": "The `openmdao n2` command shows the N2 for a sub-problem instead of the top-level Problem\n### Description\n\nBecause a sub-Problem completes it's setup() first, it will be the first to encounter the hook set by the `openmdao n2` command, causing the N2 diagram to be displayed for that sub-Problem followed immediately by a `sys.exit()`.\n\nThe `openmdao n2` command should, by default, show the N2 diagram for the top-level problem.\n\nA new `--problem` argument should be added to the `openmdao n2` command so that the user can specify the pathname of a sub-problem if they want to see the N2 for that instead of for the top-level Problem.\n\n\n\n### Example\n\nCurrently, invoking `openmdao n2` on the following script will display the N2 diagram for the sub-Problem:\n```\nif __name__ == '__main__':\n\n        import openmdao.api as om\n\n        # create sub problem\n        submodel = om.Group()\n        submodel.add_subsystem('subcomp', om.ExecComp('y = x1**2 + x2**2 + x3**2'), promotes=['*'])\n\n        subprob = om.Problem(submodel)\n\n        # create top problem\n        p = om.Problem()\n        p.model.add_subsystem('submodelcomp',\n                              om.SubmodelComp(problem=subprob, inputs=['*'], outputs=['*']),\n                              promotes=['*'])\n        p.model.add_subsystem('supercomp',\n                              om.ExecComp('z = 3 * y'),\n                              promotes=['*'])\n\n        p.setup()\n        p.final_setup()\n\n        # verify model runs correctly\n        p.set_val('x1', 1)\n        p.set_val('x2', 2)\n        p.set_val('x3', 3)\n\n        p.run_model()\n```\n\n### OpenMDAO Version\n\n3.28.1-dev\n\n### Relevant environment information\n\n_No response_",
  "source": {
    "image": "docker.io/swerebenchv2/openmdao-openmdao:3029-eca4a09",
    "platform": "linux/amd64",
    "python": "python",
    "setup": [
      "python -c 'import base64; from pathlib import Path; Path('\"'\"'/tmp/receipts-openmdao__openmdao-3029-test.patch'\"'\"').write_bytes(base64.b64decode('\"'\"'ZGlmZiAtLWdpdCBhL29wZW5tZGFvL3Zpc3VhbGl6YXRpb24vbjJfdmlld2VyL3Rlc3RzL2dlbl9ndWlfdGVzdC5weSBiL29wZW5tZGFvL3Zpc3VhbGl6YXRpb24vbjJfdmlld2VyL3Rlc3RzL2dlbl9ndWlfdGVzdC5weQppbmRleCA3ODRmNTIxNmMuLjU1NTgxZGRmNSAxMDA2NDQKLS0tIGEvb3Blbm1kYW8vdmlzdWFsaXphdGlvbi9uMl92aWV3ZXIvdGVzdHMvZ2VuX2d1aV90ZXN0LnB5CisrKyBiL29wZW5tZGFvL3Zpc3VhbGl6YXRpb24vbjJfdmlld2VyL3Rlc3RzL2dlbl9ndWlfdGVzdC5weQpAQCAtOCwxMSArOCw2IEBAIGltcG9ydCBzeXMKIAogZnJvbSBvcGVubWRhby51dGlscy5ndWlfdGVzdGluZ191dGlscyBpbXBvcnQgX0d1aVRlc3RDYXNlCiAKLXRyeToKLSAgICBmcm9tIHBhcmFtZXRlcml6ZWQgaW1wb3J0IHBhcmFtZXRlcml6ZWQKLWV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICBmcm9tIG9wZW5tZGFvLnV0aWxzLmFzc2VydF91dGlscyBpbXBvcnQgU2tpcFBhcmFtZXRlcml6ZWQgYXMgcGFyYW1ldGVyaXplZAotCiAjIHNldCBERUJVRyB0byBUcnVlIGlmIHlvdSB3YW50IHRvIHZpZXcgdGhlIGdlbmVyYXRlZCBIVE1MIGZpbGUKIEdVSV9ESUFHX1NVRkZJWCA9ICdfR0VOX1RFU1QuaHRtbCcKIEdVSV9URVNUX1NVQkRJUiA9ICdndWlfdGVzdF9tb2RlbHMnCmRpZmYgLS1naXQgYS9vcGVubWRhby92aXN1YWxpemF0aW9uL24yX3ZpZXdlci90ZXN0cy9zZWxsYXJfbm9fdmFsdWVzLmpzb24gYi9vcGVubWRhby92aXN1YWxpemF0aW9uL24yX3ZpZXdlci90ZXN0cy9zZWxsYXJfbm9fdmFsdWVzLmpzb24KaW5kZXggODM2MjY1ODBhLi45YjNjNmUzNGYgMTAwNjQ0Ci0tLSBhL29wZW5tZGFvL3Zpc3VhbGl6YXRpb24vbjJfdmlld2VyL3Rlc3RzL3NlbGxhcl9ub192YWx1ZXMuanNvbgorKysgYi9vcGVubWRhby92aXN1YWxpemF0aW9uL24yX3ZpZXdlci90ZXN0cy9zZWxsYXJfbm9fdmFsdWVzLmpzb24KQEAgLTU3LDggKzU3LDcgQEAKICAgICAgICAgICAgICAgICAgICAgInNoYXBlIjogIigyLCkiLAogICAgICAgICAgICAgICAgICAgICAiZGVzYyI6ICIiLAogICAgICAgICAgICAgICAgICAgICAiaW1wbGljaXQiOiBmYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgInVuaXRzIjogIk5vbmUiLAotICAgICAgICAgICAgICAgICAgICAidmFsIjogbnVsbAorICAgICAgICAgICAgICAgICAgICAidW5pdHMiOiAiTm9uZSIKICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAidjEiLApAQCAtNjksOCArNjgsNyBAQAogICAgICAgICAgICAgICAgICAgICAic2hhcGUiOiAiKDEsKSIsCiAgICAgICAgICAgICAgICAgICAgICJkZXNjIjogIiIsCiAgICAgICAgICAgICAgICAgICAgICJpbXBsaWNpdCI6IGZhbHNlLAotICAgICAgICAgICAgICAgICAgICAidW5pdHMiOiAiTm9uZSIsCi0gICAgICAgICAgICAgICAgICAgICJ2YWwiOiBudWxsCisgICAgICAgICAgICAgICAgICAgICJ1bml0cyI6ICJOb25lIgogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAib3B0aW9ucyI6IHsKQEAgLTE2MCw4ICsxNTgsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRpc3RyaWJ1dGVkIjogZmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2hhcGUiOiAiKDEsKSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVzYyI6ICIiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInVuaXRzIjogIk5vbmUiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbCI6IG51bGwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1bml0cyI6ICJOb25lIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJ5Ml9jb21tYW5kIiwKQEAgLTE3Miw4ICsxNjksNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNoYXBlIjogIigxLCkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlc2MiOiAiIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbXBsaWNpdCI6IHRydWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidW5pdHMiOiAiTm9uZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsIjogbnVsbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInVuaXRzIjogIk5vbmUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvcHRpb25zIjogewpAQCAtMjEwLDggKzIwNiw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRpc3RyaWJ1dGVkIjogZmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNoYXBlIjogIigyLCkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZXNjIjogIiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgInVuaXRzIjogIk5vbmUiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWwiOiBudWxsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInVuaXRzIjogIk5vbmUiCiAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIjogIngiLApAQCAtMjIxLDggKzIxNiw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRpc3RyaWJ1dGVkIjogZmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNoYXBlIjogIigxLCkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZXNjIjogIiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgInVuaXRzIjogIk5vbmUiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWwiOiBudWxsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInVuaXRzIjogIk5vbmUiCiAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIjogInkyIiwKQEAgLTIzMiw4ICsyMjYsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkaXN0cmlidXRlZCI6IGZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaGFwZSI6ICIoMSwpIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVzYyI6ICIiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1bml0cyI6ICJOb25lIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsIjogbnVsbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1bml0cyI6ICJOb25lIgogICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJ5MSIsCkBAIC0yNDQsOCArMjM3LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2hhcGUiOiAiKDEsKSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlc2MiOiAiIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW1wbGljaXQiOiBmYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAidW5pdHMiOiAiTm9uZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbCI6IG51bGwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAidW5pdHMiOiAiTm9uZSIKICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAgIm9wdGlvbnMiOiB7CkBAIC0yNzUsOCArMjY3LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGlzdHJpYnV0ZWQiOiBmYWxzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2hhcGUiOiAiKDIsKSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlc2MiOiAiIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAidW5pdHMiOiAiTm9uZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbCI6IG51bGwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAidW5pdHMiOiAiTm9uZSIKICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAieTEiLApAQCAtMjg2LDggKzI3Nyw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRpc3RyaWJ1dGVkIjogZmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNoYXBlIjogIigxLCkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZXNjIjogIiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgInVuaXRzIjogIk5vbmUiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWwiOiBudWxsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInVuaXRzIjogIk5vbmUiCiAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIjogInkyIiwKQEAgLTI5OCw4ICsyODgsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaGFwZSI6ICIoMSwpIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVzYyI6ICIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbXBsaWNpdCI6IGZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1bml0cyI6ICJOb25lIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsIjogbnVsbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1bml0cyI6ICJOb25lIgogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAib3B0aW9ucyI6IHsKQEAgLTMzNyw4ICszMjYsNyBAQAogICAgICAgICAgICAgICAgICAgICAiZGlzdHJpYnV0ZWQiOiBmYWxzZSwKICAgICAgICAgICAgICAgICAgICAgInNoYXBlIjogIigxLCkiLAogICAgICAgICAgICAgICAgICAgICAiZGVzYyI6ICIiLAotICAgICAgICAgICAgICAgICAgICAidW5pdHMiOiAiTm9uZSIsCi0gICAgICAgICAgICAgICAgICAgICJ2YWwiOiBudWxsCisgICAgICAgICAgICAgICAgICAgICJ1bml0cyI6ICJOb25lIgogICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJ5MSIsCkBAIC0zNDgsOCArMzM2LDcgQEAKICAgICAgICAgICAgICAgICAgICAgImRpc3RyaWJ1dGVkIjogZmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICJzaGFwZSI6ICIoMSwpIiwKICAgICAgICAgICAgICAgICAgICAgImRlc2MiOiAiIiwKLSAgICAgICAgICAgICAgICAgICAgInVuaXRzIjogIk5vbmUiLAotICAgICAgICAgICAgICAgICAgICAidmFsIjogbnVsbAorICAgICAgICAgICAgICAgICAgICAidW5pdHMiOiAiTm9uZSIKICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAieTIiLApAQCAtMzU5LDggKzM0Niw3IEBACiAgICAgICAgICAgICAgICAgICAgICJkaXN0cmlidXRlZCI6IGZhbHNlLAogICAgICAgICAgICAgICAgICAgICAic2hhcGUiOiAiKDEsKSIsCiAgICAgICAgICAgICAgICAgICAgICJkZXNjIjogIiIsCi0gICAgICAgICAgICAgICAgICAgICJ1bml0cyI6ICJOb25lIiwKLSAgICAgICAgICAgICAgICAgICAgInZhbCI6IG51bGwKKyAgICAgICAgICAgICAgICAgICAgInVuaXRzIjogIk5vbmUiCiAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICJuYW1lIjogInoiLApAQCAtMzcwLDggKzM1Niw3IEBACiAgICAgICAgICAgICAgICAgICAgICJkaXN0cmlidXRlZCI6IGZhbHNlLAogICAgICAgICAgICAgICAgICAgICAic2hhcGUiOiAiKDIsKSIsCiAgICAgICAgICAgICAgICAgICAgICJkZXNjIjogIiIsCi0gICAgICAgICAgICAgICAgICAgICJ1bml0cyI6ICJOb25lIiwKLSAgICAgICAgICAgICAgICAgICAgInZhbCI6IG51bGwKKyAgICAgICAgICAgICAgICAgICAgInVuaXRzIjogIk5vbmUiCiAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICJuYW1lIjogIm9iaiIsCkBAIC0zODIsOCArMzY3LDcgQEAKICAgICAgICAgICAgICAgICAgICAgInNoYXBlIjogIigxLCkiLAogICAgICAgICAgICAgICAgICAgICAiZGVzYyI6ICIiLAogICAgICAgICAgICAgICAgICAgICAiaW1wbGljaXQiOiBmYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgInVuaXRzIjogIk5vbmUiLAotICAgICAgICAgICAgICAgICAgICAidmFsIjogbnVsbAorICAgICAgICAgICAgICAgICAgICAidW5pdHMiOiAiTm9uZSIKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICBdLAogICAgICAgICAgICAgIm9wdGlvbnMiOiB7CkBAIC00MjAsOCArNDA0LDcgQEAKICAgICAgICAgICAgICAgICAgICAgImRpc3RyaWJ1dGVkIjogZmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICJzaGFwZSI6ICIoMSwpIiwKICAgICAgICAgICAgICAgICAgICAgImRlc2MiOiAiIiwKLSAgICAgICAgICAgICAgICAgICAgInVuaXRzIjogIk5vbmUiLAotICAgICAgICAgICAgICAgICAgICAidmFsIjogbnVsbAorICAgICAgICAgICAgICAgICAgICAidW5pdHMiOiAiTm9uZSIKICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAiY29uMSIsCkBAIC00MzIsOCArNDE1LDcgQEAKICAgICAgICAgICAgICAgICAgICAgInNoYXBlIjogIigxLCkiLAogICAgICAgICAgICAgICAgICAgICAiZGVzYyI6ICIiLAogICAgICAgICAgICAgICAgICAgICAiaW1wbGljaXQiOiBmYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgInVuaXRzIjogIk5vbmUiLAotICAgICAgICAgICAgICAgICAgICAidmFsIjogbnVsbAorICAgICAgICAgICAgICAgICAgICAidW5pdHMiOiAiTm9uZSIKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICBdLAogICAgICAgICAgICAgIm9wdGlvbnMiOiB7CkBAIC00NzAsOCArNDUyLDcgQEAKICAgICAgICAgICAgICAgICAgICAgImRpc3RyaWJ1dGVkIjogZmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICJzaGFwZSI6ICIoMSwpIiwKICAgICAgICAgICAgICAgICAgICAgImRlc2MiOiAiIiwKLSAgICAgICAgICAgICAgICAgICAgInVuaXRzIjogIk5vbmUiLAotICAgICAgICAgICAgICAgICAgICAidmFsIjogbnVsbAorICAgICAgICAgICAgICAgICAgICAidW5pdHMiOiAiTm9uZSIKICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAiY29uMiIsCkBAIC00ODIsOCArNDYzLDcgQEAKICAgICAgICAgICAgICAgICAgICAgInNoYXBlIjogIigxLCkiLAogICAgICAgICAgICAgICAgICAgICAiZGVzYyI6ICIiLAogICAgICAgICAgICAgICAgICAgICAiaW1wbGljaXQiOiBmYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgInVuaXRzIjogIk5vbmUiLAotICAgICAgICAgICAgICAgICAgICAidmFsIjogbnVsbAorICAgICAgICAgICAgICAgICAgICAidW5pdHMiOiAiTm9uZSIKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICBdLAogICAgICAgICAgICAgIm9wdGlvbnMiOiB7CmRpZmYgLS1naXQgYS9vcGVubWRhby92aXN1YWxpemF0aW9uL24yX3ZpZXdlci90ZXN0cy9zZWxsYXJfbm9fdmFsdWVzX3J1bi5qc29uIGIvb3Blbm1kYW8vdmlzdWFsaXphdGlvbi9uMl92aWV3ZXIvdGVzdHMvc2VsbGFyX25vX3ZhbHVlc19ydW4uanNvbgppbmRleCAzZTE0MDVhMmIuLmNlMjQwMzNhMyAxMDA2NDQKLS0tIGEvb3Blbm1kYW8vdmlzdWFsaXphdGlvbi9uMl92aWV3ZXIvdGVzdHMvc2VsbGFyX25vX3ZhbHVlc19ydW4uanNvbgorKysgYi9vcGVubWRhby92aXN1YWxpemF0aW9uL24yX3ZpZXdlci90ZXN0cy9zZWxsYXJfbm9fdmFsdWVzX3J1bi5qc29uCkBAIC01Nyw4ICs1Nyw3IEBACiAgICAgICAgICAgICAgICAgICAgICJzaGFwZSI6ICIoMiwpIiwKICAgICAgICAgICAgICAgICAgICAgImRlc2MiOiAiIiwKICAgICAgICAgICAgICAgICAgICAgImltcGxpY2l0IjogZmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICJ1bml0cyI6ICJOb25lIiwKLSAgICAgICAgICAgICAgICAgICAgInZhbCI6IG51bGwKKyAgICAgICAgICAgICAgICAgICAgInVuaXRzIjogIk5vbmUiCiAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICJuYW1lIjogInYxIiwKQEAgLTY5LDggKzY4LDcgQEAKICAgICAgICAgICAgICAgICAgICAgInNoYXBlIjogIigxLCkiLAogICAgICAgICAgICAgICAgICAgICAiZGVzYyI6ICIiLAogICAgICAgICAgICAgICAgICAgICAiaW1wbGljaXQiOiBmYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgInVuaXRzIjogIk5vbmUiLAotICAgICAgICAgICAgICAgICAgICAidmFsIjogbnVsbAorICAgICAgICAgICAgICAgICAgICAidW5pdHMiOiAiTm9uZSIKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICBdLAogICAgICAgICAgICAgIm9wdGlvbnMiOiB7CkBAIC0xNjAsOCArMTU4LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkaXN0cmlidXRlZCI6IGZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNoYXBlIjogIigxLCkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlc2MiOiAiIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1bml0cyI6ICJOb25lIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWwiOiBudWxsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidW5pdHMiOiAiTm9uZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAieTJfY29tbWFuZCIsCkBAIC0xNzIsOCArMTY5LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaGFwZSI6ICIoMSwpIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZXNjIjogIiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW1wbGljaXQiOiB0cnVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInVuaXRzIjogIk5vbmUiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbCI6IG51bGwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1bml0cyI6ICJOb25lIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3B0aW9ucyI6IHsKQEAgLTIxMCw4ICsyMDYsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkaXN0cmlidXRlZCI6IGZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaGFwZSI6ICIoMiwpIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVzYyI6ICIiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1bml0cyI6ICJOb25lIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsIjogbnVsbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1bml0cyI6ICJOb25lIgogICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJ4IiwKQEAgLTIyMSw4ICsyMTYsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkaXN0cmlidXRlZCI6IGZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaGFwZSI6ICIoMSwpIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVzYyI6ICIiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1bml0cyI6ICJOb25lIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsIjogbnVsbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1bml0cyI6ICJOb25lIgogICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJ5MiIsCkBAIC0yMzIsOCArMjI2LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGlzdHJpYnV0ZWQiOiBmYWxzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2hhcGUiOiAiKDEsKSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlc2MiOiAiIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAidW5pdHMiOiAiTm9uZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbCI6IG51bGwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAidW5pdHMiOiAiTm9uZSIKICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAieTEiLApAQCAtMjQ0LDggKzIzNyw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNoYXBlIjogIigxLCkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZXNjIjogIiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImltcGxpY2l0IjogZmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgInVuaXRzIjogIk5vbmUiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWwiOiBudWxsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInVuaXRzIjogIk5vbmUiCiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICJvcHRpb25zIjogewpAQCAtMjc1LDggKzI2Nyw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRpc3RyaWJ1dGVkIjogZmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNoYXBlIjogIigyLCkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZXNjIjogIiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgInVuaXRzIjogIk5vbmUiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWwiOiBudWxsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInVuaXRzIjogIk5vbmUiCiAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIjogInkxIiwKQEAgLTI4Niw4ICsyNzcsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkaXN0cmlidXRlZCI6IGZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaGFwZSI6ICIoMSwpIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVzYyI6ICIiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1bml0cyI6ICJOb25lIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsIjogbnVsbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1bml0cyI6ICJOb25lIgogICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJ5MiIsCkBAIC0yOTgsOCArMjg4LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2hhcGUiOiAiKDEsKSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlc2MiOiAiIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW1wbGljaXQiOiBmYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAidW5pdHMiOiAiTm9uZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbCI6IG51bGwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAidW5pdHMiOiAiTm9uZSIKICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAgIm9wdGlvbnMiOiB7CkBAIC0zMzcsOCArMzI2LDcgQEAKICAgICAgICAgICAgICAgICAgICAgImRpc3RyaWJ1dGVkIjogZmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICJzaGFwZSI6ICIoMSwpIiwKICAgICAgICAgICAgICAgICAgICAgImRlc2MiOiAiIiwKLSAgICAgICAgICAgICAgICAgICAgInVuaXRzIjogIk5vbmUiLAotICAgICAgICAgICAgICAgICAgICAidmFsIjogbnVsbAorICAgICAgICAgICAgICAgICAgICAidW5pdHMiOiAiTm9uZSIKICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAieTEiLApAQCAtMzQ4LDggKzMzNiw3IEBACiAgICAgICAgICAgICAgICAgICAgICJkaXN0cmlidXRlZCI6IGZhbHNlLAogICAgICAgICAgICAgICAgICAgICAic2hhcGUiOiAiKDEsKSIsCiAgICAgICAgICAgICAgICAgICAgICJkZXNjIjogIiIsCi0gICAgICAgICAgICAgICAgICAgICJ1bml0cyI6ICJOb25lIiwKLSAgICAgICAgICAgICAgICAgICAgInZhbCI6IG51bGwKKyAgICAgICAgICAgICAgICAgICAgInVuaXRzIjogIk5vbmUiCiAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICJuYW1lIjogInkyIiwKQEAgLTM1OSw4ICszNDYsNyBAQAogICAgICAgICAgICAgICAgICAgICAiZGlzdHJpYnV0ZWQiOiBmYWxzZSwKICAgICAgICAgICAgICAgICAgICAgInNoYXBlIjogIigxLCkiLAogICAgICAgICAgICAgICAgICAgICAiZGVzYyI6ICIiLAotICAgICAgICAgICAgICAgICAgICAidW5pdHMiOiAiTm9uZSIsCi0gICAgICAgICAgICAgICAgICAgICJ2YWwiOiBudWxsCisgICAgICAgICAgICAgICAgICAgICJ1bml0cyI6ICJOb25lIgogICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJ6IiwKQEAgLTM3MCw4ICszNTYsNyBAQAogICAgICAgICAgICAgICAgICAgICAiZGlzdHJpYnV0ZWQiOiBmYWxzZSwKICAgICAgICAgICAgICAgICAgICAgInNoYXBlIjogIigyLCkiLAogICAgICAgICAgICAgICAgICAgICAiZGVzYyI6ICIiLAotICAgICAgICAgICAgICAgICAgICAidW5pdHMiOiAiTm9uZSIsCi0gICAgICAgICAgICAgICAgICAgICJ2YWwiOiBudWxsCisgICAgICAgICAgICAgICAgICAgICJ1bml0cyI6ICJOb25lIgogICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJvYmoiLApAQCAtMzgyLDggKzM2Nyw3IEBACiAgICAgICAgICAgICAgICAgICAgICJzaGFwZSI6ICIoMSwpIiwKICAgICAgICAgICAgICAgICAgICAgImRlc2MiOiAiIiwKICAgICAgICAgICAgICAgICAgICAgImltcGxpY2l0IjogZmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICJ1bml0cyI6ICJOb25lIiwKLSAgICAgICAgICAgICAgICAgICAgInZhbCI6IG51bGwKKyAgICAgICAgICAgICAgICAgICAgInVuaXRzIjogIk5vbmUiCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgXSwKICAgICAgICAgICAgICJvcHRpb25zIjogewpAQCAtNDIwLDggKzQwNCw3IEBACiAgICAgICAgICAgICAgICAgICAgICJkaXN0cmlidXRlZCI6IGZhbHNlLAogICAgICAgICAgICAgICAgICAgICAic2hhcGUiOiAiKDEsKSIsCiAgICAgICAgICAgICAgICAgICAgICJkZXNjIjogIiIsCi0gICAgICAgICAgICAgICAgICAgICJ1bml0cyI6ICJOb25lIiwKLSAgICAgICAgICAgICAgICAgICAgInZhbCI6IG51bGwKKyAgICAgICAgICAgICAgICAgICAgInVuaXRzIjogIk5vbmUiCiAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICJuYW1lIjogImNvbjEiLApAQCAtNDMyLDggKzQxNSw3IEBACiAgICAgICAgICAgICAgICAgICAgICJzaGFwZSI6ICIoMSwpIiwKICAgICAgICAgICAgICAgICAgICAgImRlc2MiOiAiIiwKICAgICAgICAgICAgICAgICAgICAgImltcGxpY2l0IjogZmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICJ1bml0cyI6ICJOb25lIiwKLSAgICAgICAgICAgICAgICAgICAgInZhbCI6IG51bGwKKyAgICAgICAgICAgICAgICAgICAgInVuaXRzIjogIk5vbmUiCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgXSwKICAgICAgICAgICAgICJvcHRpb25zIjogewpAQCAtNDcwLDggKzQ1Miw3IEBACiAgICAgICAgICAgICAgICAgICAgICJkaXN0cmlidXRlZCI6IGZhbHNlLAogICAgICAgICAgICAgICAgICAgICAic2hhcGUiOiAiKDEsKSIsCiAgICAgICAgICAgICAgICAgICAgICJkZXNjIjogIiIsCi0gICAgICAgICAgICAgICAgICAgICJ1bml0cyI6ICJOb25lIiwKLSAgICAgICAgICAgICAgICAgICAgInZhbCI6IG51bGwKKyAgICAgICAgICAgICAgICAgICAgInVuaXRzIjogIk5vbmUiCiAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICJuYW1lIjogImNvbjIiLApAQCAtNDgyLDggKzQ2Myw3IEBACiAgICAgICAgICAgICAgICAgICAgICJzaGFwZSI6ICIoMSwpIiwKICAgICAgICAgICAgICAgICAgICAgImRlc2MiOiAiIiwKICAgICAgICAgICAgICAgICAgICAgImltcGxpY2l0IjogZmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICJ1bml0cyI6ICJOb25lIiwKLSAgICAgICAgICAgICAgICAgICAgInZhbCI6IG51bGwKKyAgICAgICAgICAgICAgICAgICAgInVuaXRzIjogIk5vbmUiCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgXSwKICAgICAgICAgICAgICJvcHRpb25zIjogewpkaWZmIC0tZ2l0IGEvb3Blbm1kYW8vdmlzdWFsaXphdGlvbi9uMl92aWV3ZXIvdGVzdHMvdGVzdF92aWV3bW9kZWxkYXRhLnB5IGIvb3Blbm1kYW8vdmlzdWFsaXphdGlvbi9uMl92aWV3ZXIvdGVzdHMvdGVzdF92aWV3bW9kZWxkYXRhLnB5CmluZGV4IGIxNzQwZDAzNy4uMzUwZTg1MDJhIDEwMDY0NAotLS0gYS9vcGVubWRhby92aXN1YWxpemF0aW9uL24yX3ZpZXdlci90ZXN0cy90ZXN0X3ZpZXdtb2RlbGRhdGEucHkKKysrIGIvb3Blbm1kYW8vdmlzdWFsaXphdGlvbi9uMl92aWV3ZXIvdGVzdHMvdGVzdF92aWV3bW9kZWxkYXRhLnB5CkBAIC04LDcgKzgsNiBAQCBpbXBvcnQgdHlwZXMKIGltcG9ydCBiYXNlNjQKIGltcG9ydCB6bGliCiAKLWltcG9ydCBlcnJubwogZnJvbSBzaHV0aWwgaW1wb3J0IHJtdHJlZQogZnJvbSB0ZW1wZmlsZSBpbXBvcnQgbWtkdGVtcAogCkBAIC0yMiw3ICsyMSw3IEBAIGZyb20gb3Blbm1kYW8ucmVjb3JkZXJzLnNxbGl0ZV9yZWNvcmRlciBpbXBvcnQgU3FsaXRlUmVjb3JkZXIKIGZyb20gb3Blbm1kYW8udGVzdF9zdWl0ZS50ZXN0X2V4YW1wbGVzLnRlc3RfYmV0el9saW1pdCBpbXBvcnQgQWN0dWF0b3JEaXNjCiBmcm9tIG9wZW5tZGFvLnV0aWxzLm1waSBpbXBvcnQgTVBJCiBmcm9tIG9wZW5tZGFvLnV0aWxzLnNoZWxsX3Byb2MgaW1wb3J0IGNoZWNrX2NhbGwKLWZyb20gb3Blbm1kYW8udXRpbHMudGVzdGluZ191dGlscyBpbXBvcnQgdXNlX3RlbXBkaXJzCitmcm9tIG9wZW5tZGFvLnV0aWxzLnRlc3RpbmdfdXRpbHMgaW1wb3J0IHVzZV90ZW1wZGlycywgc2V0X2Vudl92YXJzX2NvbnRleHQKIGZyb20gb3Blbm1kYW8udGVzdF9zdWl0ZS50ZXN0X2V4YW1wbGVzLmJlYW1fb3B0aW1pemF0aW9uLm11bHRpcG9pbnRfYmVhbV9ncm91cCBpbXBvcnQgTXVsdGlwb2ludEJlYW1Hcm91cAogCiB0cnk6CkBAIC02Myw2ICs2Miw3IEBAIGRlZiBzYXZlX3ZpZXdlcl9kYXRhKHZpZXdlcl9kYXRhLCBmaWxlbmFtZSk6CiAgICAgICAgIGpzb24uZHVtcCh2aWV3ZXJfZGF0YVsndHJlZSddLCBqc29uX2ZpbGUsIGNscz1fTW9kZWxWaWV3ZXJEYXRhVHJlZUVuY29kZXIsIGluZGVudD00KQogCiAKK0B1c2VfdGVtcGRpcnMKIGNsYXNzIFRlc3RWaWV3ZXJEYXRhKHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogICAgIGRlZiBjaGVja192aWV3ZXJfZGF0YShzZWxmLCB2aWV3ZXJfZGF0YSwgZmlsZW5hbWUsIHBhcnRpYWxzPVRydWUpOgpAQCAtMzIyLDYgKzMyMiwxMzAgQEAgY2xhc3MgVGVzdFZpZXdlckRhdGEodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBucC50ZXN0aW5nLmFzc2VydF9lcXVhbCh2aWV3ZXJfZGF0YVsndHJlZSddWydjaGlsZHJlbiddWzFdWydvcHRpb25zJ11bJ2FyciddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBucC5vbmVzKDIpKQogCisgICAgZGVmIHRlc3Rfc3lzdGVtX29wdGlvbl90b29fbGFyZ2Uoc2VsZik6CisgICAgICAgIGNsYXNzIFN5c3RlbVdpdGhMYXJnZU9wdGlvbihvbS5FeHBsaWNpdENvbXBvbmVudCk6CisgICAgICAgICAgICBkZWYgaW5pdGlhbGl6ZShzZWxmKToKKyAgICAgICAgICAgICAgICBzZWxmLm9wdGlvbnMuZGVjbGFyZSgnbGFyZ2Vfb3B0aW9uJywgdHlwZXM9KG5wLm5kYXJyYXksKSkKKworICAgICAgICAgICAgZGVmIHNldHVwKHNlbGYpOgorICAgICAgICAgICAgICAgIHNlbGYuYWRkX2lucHV0KCd4JywgdmFsPTAuMCkKKyAgICAgICAgICAgICAgICBzZWxmLmFkZF9vdXRwdXQoJ2ZfeCcsIHZhbD0wLjApCisKKyAgICAgICAgICAgIGRlZiBjb21wdXRlKHNlbGYsIGlucHV0cywgb3V0cHV0cyk6CisgICAgICAgICAgICAgICAgeCA9IGlucHV0c1sneCddCisgICAgICAgICAgICAgICAgb3V0cHV0c1snZl94J10gPSAoeCAtIDMuMCkgKiogMgorCisgICAgICAgIHByb2IgPSBvbS5Qcm9ibGVtKCkKKyAgICAgICAgY29tcCA9IHByb2IubW9kZWwuYWRkX3N1YnN5c3RlbSgnY29tcCcsIFN5c3RlbVdpdGhMYXJnZU9wdGlvbigpKQorICAgICAgICBjb21wLm9wdGlvbnNbJ2xhcmdlX29wdGlvbiddID0gbnAuemVyb3MoaW50KDFlNCkpCisgICAgICAgIHByb2Iuc2V0dXAoKQorCisgICAgICAgIHZpZXdlcl9kYXRhID0gX2dldF92aWV3ZXJfZGF0YShwcm9iKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHZpZXdlcl9kYXRhWyd0cmVlJ11bJ2NoaWxkcmVuJ11bMV1bJ29wdGlvbnMnXVsnbGFyZ2Vfb3B0aW9uJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgJ1RvbyBMYXJnZSB0byBEaXNwbGF5JykKKworICAgIGRlZiB0ZXN0X3ZpZXdlcl9kYXRhX3dpdGhfc3VibW9kZWwoc2VsZik6CisKKyAgICAgICAgc2VsZi5tYXhEaWZmID0gTm9uZQorCisgICAgICAgIGRlZiBjaGVja192aWV3ZXJfZGF0YV93aXRoX3N1Ym1vZGVsKHNxbF9maWxlbmFtZSk6CisgICAgICAgICAgICAjIGNyZWF0ZSBzdWIgcHJvYmxlbQorICAgICAgICAgICAgc3VibW9kZWwgPSBvbS5Hcm91cCgpCisgICAgICAgICAgICBzdWJtb2RlbC5hZGRfc3Vic3lzdGVtKCdzdWJjb21wJywgb20uRXhlY0NvbXAoJ3kgPSB4MSoqMiArIHgyKioyICsgeDMqKjInKSwgcHJvbW90ZXM9WycqJ10pCisKKyAgICAgICAgICAgIHN1YnByb2IgPSBvbS5Qcm9ibGVtKG5hbWU9J3N1YnByb2JsZW0nLCBtb2RlbD1zdWJtb2RlbCkKKworICAgICAgICAgICAgIyBjcmVhdGUgdG9wLWxldmVsIHByb2JsZW0KKyAgICAgICAgICAgIHAgPSBvbS5Qcm9ibGVtKG5hbWU9J3RvcCcpCisgICAgICAgICAgICBwLm1vZGVsLmFkZF9zdWJzeXN0ZW0oJ3N1Ym1vZGVsY29tcCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb20uU3VibW9kZWxDb21wKHByb2JsZW09c3VicHJvYiwgaW5wdXRzPVsnKiddLCBvdXRwdXRzPVsnKiddKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9tb3Rlcz1bJyonXSkKKyAgICAgICAgICAgIHAubW9kZWwuYWRkX3N1YnN5c3RlbSgnc3VwZXJjb21wJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbS5FeGVjQ29tcCgneiA9IDMgKiB5JyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvbW90ZXM9WycqJ10pCisKKyAgICAgICAgICAgIHAubW9kZWwuYWRkX3JlY29yZGVyKG9tLlNxbGl0ZVJlY29yZGVyKHNxbF9maWxlbmFtZSkpCisKKyAgICAgICAgICAgIHAuc2V0dXAoKQorICAgICAgICAgICAgcC5maW5hbF9zZXR1cCgpCisKKyAgICAgICAgICAgICMgZXh0cmFjdCB2aWV3ZXIgZGF0YSBmcm9tIE4yIGZvciBwcm9ibGVtIGFuZCBzdWJwcm9ibGVtCisgICAgICAgICAgICBvbS5uMihwLCB0aXRsZT0nTjIgZm9yIFByb2JsZW0nLCBvdXRmaWxlPSdOMnByb2JsZW0uaHRtbCcsCisgICAgICAgICAgICAgICAgICBzaG93X2Jyb3dzZXI9REVCVUdfQlJPV1NFUikKKyAgICAgICAgICAgIHByb2JsZW1fZGF0YSA9IGV4dHJhY3RfY29tcHJlc3NlZF9tb2RlbCgnTjJwcm9ibGVtLmh0bWwnKQorCisgICAgICAgICAgICBvbS5uMihzdWJwcm9iLCB0aXRsZT0nTjIgZm9yIFN1YlByb2JsZW0nLCBvdXRmaWxlPSdOMnN1YnByb2IuaHRtbCcsCisgICAgICAgICAgICAgICAgICBzaG93X2Jyb3dzZXI9REVCVUdfQlJPV1NFUikKKyAgICAgICAgICAgIHN1YnByb2JfZGF0YSA9IGV4dHJhY3RfY29tcHJlc3NlZF9tb2RlbCgnTjJzdWJwcm9iLmh0bWwnKQorCisgICAgICAgICAgICAjIGNoZWNrIHByb2JsZW0gZGF0YSBnZW5lcmF0ZWQgZnJvbSByZWNvcmRpbmcgYWdhaW5zdCBkYXRhIGdlbmVyYXRlZCBmcm9tIHByb2JsZW0KKyAgICAgICAgICAgIGNoZWNrX2NhbGwoZiJvcGVubWRhbyBuMiB7c3FsX2ZpbGVuYW1lfSAtbyBOMnJlY29yZGluZy5odG1sIgorICAgICAgICAgICAgICAgICAgICAgICBmInsnIC0tbm9fYnJvd3NlcicgaWYgbm90IERFQlVHX0JST1dTRVIgZWxzZSAnJ30iKQorICAgICAgICAgICAgcmVjb3JkaW5nX2RhdGEgPSBleHRyYWN0X2NvbXByZXNzZWRfbW9kZWwoJ04ycmVjb3JkaW5nLmh0bWwnKQorCisgICAgICAgICAgICBzZWxmLmFzc2VydERpY3RFcXVhbChwcm9ibGVtX2RhdGEsIHJlY29yZGluZ19kYXRhKQorCisgICAgICAgICAgICAjIHNvdXJjZSBmb3IgcnVuIHNjcmlwdCwgY29waWVkIGZyb20gYWJvdmUgKHdpdGhvdXQgdGhlIHJlY29yZGVyKQorICAgICAgICAgICAgc3JjID0gIiIiaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICAgICAgICAgIGltcG9ydCBvcGVubWRhby5hcGkgYXMgb20KKworICAgICAgICAgICAgIyBjcmVhdGUgc3ViIHByb2JsZW0KKyAgICAgICAgICAgIHN1Ym1vZGVsID0gb20uR3JvdXAoKQorICAgICAgICAgICAgc3VibW9kZWwuYWRkX3N1YnN5c3RlbSgnc3ViY29tcCcsIG9tLkV4ZWNDb21wKCd5ID0geDEqKjIgKyB4MioqMiArIHgzKioyJyksIHByb21vdGVzPVsnKiddKQorCisgICAgICAgICAgICBzdWJwcm9iID0gb20uUHJvYmxlbShuYW1lPSdzdWJwcm9ibGVtJywgbW9kZWw9c3VibW9kZWwpCisKKyAgICAgICAgICAgICMgY3JlYXRlIHRvcC1sZXZlbCBwcm9ibGVtCisgICAgICAgICAgICBwID0gb20uUHJvYmxlbShuYW1lPSd0b3AnKQorICAgICAgICAgICAgcC5tb2RlbC5hZGRfc3Vic3lzdGVtKCdzdWJtb2RlbGNvbXAnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbS5TdWJtb2RlbENvbXAocHJvYmxlbT1zdWJwcm9iLCBpbnB1dHM9WycqJ10sIG91dHB1dHM9WycqJ10pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9tb3Rlcz1bJyonXSkKKyAgICAgICAgICAgIHAubW9kZWwuYWRkX3N1YnN5c3RlbSgnc3VwZXJjb21wJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb20uRXhlY0NvbXAoJ3ogPSAzICogeScpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9tb3Rlcz1bJyonXSkKKworICAgICAgICAgICAgcC5zZXR1cCgpCisgICAgICAgICAgICBwLmZpbmFsX3NldHVwKCkKKworICAgICAgICAgICAgIyB2ZXJpZnkgbW9kZWwgcnVucyBjb3JyZWN0bHkKKyAgICAgICAgICAgIHAuc2V0X3ZhbCgneDEnLCAxKQorICAgICAgICAgICAgcC5zZXRfdmFsKCd4MicsIDIpCisgICAgICAgICAgICBwLnNldF92YWwoJ3gzJywgMykKKworICAgICAgICAgICAgcC5ydW5fbW9kZWwoKQorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICB3aXRoIG9wZW4oInN1Ym1vZGVsX3NjcmlwdC5weSIsICd3JykgYXMgZjoKKyAgICAgICAgICAgICAgICBmLndyaXRlKHNyYykKKworICAgICAgICAgICAgIyBjaGVjayBwcm9ibGVtIGRhdGEgZ2VuZXJhdGVkIGZyb20gc2NyaXB0IGFnYWluc3QgZGF0YSBnZW5lcmF0ZWQgZnJvbSBwcm9ibGVtCisgICAgICAgICAgICBjaGVja19jYWxsKCJvcGVubWRhbyBuMiBzdWJtb2RlbF9zY3JpcHQucHkgLW8gTjJfdG9wLmh0bWwiCisgICAgICAgICAgICAgICAgICAgICAgIGYieycgLS1ub19icm93c2VyJyBpZiBub3QgREVCVUdfQlJPV1NFUiBlbHNlICcnfSIpCisgICAgICAgICAgICBuMl90b3BfZGF0YSA9IGV4dHJhY3RfY29tcHJlc3NlZF9tb2RlbCgnTjJfdG9wLmh0bWwnKQorCisgICAgICAgICAgICBzZWxmLmFzc2VydERpY3RFcXVhbChwcm9ibGVtX2RhdGEsIG4yX3RvcF9kYXRhKQorCisgICAgICAgICAgICAjIGNoZWNrIHN1YnByb2JsZW0gZGF0YSBnZW5lcmF0ZWQgZnJvbSBzY3JpcHQgYWdhaW5zdCBkYXRhIGdlbmVyYXRlZCBmcm9tIHN1YnByb2JsZW0KKyAgICAgICAgICAgICMgTk9URTogZGVzaWduIHZhcnMgYW5kIHJlc3BvbnNlcyBhcmUgYWRkZWQgaW4gU3VibW9kZWxDb21wJ3Mgc2V0dXAsIHdoaWNoIGlzIG5vdCBleGVjdXRlZAorICAgICAgICAgICAgIyAgICAgICB3aGVuIGludm9raW5nIHRoZSBuMiBjb21tYW5kIG9uIHRoZSBzdWJwcm9ibGVtLCB3aGljaCBleGl0cyBhZnRlciBzdWJwcm9ibGVtIHNldHVwCisgICAgICAgICAgICBjaGVja19jYWxsKCJvcGVubWRhbyBuMiBzdWJtb2RlbF9zY3JpcHQucHkgLW8gTjJfc3VicHJvYi5odG1sIC0tcHJvYmxlbT1zdWJwcm9ibGVtIgorICAgICAgICAgICAgICAgICAgICAgICBmInsnIC0tbm9fYnJvd3NlcicgaWYgbm90IERFQlVHX0JST1dTRVIgZWxzZSAnJ30iKQorICAgICAgICAgICAgbjJfc3ViX2RhdGEgPSBleHRyYWN0X2NvbXByZXNzZWRfbW9kZWwoJ04yX3N1YnByb2IuaHRtbCcpCisKKyAgICAgICAgICAgIHN1YnByb2JfZGF0YVsnZGVzaWduX3ZhcnMnXSA9IHt9CisgICAgICAgICAgICBzdWJwcm9iX2RhdGFbJ3Jlc3BvbnNlcyddID0ge30KKworICAgICAgICAgICAgc2VsZi5hc3NlcnREaWN0RXF1YWwoc3VicHJvYl9kYXRhLCBuMl9zdWJfZGF0YSkKKworICAgICAgICAjIGNoZWNrIHRoYXQgaXQgd29ya3MgY29ycmVjdGx5IHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUgcmVwb3J0IHN5c3RlbSBpcyBhY3RpdmUgb3Igbm90CisgICAgICAgICMgdGhlIG4yIGNvbW1hbmQgc2hvdWxkIGRpc2FibGUgdGhlIHJlcG9ydHMgc3lzdGVtIGlmIGFjdGl2ZQorICAgICAgICBmb3IgdmFsIGluICgnMCcsICcxJyk6CisgICAgICAgICAgICB3aXRoIHNlbGYuc3ViVGVzdChPUEVOTURBT19SRVBPUlRTPXZhbCk6CisgICAgICAgICAgICAgICAgd2l0aCBzZXRfZW52X3ZhcnNfY29udGV4dChPUEVOTURBT19SRVBPUlRTPXZhbCk6CisgICAgICAgICAgICAgICAgICAgIGZyb20gb3Blbm1kYW8uY29yZS5wcm9ibGVtIGltcG9ydCBfY2xlYXJfcHJvYmxlbV9uYW1lcworICAgICAgICAgICAgICAgICAgICBfY2xlYXJfcHJvYmxlbV9uYW1lcygpCisKKyAgICAgICAgICAgICAgICAgICAgY2hlY2tfdmlld2VyX2RhdGFfd2l0aF9zdWJtb2RlbChmJ3JlY29yZGluZ3t2YWx9LnNxbCcpCisKIAogQHVzZV90ZW1wZGlycwogY2xhc3MgVGVzdE4yKHVuaXR0ZXN0LlRlc3RDYXNlKToK'\"'\"'))'",
      "git apply /tmp/receipts-openmdao__openmdao-3029-test.patch"
    ],
    "workdir": "/OpenMDAO"
  },
  "spec_paths": [
    "openmdao/visualization/n2_viewer/tests/gen_gui_test.py",
    "openmdao/visualization/n2_viewer/tests/sellar_no_values.json",
    "openmdao/visualization/n2_viewer/tests/sellar_no_values_run.json",
    "openmdao/visualization/n2_viewer/tests/test_viewmodeldata.py"
  ],
  "spec_tests": [
    "openmdao/visualization/n2_viewer/tests/test_viewmodeldata.py::TestViewerData::test_system_option_too_large"
  ],
  "suite_scope": "--no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning openmdao/visualization/n2_viewer/tests/gen_gui_test.py openmdao/visualization/n2_viewer/tests/test_viewmodeldata.py"
}
