{
  "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": "Use AdjListOuterDict instead of NodeDict for DiGraph's succ and pred?\nHi networkx folks,\r\n\r\nI found the init function of DiGraph [here](https://github.com/networkx/networkx/blob/master/networkx/classes/digraph.py#L303) is interesting. Instead of using `adjlist_outer_dict_factory`, the `node_dict_factory` is used. Is this a bug? My use case is try to hook network's DiGraph to notify my other components of when a node and edge is being added to the graph. My current solution is to subclass the DiGraph and replace the four dict structures with my own dict. However, because of this logic, it is harder to distinguish between node and edge addition/removal. Would you please have a look? Thank you.\r\n\r\n-Minjie",
  "source": {
    "image": "docker.io/swerebenchv2/networkx-networkx:3101-6ee8574",
    "platform": "linux/amd64",
    "python": "python",
    "setup": [
      "python -c 'import base64; from pathlib import Path; Path('\"'\"'/tmp/receipts-networkx__networkx-3101-test.patch'\"'\"').write_bytes(base64.b64decode('\"'\"'ZGlmZiAtLWdpdCBhL25ldHdvcmt4L2FsZ29yaXRobXMvc2hvcnRlc3RfcGF0aHMvdGVzdHMvdGVzdF93ZWlnaHRlZC5weSBiL25ldHdvcmt4L2FsZ29yaXRobXMvc2hvcnRlc3RfcGF0aHMvdGVzdHMvdGVzdF93ZWlnaHRlZC5weQppbmRleCAxMGZmOTRmMGYuLjAyNWMwOGEzYSAxMDA2NDQKLS0tIGEvbmV0d29ya3gvYWxnb3JpdGhtcy9zaG9ydGVzdF9wYXRocy90ZXN0cy90ZXN0X3dlaWdodGVkLnB5CisrKyBiL25ldHdvcmt4L2FsZ29yaXRobXMvc2hvcnRlc3RfcGF0aHMvdGVzdHMvdGVzdF93ZWlnaHRlZC5weQpAQCAtMTQ0LDYgKzE0NCwxMCBAQCBjbGFzcyBUZXN0V2VpZ2h0ZWRQYXRoKFdlaWdodGVkVGVzdEJhc2UpOgogICAgICAgICB2YWxpZGF0ZV9wYXRoKHNlbGYuWEcsICdzJywgJ3YnLCBzdW0oc2VsZi5YR1t1XVt2XVsnd2VpZ2h0J10gZm9yIHUsIHYgaW4gemlwKAogICAgICAgICAgICAgUFs6LTFdLCBQWzE6XSkpLCBueC5kaWprc3RyYV9wYXRoKHNlbGYuWEcsICdzJywgJ3YnKSkKIAorICAgICAgICAjIGNoZWNrIGFic2VudCBzb3VyY2UKKyAgICAgICAgRyA9IG54LnBhdGhfZ3JhcGgoMikKKyAgICAgICAgYXNzZXJ0X3JhaXNlcyhueC5Ob2RlTm90Rm91bmQsIG54LmJpZGlyZWN0aW9uYWxfZGlqa3N0cmEsIEcsIDMsIDApCisKICAgICBAcmFpc2VzKG54Lk5ldHdvcmtYTm9QYXRoKQogICAgIGRlZiB0ZXN0X2JpZGlyZWN0aW9uYWxfZGlqa3N0cmFfbm9fcGF0aChzZWxmKToKICAgICAgICAgRyA9IG54LkdyYXBoKCkKQEAgLTE1MSw2ICsxNTUsMTkgQEAgY2xhc3MgVGVzdFdlaWdodGVkUGF0aChXZWlnaHRlZFRlc3RCYXNlKToKICAgICAgICAgbnguYWRkX3BhdGgoRywgWzQsIDUsIDZdKQogICAgICAgICBwYXRoID0gbnguYmlkaXJlY3Rpb25hbF9kaWprc3RyYShHLCAxLCA2KQogCisgICAgZGVmIHRlc3RfYWJzZW50X3NvdXJjZShzZWxmKToKKyAgICAgICAgIyB0aGUgY2hlY2sgaXMgaW4gX2RpamtzdHJhX211bHRpc291cmNlLCBidXQgdGhpcyB3aWxsIHByb3ZpZGUKKyAgICAgICAgIyByZWdyZXNzaW9uIHRlc3RpbmcgYWdhaW5zdCBsYXRlciBjaGFuZ2VzIHRvIGFueSBvZiB0aGUgImNsaWVudCIKKyAgICAgICAgIyBEaWprc3RyYSBvciBCZWxsbWFuLUZvcmQgZnVuY3Rpb25zCisgICAgICAgIEcgPSBueC5wYXRoX2dyYXBoKDIpCisgICAgICAgIGZvciBmbiBpbiAobnguZGlqa3N0cmFfcGF0aCwKKyAgICAgICAgICAgICAgICAgICBueC5kaWprc3RyYV9wYXRoX2xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICBueC5zaW5nbGVfc291cmNlX2RpamtzdHJhX3BhdGgsCisgICAgICAgICAgICAgICAgICAgbnguc2luZ2xlX3NvdXJjZV9kaWprc3RyYV9wYXRoX2xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICBueC5zaW5nbGVfc291cmNlX2RpamtzdHJhLAorICAgICAgICAgICAgICAgICAgIG54LmRpamtzdHJhX3ByZWRlY2Vzc29yX2FuZF9kaXN0YW5jZSwpOgorICAgICAgICAgICAgYXNzZXJ0X3JhaXNlcyhueC5Ob2RlTm90Rm91bmQsIGZuLCBHLCAzLCAwKQorCiAgICAgZGVmIHRlc3RfZGlqa3N0cmFfcHJlZGVjZXNzb3IxKHNlbGYpOgogICAgICAgICBHID0gbngucGF0aF9ncmFwaCg0KQogICAgICAgICBhc3NlcnRfZXF1YWwobnguZGlqa3N0cmFfcHJlZGVjZXNzb3JfYW5kX2Rpc3RhbmNlKEcsIDApLApAQCAtMzE5LDYgKzMzNiwxMyBAQCBjbGFzcyBUZXN0TXVsdGlTb3VyY2VEaWprc3RyYShvYmplY3QpOgogICAgIGRlZiB0ZXN0X3BhdGhfbGVuZ3RoX25vX3NvdXJjZXMoc2VsZik6CiAgICAgICAgIG54Lm11bHRpX3NvdXJjZV9kaWprc3RyYV9wYXRoX2xlbmd0aChueC5HcmFwaCgpLCB7fSkKIAorICAgIGRlZiB0ZXN0X2Fic2VudF9zb3VyY2Uoc2VsZik6CisgICAgICAgIEcgPSBueC5wYXRoX2dyYXBoKDIpCisgICAgICAgIGZvciBmbiBpbiAobngubXVsdGlfc291cmNlX2RpamtzdHJhX3BhdGgsCisgICAgICAgICAgICAgICAgICAgbngubXVsdGlfc291cmNlX2RpamtzdHJhX3BhdGhfbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgIG54Lm11bHRpX3NvdXJjZV9kaWprc3RyYSwpOgorICAgICAgICAgICAgYXNzZXJ0X3JhaXNlcyhueC5Ob2RlTm90Rm91bmQsIGZuLCBHLCBbM10sIDApCisKICAgICBkZWYgdGVzdF90d29fc291cmNlcyhzZWxmKToKICAgICAgICAgZWRnZXMgPSBbKDAsIDEsIDEpLCAoMSwgMiwgMSksICgyLCAzLCAxMCksICgzLCA0LCAxKV0KICAgICAgICAgRyA9IG54LkdyYXBoKCkKQEAgLTM0OCw4ICszNzIsMjMgQEAgY2xhc3MgVGVzdEJlbGxtYW5Gb3JkQW5kR29sZGJlcmdSYWR6aWsoV2VpZ2h0ZWRUZXN0QmFzZSk6CiAgICAgICAgIGFzc2VydF9lcXVhbChueC5zaW5nbGVfc291cmNlX2JlbGxtYW5fZm9yZChHLCAwKSwgKHswOiAwfSwgezA6IFswXX0pKQogICAgICAgICBhc3NlcnRfZXF1YWwobnguYmVsbG1hbl9mb3JkX3ByZWRlY2Vzc29yX2FuZF9kaXN0YW5jZShHLCAwKSwgKHswOiBbXX0sIHswOiAwfSkpCiAgICAgICAgIGFzc2VydF9lcXVhbChueC5nb2xkYmVyZ19yYWR6aWsoRywgMCksICh7MDogTm9uZX0sIHswOiAwfSkpCi0gICAgICAgIGFzc2VydF9yYWlzZXMobnguTm9kZU5vdEZvdW5kLCBueC5iZWxsbWFuX2ZvcmRfcHJlZGVjZXNzb3JfYW5kX2Rpc3RhbmNlLCBHLCAxKQotICAgICAgICBhc3NlcnRfcmFpc2VzKG54Lk5vZGVOb3RGb3VuZCwgbnguZ29sZGJlcmdfcmFkemlrLCBHLCAxKQorCisgICAgZGVmIHRlc3RfYWJzZW50X3NvdXJjZV9iZWxsbWFuX2ZvcmQoc2VsZik6CisgICAgICAgICMgdGhlIGNoZWNrIGlzIGluIF9iZWxsbWFuX2ZvcmQ7IHRoaXMgcHJvdmlkZXMgcmVncmVzc2lvbiB0ZXN0aW5nCisgICAgICAgICMgYWdhaW5zdCBsYXRlciBjaGFuZ2VzIHRvICJjbGllbnQiIEJlbGxtYW4tRm9yZCBmdW5jdGlvbnMKKyAgICAgICAgRyA9IG54LnBhdGhfZ3JhcGgoMikKKyAgICAgICAgZm9yIGZuIGluIChueC5iZWxsbWFuX2ZvcmRfcHJlZGVjZXNzb3JfYW5kX2Rpc3RhbmNlLAorICAgICAgICAgICAgICAgICAgIG54LmJlbGxtYW5fZm9yZF9wYXRoLAorICAgICAgICAgICAgICAgICAgIG54LmJlbGxtYW5fZm9yZF9wYXRoX2xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICBueC5zaW5nbGVfc291cmNlX2JlbGxtYW5fZm9yZF9wYXRoLAorICAgICAgICAgICAgICAgICAgIG54LnNpbmdsZV9zb3VyY2VfYmVsbG1hbl9mb3JkX3BhdGhfbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgIG54LnNpbmdsZV9zb3VyY2VfYmVsbG1hbl9mb3JkLCk6CisgICAgICAgICAgICBhc3NlcnRfcmFpc2VzKG54Lk5vZGVOb3RGb3VuZCwgZm4sIEcsIDMsIDApCisKKyAgICBAcmFpc2VzKG54Lk5vZGVOb3RGb3VuZCkKKyAgICBkZWYgdGVzdF9hYnNlbnRfc291cmNlX2dvbGRiZXJnX3JhZHppayhzZWxmKToKKyAgICAgICAgRyA9IG54LnBhdGhfZ3JhcGgoMikKKyAgICAgICAgbnguZ29sZGJlcmdfcmFkemlrKEcsIDMsIDApCiAKICAgICBkZWYgdGVzdF9uZWdhdGl2ZV93ZWlnaHRfY3ljbGUoc2VsZik6CiAgICAgICAgIEcgPSBueC5jeWNsZV9ncmFwaCg1LCBjcmVhdGVfdXNpbmc9bnguRGlHcmFwaCgpKQpkaWZmIC0tZ2l0IGEvbmV0d29ya3gvYWxnb3JpdGhtcy9zaG9ydGVzdF9wYXRocy93ZWlnaHRlZC5weSBiL25ldHdvcmt4L2FsZ29yaXRobXMvc2hvcnRlc3RfcGF0aHMvd2VpZ2h0ZWQucHkKaW5kZXggNDA2ODA3Mzc3Li45MmZiNmRlNGUgMTAwNjQ0Ci0tLSBhL25ldHdvcmt4L2FsZ29yaXRobXMvc2hvcnRlc3RfcGF0aHMvd2VpZ2h0ZWQucHkKKysrIGIvbmV0d29ya3gvYWxnb3JpdGhtcy9zaG9ydGVzdF9wYXRocy93ZWlnaHRlZC5weQpAQCAtMTIzLDYgKzEyMyw5IEBAIGRlZiBkaWprc3RyYV9wYXRoKEcsIHNvdXJjZSwgdGFyZ2V0LCB3ZWlnaHQ9J3dlaWdodCcpOgogCiAgICAgUmFpc2VzCiAgICAgLS0tLS0tCisgICAgTm9kZU5vdEZvdW5kCisgICAgICAgIElmIGBzb3VyY2VgIGlzIG5vdCBpbiBgR2AuCisKICAgICBOZXR3b3JrWE5vUGF0aAogICAgICAgIElmIG5vIHBhdGggZXhpc3RzIGJldHdlZW4gc291cmNlIGFuZCB0YXJnZXQuCiAKQEAgLTE5Nyw2ICsyMDAsOSBAQCBkZWYgZGlqa3N0cmFfcGF0aF9sZW5ndGgoRywgc291cmNlLCB0YXJnZXQsIHdlaWdodD0nd2VpZ2h0Jyk6CiAKICAgICBSYWlzZXMKICAgICAtLS0tLS0KKyAgICBOb2RlTm90Rm91bmQKKyAgICAgICAgSWYgYHNvdXJjZWAgaXMgbm90IGluIGBHYC4KKwogICAgIE5ldHdvcmtYTm9QYXRoCiAgICAgICAgIElmIG5vIHBhdGggZXhpc3RzIGJldHdlZW4gc291cmNlIGFuZCB0YXJnZXQuCiAKQEAgLTI2NSw2ICsyNzEsMTEgQEAgZGVmIHNpbmdsZV9zb3VyY2VfZGlqa3N0cmFfcGF0aChHLCBzb3VyY2UsIGN1dG9mZj1Ob25lLCB3ZWlnaHQ9J3dlaWdodCcpOgogICAgIHBhdGhzIDogZGljdGlvbmFyeQogICAgICAgIERpY3Rpb25hcnkgb2Ygc2hvcnRlc3QgcGF0aCBsZW5ndGhzIGtleWVkIGJ5IHRhcmdldC4KIAorICAgIFJhaXNlcworICAgIC0tLS0tLQorICAgIE5vZGVOb3RGb3VuZAorICAgICAgICBJZiBgc291cmNlYCBpcyBub3QgaW4gYEdgLgorCiAgICAgRXhhbXBsZXMKICAgICAtLS0tLS0tLQogICAgID4+PiBHPW54LnBhdGhfZ3JhcGgoNSkKQEAgLTMyNSw2ICszMzYsMTEgQEAgZGVmIHNpbmdsZV9zb3VyY2VfZGlqa3N0cmFfcGF0aF9sZW5ndGgoRywgc291cmNlLCBjdXRvZmY9Tm9uZSwKICAgICBsZW5ndGggOiBkaWN0CiAgICAgICAgIERpY3Qga2V5ZWQgYnkgbm9kZSB0byBzaG9ydGVzdCBwYXRoIGxlbmd0aCBmcm9tIHNvdXJjZS4KIAorICAgIFJhaXNlcworICAgIC0tLS0tLQorICAgIE5vZGVOb3RGb3VuZAorICAgICAgICBJZiBgc291cmNlYCBpcyBub3QgaW4gYEdgLgorCiAgICAgRXhhbXBsZXMKICAgICAtLS0tLS0tLQogICAgID4+PiBHID0gbngucGF0aF9ncmFwaCg1KQpAQCAtNDA0LDYgKzQyMCwxMCBAQCBkZWYgc2luZ2xlX3NvdXJjZV9kaWprc3RyYShHLCBzb3VyY2UsIHRhcmdldD1Ob25lLCBjdXRvZmY9Tm9uZSwKICAgICAgICBkaXN0YW5jZSBpcyB0aGUgZGlzdGFuY2UgZnJvbSBzb3VyY2UgdG8gdGFyZ2V0IGFuZCBwYXRoIGlzIGEgbGlzdAogICAgICAgIHJlcHJlc2VudGluZyB0aGUgcGF0aCBmcm9tIHNvdXJjZSB0byB0YXJnZXQuCiAKKyAgICBSYWlzZXMKKyAgICAtLS0tLS0KKyAgICBOb2RlTm90Rm91bmQKKyAgICAgICAgSWYgYHNvdXJjZWAgaXMgbm90IGluIGBHYC4KIAogICAgIEV4YW1wbGVzCiAgICAgLS0tLS0tLS0KQEAgLTUxMiw2ICs1MzIsOCBAQCBkZWYgbXVsdGlfc291cmNlX2RpamtzdHJhX3BhdGgoRywgc291cmNlcywgY3V0b2ZmPU5vbmUsIHdlaWdodD0nd2VpZ2h0Jyk6CiAgICAgLS0tLS0tCiAgICAgVmFsdWVFcnJvcgogICAgICAgICBJZiBgc291cmNlc2AgaXMgZW1wdHkuCisgICAgTm9kZU5vdEZvdW5kCisgICAgICAgIElmIGFueSBvZiBgc291cmNlc2AgaXMgbm90IGluIGBHYC4KIAogICAgIFNlZSBBbHNvCiAgICAgLS0tLS0tLS0KQEAgLTU4Nyw2ICs2MDksOCBAQCBkZWYgbXVsdGlfc291cmNlX2RpamtzdHJhX3BhdGhfbGVuZ3RoKEcsIHNvdXJjZXMsIGN1dG9mZj1Ob25lLAogICAgIC0tLS0tLQogICAgIFZhbHVlRXJyb3IKICAgICAgICAgSWYgYHNvdXJjZXNgIGlzIGVtcHR5LgorICAgIE5vZGVOb3RGb3VuZAorICAgICAgICBJZiBhbnkgb2YgYHNvdXJjZXNgIGlzIG5vdCBpbiBgR2AuCiAKICAgICBTZWUgQWxzbwogICAgIC0tLS0tLS0tCkBAIC02ODksNiArNzEzLDggQEAgZGVmIG11bHRpX3NvdXJjZV9kaWprc3RyYShHLCBzb3VyY2VzLCB0YXJnZXQ9Tm9uZSwgY3V0b2ZmPU5vbmUsCiAgICAgLS0tLS0tCiAgICAgVmFsdWVFcnJvcgogICAgICAgICBJZiBgc291cmNlc2AgaXMgZW1wdHkuCisgICAgTm9kZU5vdEZvdW5kCisgICAgICAgIElmIGFueSBvZiBgc291cmNlc2AgaXMgbm90IGluIGBHYC4KIAogICAgIFNlZSBBbHNvCiAgICAgLS0tLS0tLS0KQEAgLTc2NCw2ICs3OTAsMTEgQEAgZGVmIF9kaWprc3RyYV9tdWx0aXNvdXJjZShHLCBzb3VyY2VzLCB3ZWlnaHQsIHByZWQ9Tm9uZSwgcGF0aHM9Tm9uZSwKICAgICAgICAgQSBtYXBwaW5nIGZyb20gbm9kZSB0byBzaG9ydGVzdCBkaXN0YW5jZSB0byB0aGF0IG5vZGUgZnJvbSBvbmUKICAgICAgICAgb2YgdGhlIHNvdXJjZSBub2Rlcy4KIAorICAgIFJhaXNlcworICAgIC0tLS0tLQorICAgIE5vZGVOb3RGb3VuZAorICAgICAgICBJZiBhbnkgb2YgYHNvdXJjZXNgIGlzIG5vdCBpbiBgR2AuCisKICAgICBOb3RlcwogICAgIC0tLS0tCiAgICAgVGhlIG9wdGlvbmFsIHByZWRlY2Vzc29yIGFuZCBwYXRoIGRpY3Rpb25hcmllcyBjYW4gYmUgYWNjZXNzZWQgYnkKQEAgLTc4Miw2ICs4MTMsOCBAQCBkZWYgX2RpamtzdHJhX211bHRpc291cmNlKEcsIHNvdXJjZXMsIHdlaWdodCwgcHJlZD1Ob25lLCBwYXRocz1Ob25lLAogICAgIGMgPSBjb3VudCgpCiAgICAgZnJpbmdlID0gW10KICAgICBmb3Igc291cmNlIGluIHNvdXJjZXM6CisgICAgICAgIGlmIHNvdXJjZSBub3QgaW4gRzoKKyAgICAgICAgICAgIHJhaXNlIG54Lk5vZGVOb3RGb3VuZCgiU291cmNlIHt9IG5vdCBpbiBHIi5mb3JtYXQoc291cmNlKSkKICAgICAgICAgc2Vlbltzb3VyY2VdID0gMAogICAgICAgICBwdXNoKGZyaW5nZSwgKDAsIG5leHQoYyksIHNvdXJjZSkpCiAgICAgd2hpbGUgZnJpbmdlOgpAQCAtODU3LDYgKzg5MCwxMSBAQCBkZWYgZGlqa3N0cmFfcHJlZGVjZXNzb3JfYW5kX2Rpc3RhbmNlKEcsIHNvdXJjZSwgY3V0b2ZmPU5vbmUsIHdlaWdodD0nd2VpZ2h0Jyk6CiAgICAgICAgV2FybmluZzogSWYgdGFyZ2V0IGlzIHNwZWNpZmllZCwgdGhlIGRpY3RzIGFyZSBpbmNvbXBsZXRlIGFzIHRoZXkKICAgICAgICBvbmx5IGNvbnRhaW4gaW5mb3JtYXRpb24gZm9yIHRoZSBub2RlcyBhbG9uZyBhIHBhdGggdG8gdGFyZ2V0LgogCisgICAgUmFpc2VzCisgICAgLS0tLS0tCisgICAgTm9kZU5vdEZvdW5kCisgICAgICAgIElmIGBzb3VyY2VgIGlzIG5vdCBpbiBgR2AuCisKICAgICBOb3RlcwogICAgIC0tLS0tCiAgICAgRWRnZSB3ZWlnaHQgYXR0cmlidXRlcyBtdXN0IGJlIG51bWVyaWNhbC4KQEAgLTExMDMsNiArMTE0MSw5IEBAIGRlZiBiZWxsbWFuX2ZvcmRfcHJlZGVjZXNzb3JfYW5kX2Rpc3RhbmNlKEcsIHNvdXJjZSwgdGFyZ2V0PU5vbmUsCiAKICAgICBSYWlzZXMKICAgICAtLS0tLS0KKyAgICBOb2RlTm90Rm91bmQKKyAgICAgICAgSWYgYHNvdXJjZWAgaXMgbm90IGluIGBHYC4KKwogICAgIE5ldHdvcmtYVW5ib3VuZGVkCiAgICAgICAgSWYgdGhlIChkaSlncmFwaCBjb250YWlucyBhIG5lZ2F0aXZlIGNvc3QgKGRpKWN5Y2xlLCB0aGUKICAgICAgICBhbGdvcml0aG0gcmFpc2VzIGFuIGV4Y2VwdGlvbiB0byBpbmRpY2F0ZSB0aGUgcHJlc2VuY2Ugb2YgdGhlCkBAIC0xMjA5LDEyICsxMjUwLDE4IEBAIGRlZiBfYmVsbG1hbl9mb3JkKEcsIHNvdXJjZSwgd2VpZ2h0LCBwcmVkPU5vbmUsIHBhdGhzPU5vbmUsIGRpc3Q9Tm9uZSwKIAogICAgIFJhaXNlcwogICAgIC0tLS0tLQorICAgIE5vZGVOb3RGb3VuZAorICAgICAgICBJZiBhbnkgb2YgYHNvdXJjZWAgaXMgbm90IGluIGBHYC4KKwogICAgIE5ldHdvcmtYVW5ib3VuZGVkCiAgICAgICAgSWYgdGhlIChkaSlncmFwaCBjb250YWlucyBhIG5lZ2F0aXZlIGNvc3QgKGRpKWN5Y2xlLCB0aGUKICAgICAgICBhbGdvcml0aG0gcmFpc2VzIGFuIGV4Y2VwdGlvbiB0byBpbmRpY2F0ZSB0aGUgcHJlc2VuY2Ugb2YgdGhlCiAgICAgICAgbmVnYXRpdmUgY29zdCAoZGkpY3ljbGUuICBOb3RlOiBhbnkgbmVnYXRpdmUgd2VpZ2h0IGVkZ2UgaW4gYW4KICAgICAgICB1bmRpcmVjdGVkIGdyYXBoIGlzIGEgbmVnYXRpdmUgY29zdCBjeWNsZQogICAgICIiIgorICAgIGZvciBzIGluIHNvdXJjZToKKyAgICAgICAgaWYgcyBub3QgaW4gRzoKKyAgICAgICAgICAgIHJhaXNlIG54Lk5vZGVOb3RGb3VuZCgiU291cmNlIHt9IG5vdCBpbiBHIi5mb3JtYXQocykpCiAKICAgICBpZiBwcmVkIGlzIE5vbmU6CiAgICAgICAgIHByZWQgPSB7djogW10gZm9yIHYgaW4gc291cmNlfQpAQCAtMTMwMiw2ICsxMzQ5LDkgQEAgZGVmIGJlbGxtYW5fZm9yZF9wYXRoKEcsIHNvdXJjZSwgdGFyZ2V0LCB3ZWlnaHQ9J3dlaWdodCcpOgogCiAgICAgUmFpc2VzCiAgICAgLS0tLS0tCisgICAgTm9kZU5vdEZvdW5kCisgICAgICAgIElmIGBzb3VyY2VgIGlzIG5vdCBpbiBgR2AuCisKICAgICBOZXR3b3JrWE5vUGF0aAogICAgICAgIElmIG5vIHBhdGggZXhpc3RzIGJldHdlZW4gc291cmNlIGFuZCB0YXJnZXQuCiAKQEAgLTEzNDksNiArMTM5OSw5IEBAIGRlZiBiZWxsbWFuX2ZvcmRfcGF0aF9sZW5ndGgoRywgc291cmNlLCB0YXJnZXQsIHdlaWdodD0nd2VpZ2h0Jyk6CiAKICAgICBSYWlzZXMKICAgICAtLS0tLS0KKyAgICBOb2RlTm90Rm91bmQKKyAgICAgICAgSWYgYHNvdXJjZWAgaXMgbm90IGluIGBHYC4KKwogICAgIE5ldHdvcmtYTm9QYXRoCiAgICAgICAgIElmIG5vIHBhdGggZXhpc3RzIGJldHdlZW4gc291cmNlIGFuZCB0YXJnZXQuCiAKQEAgLTE0MDMsNiArMTQ1NiwxMSBAQCBkZWYgc2luZ2xlX3NvdXJjZV9iZWxsbWFuX2ZvcmRfcGF0aChHLCBzb3VyY2UsIGN1dG9mZj1Ob25lLCB3ZWlnaHQ9J3dlaWdodCcpOgogICAgIHBhdGhzIDogZGljdGlvbmFyeQogICAgICAgIERpY3Rpb25hcnkgb2Ygc2hvcnRlc3QgcGF0aCBsZW5ndGhzIGtleWVkIGJ5IHRhcmdldC4KIAorICAgIFJhaXNlcworICAgIC0tLS0tLQorICAgIE5vZGVOb3RGb3VuZAorICAgICAgICBJZiBgc291cmNlYCBpcyBub3QgaW4gYEdgLgorCiAgICAgRXhhbXBsZXMKICAgICAtLS0tLS0tLQogICAgID4+PiBHPW54LnBhdGhfZ3JhcGgoNSkKQEAgLTE0NDgsNiArMTUwNiwxMSBAQCBkZWYgc2luZ2xlX3NvdXJjZV9iZWxsbWFuX2ZvcmRfcGF0aF9sZW5ndGgoRywgc291cmNlLAogICAgIGxlbmd0aCA6IGl0ZXJhdG9yCiAgICAgICAgICh0YXJnZXQsIHNob3J0ZXN0IHBhdGggbGVuZ3RoKSBpdGVyYXRvcgogCisgICAgUmFpc2VzCisgICAgLS0tLS0tCisgICAgTm9kZU5vdEZvdW5kCisgICAgICAgIElmIGBzb3VyY2VgIGlzIG5vdCBpbiBgR2AuCisKICAgICBFeGFtcGxlcwogICAgIC0tLS0tLS0tCiAgICAgPj4+IEcgPSBueC5wYXRoX2dyYXBoKDUpCkBAIC0xNTA1LDYgKzE1NjgsMTAgQEAgZGVmIHNpbmdsZV9zb3VyY2VfYmVsbG1hbl9mb3JkKEcsIHNvdXJjZSwKICAgICAgICBkaXN0YW5jZSBpcyB0aGUgZGlzdGFuY2UgZnJvbSBzb3VyY2UgdG8gdGFyZ2V0IGFuZCBwYXRoIGlzIGEgbGlzdAogICAgICAgIHJlcHJlc2VudGluZyB0aGUgcGF0aCBmcm9tIHNvdXJjZSB0byB0YXJnZXQuCiAKKyAgICBSYWlzZXMKKyAgICAtLS0tLS0KKyAgICBOb2RlTm90Rm91bmQKKyAgICAgICAgSWYgYHNvdXJjZWAgaXMgbm90IGluIGBHYC4KIAogICAgIEV4YW1wbGVzCiAgICAgLS0tLS0tLS0KQEAgLTE2ODEsNiArMTc0OCw5IEBAIGRlZiBnb2xkYmVyZ19yYWR6aWsoRywgc291cmNlLCB3ZWlnaHQ9J3dlaWdodCcpOgogCiAgICAgUmFpc2VzCiAgICAgLS0tLS0tCisgICAgTm9kZU5vdEZvdW5kCisgICAgICAgIElmIGBzb3VyY2VgIGlzIG5vdCBpbiBgR2AuCisKICAgICBOZXR3b3JrWFVuYm91bmRlZAogICAgICAgIElmIHRoZSAoZGkpZ3JhcGggY29udGFpbnMgYSBuZWdhdGl2ZSBjb3N0IChkaSljeWNsZSwgdGhlCiAgICAgICAgYWxnb3JpdGhtIHJhaXNlcyBhbiBleGNlcHRpb24gdG8gaW5kaWNhdGUgdGhlIHByZXNlbmNlIG9mIHRoZQpAQCAtMTkxMiw2ICsxOTgyLDkgQEAgZGVmIGJpZGlyZWN0aW9uYWxfZGlqa3N0cmEoRywgc291cmNlLCB0YXJnZXQsIHdlaWdodD0nd2VpZ2h0Jyk6CiAKICAgICBSYWlzZXMKICAgICAtLS0tLS0KKyAgICBOb2RlTm90Rm91bmQKKyAgICAgICAgSWYgZWl0aGVyIGBzb3VyY2VgIG9yIGB0YXJnZXRgIGlzIG5vdCBpbiBgR2AuCisKICAgICBOZXR3b3JrWE5vUGF0aAogICAgICAgICBJZiBubyBwYXRoIGV4aXN0cyBiZXR3ZWVuIHNvdXJjZSBhbmQgdGFyZ2V0LgogCmRpZmYgLS1naXQgYS9uZXR3b3JreC9jbGFzc2VzL3Rlc3RzL3Rlc3Rfc3BlY2lhbC5weSBiL25ldHdvcmt4L2NsYXNzZXMvdGVzdHMvdGVzdF9zcGVjaWFsLnB5CmluZGV4IDY3ZjcxYWU5Ny4uYTFlZjE1ZmUyIDEwMDY0NAotLS0gYS9uZXR3b3JreC9jbGFzc2VzL3Rlc3RzL3Rlc3Rfc3BlY2lhbC5weQorKysgYi9uZXR3b3JreC9jbGFzc2VzL3Rlc3RzL3Rlc3Rfc3BlY2lhbC5weQpAQCAtOCw2ICs4LDQ3IEBAIGZyb20gdGVzdF9tdWx0aWdyYXBoIGltcG9ydCBUZXN0TXVsdGlHcmFwaAogZnJvbSB0ZXN0X211bHRpZGlncmFwaCBpbXBvcnQgVGVzdE11bHRpRGlHcmFwaAogCiAKK2RlZiB0ZXN0X2ZhY3RvcmllcygpOgorICAgIGNsYXNzIG15ZGljdDEoZGljdCk6CisgICAgICAgIHBhc3MKKworICAgIGNsYXNzIG15ZGljdDIoZGljdCk6CisgICAgICAgIHBhc3MKKworICAgIGNsYXNzIG15ZGljdDMoZGljdCk6CisgICAgICAgIHBhc3MKKworICAgIGNsYXNzIG15ZGljdDQoZGljdCk6CisgICAgICAgIHBhc3MKKworICAgIGNsYXNzIG15ZGljdDUoZGljdCk6CisgICAgICAgIHBhc3MKKworICAgIGZvciBHcmFwaCBpbiAobnguR3JhcGgsIG54LkRpR3JhcGgsIG54Lk11bHRpR3JhcGgsIG54Lk11bHRpRGlHcmFwaCk6CisgICAgICAgICMgcHJpbnQoInRlc3RpbmcgY2xhc3M6ICIsIEdyYXBoLl9fbmFtZV9fKQorICAgICAgICBjbGFzcyBNeUdyYXBoKEdyYXBoKToKKyAgICAgICAgICAgIG5vZGVfZGljdF9mYWN0b3J5ID0gbXlkaWN0MQorICAgICAgICAgICAgYWRqbGlzdF9vdXRlcl9kaWN0X2ZhY3RvcnkgPSBteWRpY3QyCisgICAgICAgICAgICBhZGpsaXN0X2lubmVyX2RpY3RfZmFjdG9yeSA9IG15ZGljdDMKKyAgICAgICAgICAgIGVkZ2Vfa2V5X2RpY3RfZmFjdG9yeSA9IG15ZGljdDQKKyAgICAgICAgICAgIGVkZ2VfYXR0cl9kaWN0X2ZhY3RvcnkgPSBteWRpY3Q1CisgICAgICAgIEcgPSBNeUdyYXBoKCkKKyAgICAgICAgYXNzZXJ0X2lzX2luc3RhbmNlKEcuX25vZGUsIG15ZGljdDEpCisgICAgICAgIGFzc2VydF9pc19pbnN0YW5jZShHLl9hZGosIG15ZGljdDIpCisgICAgICAgIEcuYWRkX25vZGUoMSkKKyAgICAgICAgYXNzZXJ0X2lzX2luc3RhbmNlKEcuX2FkalsxXSwgbXlkaWN0MykKKyAgICAgICAgaWYgRy5pc19kaXJlY3RlZCgpOgorICAgICAgICAgICAgYXNzZXJ0X2lzX2luc3RhbmNlKEcuX3ByZWQsIG15ZGljdDIpCisgICAgICAgICAgICBhc3NlcnRfaXNfaW5zdGFuY2UoRy5fc3VjYywgbXlkaWN0MikKKyAgICAgICAgICAgIGFzc2VydF9pc19pbnN0YW5jZShHLl9wcmVkWzFdLCBteWRpY3QzKQorICAgICAgICBHLmFkZF9lZGdlKDEsIDIpCisgICAgICAgIGlmIEcuaXNfbXVsdGlncmFwaCgpOgorICAgICAgICAgICAgYXNzZXJ0X2lzX2luc3RhbmNlKEcuX2FkalsxXVsyXSwgbXlkaWN0NCkKKyAgICAgICAgICAgIGFzc2VydF9pc19pbnN0YW5jZShHLl9hZGpbMV1bMl1bMF0sIG15ZGljdDUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBhc3NlcnRfaXNfaW5zdGFuY2UoRy5fYWRqWzFdWzJdLCBteWRpY3Q1KQorCisKIGNsYXNzIFNwZWNpYWxHcmFwaFRlc3RlcihUZXN0R3JhcGgpOgogICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICAgVGVzdEdyYXBoLnNldFVwKHNlbGYpCg=='\"'\"'))'",
      "git apply /tmp/receipts-networkx__networkx-3101-test.patch"
    ],
    "workdir": "/networkx"
  },
  "spec_paths": [
    "networkx/algorithms/shortest_paths/tests/test_weighted.py",
    "networkx/algorithms/shortest_paths/weighted.py",
    "networkx/classes/tests/test_special.py"
  ],
  "spec_tests": [
    "networkx/classes/tests/test_special.py::test_factories"
  ],
  "suite_scope": "--no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning networkx/algorithms/shortest_paths/tests/test_weighted.py networkx/algorithms/shortest_paths/weighted.py networkx/classes/tests/test_special.py"
}
