diff --git a/cookbook/assets/mst_network_tyk2.json b/cookbook/assets/mst_network_tyk2.json new file mode 100644 index 0000000..a7254f5 --- /dev/null +++ b/cookbook/assets/mst_network_tyk2.json @@ -0,0 +1 @@ +[["LigandNetwork-56242d91209617d23bca6e9e25c7e45b", {"graphml": "\n \n \n \n \n \n {\":version:\": 1, \"__module__\": \"gufe.components.smallmoleculecomponent\", \"__qualname__\": \"SmallMoleculeComponent\", \"atoms\": [[1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.14806253125}, 1], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.09593746875}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.12893746875}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.05246253125}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.14353746875}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.05246253125}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.12893746875}, 3], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.15706253125}, 1], [17, 0, 0, false, 0, 0, {\"PartialCharge\": -0.060337468750000005}, 4], [6, 0, 0, false, 0, 0, {\"PartialCharge\": 0.69176253125}, 3], [8, 0, 0, false, 0, 0, {\"PartialCharge\": -0.55003746875}, 3], [7, 0, 0, false, 0, 0, {\"PartialCharge\": -0.46003746875}, 3], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.33056253125}, 1], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.12766253125}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.30423746875}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.44526253125}, 3], [7, 0, 0, true, 0, 0, {\"PartialCharge\": -0.73793746875}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.55126253125}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.32323746875}, 3], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.18006253125}, 1], [7, 0, 0, false, 0, 0, {\"PartialCharge\": -0.55333746875}, 3], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.33156253125}, 1], [6, 0, 0, false, 0, 0, {\"PartialCharge\": 0.67116253125}, 3], [8, 0, 0, false, 0, 0, {\"PartialCharge\": -0.59303746875}, 3], [6, 0, 0, false, 0, 0, {\"PartialCharge\": -0.17803746875}, 4], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.07109553125}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.07109553125}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.07109553125}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.025162531250000002}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.18306253125}, 1], [17, 0, 0, false, 0, 0, {\"PartialCharge\": -0.060337468750000005}, 4], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.15706253125}, 1]], \"bonds\": [[0, 1, 1, 0, {}], [1, 6, 12, 0, {}], [1, 2, 12, 0, {}], [2, 3, 12, 0, {}], [2, 31, 1, 0, {}], [3, 4, 12, 0, {}], [3, 30, 1, 0, {}], [4, 5, 12, 0, {}], [4, 9, 1, 0, {}], [5, 6, 12, 0, {}], [5, 8, 1, 0, {}], [6, 7, 1, 0, {}], [9, 10, 2, 0, {}], [9, 11, 1, 0, {}], [11, 12, 1, 0, {}], [11, 13, 1, 0, {}], [13, 18, 12, 0, {}], [13, 14, 12, 0, {}], [14, 15, 12, 0, {}], [14, 29, 1, 0, {}], [15, 16, 12, 0, {}], [15, 28, 1, 0, {}], [16, 17, 12, 0, {}], [17, 18, 12, 0, {}], [17, 20, 1, 0, {}], [18, 19, 1, 0, {}], [20, 21, 1, 0, {}], [20, 22, 1, 0, {}], [22, 23, 2, 0, {}], [22, 24, 1, 0, {}], [24, 25, 1, 0, {}], [24, 26, 1, 0, {}], [24, 27, 1, 0, {}]], \"conformer\": [\"\\u0093NUMPY\\u0001\\u0000v\\u0000{'descr': '<f8', 'fortran_order': False, 'shape': (32, 3), } \\n\\u00f3\\u008eSt$\\u0017\\u0013\\u00c0W[\\u00b1\\u00bf\\u00ec\\u009e\\u0006\\u00c09\\u00b4\\u00c8v\\u00be\\u007f0\\u00c05\\u00ef8EGr\\u0015\\u00c0P\\u008d\\u0097n\\u0012\\u0083\\r\\u00c0b\\u00a1\\u00d64\\u00ef80\\u00c0\\u0095e\\u0088c]\\u001c\\u0013\\u00c0\\u0096!\\u008euq\\u00db\\u0013\\u00c0\\u00a5,C\\u001c\\u00eb20\\u00c0j\\u00deq\\u008a\\u008e$\\u0016\\u00c0\\u00b4\\u00c8v\\u00be\\u009fZ\\u0018\\u00c0+\\u00f6\\u0097\\u00dd\\u0093\\u00a7/\\u00c0_\\u0007\\u00ce\\u0019Q\\u009a\\u001b\\u00c0d\\u00cc]K\\u00c8\\u00c7\\u0017\\u00c0m\\u00c5\\u00fe\\u00b2{\\u00f2.\\u00c0\\u009e\\u00ef\\u00a7\\u00c6K\\u00f7\\u001d\\u00c0p\\u00ce\\u0088\\u00d2\\u00de\\u00a0\\u0012\\u00c0\\u00e7\\u00fb\\u00a9\\u00f1\\u00d2\\r/\\u00c0r\\u008a\\u008e\\u00e4\\u00f2\\u00df\\u001a\\u00c0\\u00e1\\u000b\\u0093\\u00a9\\u0082Q\\f\\u00c0\\t\\u001b\\u009e^)\\u00cb/\\u00c0\\u00f7\\u00e4a\\u00a1\\u00d6\\u00b4\\u001c\\u00c0\\u0017\\u00b7\\u00d1\\u0000\\u00de\\u0082\\u0004\\u00c0\\u00e2X\\u0017\\u00b7\\u00d1\\u00e0/\\u00c0)\\u00cb\\u0010\\u00c7\\u00baX\\\"\\u00c0a2U0*\\u00a9\\u0011\\u00c0V\\u009f\\u00ab\\u00ad\\u00d8_.\\u00c0C\\u001c\\u00eb\\u00e26\\u00da\\u001e\\u00c0\\u0083/L\\u00a6\\n\\u0086\\u001c\\u00c0\\u00de\\u0093\\u0087\\u0085Z\\u0013.\\u00c0\\u00d3\\u00bc\\u00e3\\u0014\\u001dI \\u00c0\\u00ec/\\u00bb'\\u000f\\u00cb\\u001c\\u00c0h\\\"lxz\\u00c5+\\u00c0\\u009f\\u00cd\\u00aa\\u00cf\\u00d5\\u0096\\u001f\\u00c0\\u0094\\u0087\\u0085Z\\u00d3\\u001c \\u00c0t$\\u0097\\u00ff\\u0090\\u00fe/\\u00c0r\\u00f9\\u000f\\u00e9\\u00b7\\u00af\\u001d\\u00c0Gr\\u00f9\\u000f\\u00e9w\\u001f\\u00c0Zd;\\u00dfO\\u00dd0\\u00c0p_\\u0007\\u00ce\\u0019q!\\u00c0!\\u00b0rh\\u0091m\\\"\\u00c0\\u008c\\u00dbh\\u0000o\\u00010\\u00c0H\\u00e1z\\u0014\\u00ae'#\\u00c0\\u008a\\u00b0\\u00e1\\u00e9\\u00952#\\u00c0\\u009e^)\\u00cb\\u0010\\u00e7-\\u00c0\\u0085\\u00ebQ\\u00b8\\u001e\\u00c5$\\u00c0I.\\u00ff!\\u00fdv%\\u00c0M\\u00f3\\u008eStD.\\u00c0\\\\\\u008f\\u00c2\\u00f5(\\u00bc$\\u00c0\\nh\\\"lx\\u00fa&\\u00c0\\u00ff\\u00b2{\\u00f2\\u00b0@0\\u00c0Nb\\u0010X9\\u0014#\\u00c0?5^\\u00baIL&\\u00c0i\\u0000o\\u0081\\u0004E1\\u00c0=\\u009bU\\u009f\\u00abm!\\u00c0\\u008euq\\u001b\\r\\u0000$\\u00c0[\\u00b1\\u00bf\\u00ec\\u009e,1\\u00c0%\\u0006\\u0081\\u0095C+ \\u00c0\\u0088\\u0085Z\\u00d3\\u00bcc#\\u00c0\\u0003x\\u000b$(\\u00fe1\\u00c0\\u0012\\u00a5\\u00bd\\u00c1\\u0017&#\\u00c0\\u00cb\\u00a1E\\u00b6\\u00f3\\u00dd'\\u00c0io\\u00f0\\u0085\\u00c9t2\\u00c0\\u00ea\\u0095\\u00b2\\fq\\u00cc$\\u00c0\\u0018\\u0095\\u00d4\\th\\u0002)\\u00c0vO\\u001e\\u0016j\\u008d2\\u00c0\\u00bb\\u00b8\\u008d\\u0006\\u00f0V!\\u00c0\\u00c1\\u00ca\\u00a1E\\u00b6\\u0013(\\u00c0\\u00deq\\u008a\\u008e\\u00e4r3\\u00c0\\u00c5 \\u00b0rhQ\\u001e\\u00c0\\u00c5\\u00fe\\u00b2{\\u00f2\\u00f0&\\u00c0\\u00d1\\u0091\\\\\\u00feCz3\\u00c0B>\\u00e8\\u00d9\\u00ac\\u001a\\\"\\u00c0\\u0080\\u00b7@\\u0082\\u00e2\\u00e7)\\u00c0\\b=\\u009bU\\u009f\\u009b4\\u00c0r\\u00f9\\u000f\\u00e9\\u00b7O\\\"\\u00c0\\u00de\\u0093\\u0087\\u0085Z\\u00f3+\\u00c0o\\u0012\\u0083\\u00c0\\u00caA4\\u00c0\\u008a\\u008e\\u00e4\\u00f2\\u001f\\u0092 \\u00c0\\u00aa`TR'\\u00e0)\\u00c0n4\\u0080\\u00b7@b5\\u00c0\\u00e8j+\\u00f6\\u0097\\u00fd#\\u00c0\\u00b3{\\u00f2\\u00b0PK)\\u00c0:#J{\\u0083\\u000f5\\u00c0\\u008c\\u00dbh\\u0000o!&\\u00c0\\u00d9=yX\\u00a8\\u0015&\\u00c0\\u0012\\u0014?\\u00c6\\u00dc\\u00b5,\\u00c0\\u00a5\\u00bd\\u00c1\\u0017&S#\\u00c0io\\u00f0\\u0085\\u00c9\\u0014\\\"\\u00c0\\u00ab\\u00cf\\u00d5V\\u00ec\\u000f,\\u00c0\\u00e0\\u009c\\u0011\\u00a5\\u00bd\\u0001\\u0013\\u00c0\\u00ad\\u00fa\\\\m\\u00c5~\\u001e\\u00c0L7\\u0089A`\\u00a5/\\u00c0\\u0002\\u009a\\b\\u001b\\u009e\\u00de\\r\\u00c0\\u00c8\\u0098\\u00bb\\u0096\\u0090O\\u0014\\u00c0N\\u00d1\\u0091\\\\\\u00fes0\\u00c0\", {}], \"molprops\": {\"atom.dprop.PartialCharge\": \"0.14806253124999999 -0.095937468750000005 -0.12893746875000001 0.05246253125 -0.14353746875000001 0.05246253125 -0.12893746875000001 0.15706253125 -0.060337468750000005 0.69176253124999998\\n-0.55003746875000004 -0.46003746875000001 0.33056253125000001 0.12766253124999999 -0.30423746875000002 0.44526253124999998 -0.73793746874999999 0.55126253125000002 -0.32323746874999998\\n0.18006253124999999 -0.55333746875000001 0.33156253125000001 0.67116253125000003 -0.59303746874999996 -0.17803746875000001 0.071095531249999996 0.071095531249999996 0.071095531249999996\\n0.025162531250000002 0.18306253124999999 -0.060337468750000005 0.15706253125\", \"ofe-name\": \"lig_ejm_31\"}}\n \n \n {\":version:\": 1, \"__module__\": \"gufe.components.smallmoleculecomponent\", \"__qualname__\": \"SmallMoleculeComponent\", \"atoms\": [[1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.14792105263157893}, 1], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.09607894736842106}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.12907894736842107}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.05232105263157895}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.14367894736842107}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.05232105263157895}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.12907894736842107}, 3], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.15692105263157893}, 1], [17, 0, 0, false, 0, 0, {\"PartialCharge\": -0.059978947368421055}, 4], [6, 0, 0, false, 0, 0, {\"PartialCharge\": 0.6916210526315789}, 3], [8, 0, 0, false, 0, 0, {\"PartialCharge\": -0.5501789473684211}, 3], [7, 0, 0, false, 0, 0, {\"PartialCharge\": -0.4601789473684211}, 3], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.33042105263157895}, 1], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.12752105263157892}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.3033789473684211}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.4441210526315789}, 3], [7, 0, 0, true, 0, 0, {\"PartialCharge\": -0.7370789473684211}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.550121052631579}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.32037894736842104}, 3], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.17792105263157892}, 1], [7, 0, 0, false, 0, 0, {\"PartialCharge\": -0.5514789473684211}, 3], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.33042105263157895}, 1], [6, 0, 0, false, 0, 0, {\"PartialCharge\": 0.669021052631579}, 3], [8, 0, 0, false, 0, 0, {\"PartialCharge\": -0.589178947368421}, 3], [6, 0, 0, false, 0, 0, {\"PartialCharge\": -0.13277894736842108}, 4], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.06662105263157894}, 1], [6, 0, 0, false, 0, 0, {\"PartialCharge\": -0.09117894736842105}, 4], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.047121052631578945}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.047121052631578945}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.047121052631578945}, 1], [6, 0, 0, false, 0, 0, {\"PartialCharge\": -0.09117894736842105}, 4], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.047121052631578945}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.047121052631578945}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.047121052631578945}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.025021052631578947}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.18292105263157893}, 1], [17, 0, 0, false, 0, 0, {\"PartialCharge\": -0.059978947368421055}, 4], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.15692105263157893}, 1]], \"bonds\": [[0, 1, 1, 0, {}], [1, 6, 12, 0, {}], [1, 2, 12, 0, {}], [2, 3, 12, 0, {}], [2, 37, 1, 0, {}], [3, 4, 12, 0, {}], [3, 36, 1, 0, {}], [4, 5, 12, 0, {}], [4, 9, 1, 0, {}], [5, 6, 12, 0, {}], [5, 8, 1, 0, {}], [6, 7, 1, 0, {}], [9, 10, 2, 0, {}], [9, 11, 1, 0, {}], [11, 12, 1, 0, {}], [11, 13, 1, 0, {}], [13, 18, 12, 0, {}], [13, 14, 12, 0, {}], [14, 15, 12, 0, {}], [14, 35, 1, 0, {}], [15, 16, 12, 0, {}], [15, 34, 1, 0, {}], [16, 17, 12, 0, {}], [17, 18, 12, 0, {}], [17, 20, 1, 0, {}], [18, 19, 1, 0, {}], [20, 21, 1, 0, {}], [20, 22, 1, 0, {}], [22, 23, 2, 0, {}], [22, 24, 1, 0, {}], [24, 25, 1, 0, {}], [24, 26, 1, 0, {}], [24, 30, 1, 0, {}], [26, 27, 1, 0, {}], [26, 28, 1, 0, {}], [26, 29, 1, 0, {}], [30, 31, 1, 0, {}], [30, 32, 1, 0, {}], [30, 33, 1, 0, {}]], \"conformer\": [\"\\u0093NUMPY\\u0001\\u0000v\\u0000{'descr': '<f8', 'fortran_order': False, 'shape': (38, 3), } \\n|\\u00f2\\u00b0Pk\\u001a\\u0013\\u00c0_\\u0098L\\u0015\\u008cJ\\u0006\\u00c0*:\\u0092\\u00cb\\u007fh0\\u00c0\\u00bc\\u0096\\u0090\\u000fzv\\u0015\\u00c07\\u001a\\u00c0[ A\\r\\u00c0\\u00f0\\u00a7\\u00c6K7)0\\u00c0\\u00cf\\u00f7S\\u00e3\\u00a5\\u001b\\u0013\\u00c0\\u00ee|?5^\\u00ba\\u0013\\u00c0\\u00f1\\u00f4JY\\u0086(0\\u00c0\\u00d6V\\u00ec/\\u00bb'\\u0016\\u00c0\\u00bf}\\u001d8gD\\u0018\\u00c0\\u0087\\u00a7W\\u00ca2\\u00a4/\\u00c04\\u0080\\u00b7@\\u0082\\u00a2\\u001b\\u00c0\\u00e7\\u008c(\\u00ed\\r\\u00be\\u0017\\u00c0k+\\u00f6\\u0097\\u00dd\\u00f3.\\u00c0\\u00ab>W[\\u00b1\\u00ff\\u001d\\u00c0\\u00f5JY\\u00868\\u0096\\u0012\\u00c0\\u00a8\\u00c6K7\\u0089\\u0001/\\u00c0c\\u00eeZB>\\u00e8\\u001a\\u00c0\\u00d3\\u00de\\u00e0\\u000b\\u0093)\\f\\u00c0t\\u00b5\\u0015\\u00fb\\u00cb\\u00ae/\\u00c0\\b\\u00ac\\u001cZd\\u00bb\\u001c\\u00c0\\u0010z6\\u00ab>W\\u0004\\u00c0\\u00f2\\u00b0Pk\\u009a\\u00b7/\\u00c0&S\\u0005\\u00a3\\u0092Z\\\"\\u00c0T\\u00e3\\u00a5\\u009b\\u00c4\\u00a0\\u0011\\u00c0\\u00deq\\u008a\\u008e\\u00e4R.\\u00c0\\u001aQ\\u00da\\u001b|\\u00e1\\u001e\\u00c0-\\u00b2\\u009d\\u00ef\\u00a7\\u0086\\u001c\\u00c0\\u00c5\\u008f1w-!.\\u00c0EGr\\u00f9\\u000fI \\u00c0p\\u00ce\\u0088\\u00d2\\u00de\\u00e0\\u001c\\u00c0\\u00deq\\u008a\\u008e\\u00e4\\u00d2+\\u00c0\\u00e1z\\u0014\\u00aeG\\u00a1\\u001f\\u00c02w-!\\u001f\\u0014 \\u00c0\\u0098n\\u0012\\u0083\\u00c0\\n0\\u00c0\\u000f\\u009c3\\u00a2\\u00b4\\u00b7\\u001d\\u00c0\\u00af\\u0094e\\u0088c]\\u001f\\u00c0\\u007fj\\u00bct\\u0093\\u00e80\\u00c0,e\\u0019\\u00e2Xw!\\u00c0\\u00be\\u009f\\u001a/\\u00ddd\\\"\\u00c0U0*\\u00a9\\u0013\\u00100\\u00c0aTR'\\u00a0)#\\u00c0\\u008e\\u0006\\u00f0\\u0016H0#\\u00c0\\u00c0[ A\\u00f1\\u0003.\\u00c0fffff\\u00c6$\\u00c0\\u0014\\u00aeG\\u00e1zt%\\u00c0\\u00c3\\u00f5(\\\\\\u008fb.\\u00c0V\\u009f\\u00ab\\u00ad\\u00d8\\u00bf$\\u00c0\\u00a3#\\u00b9\\u00fc\\u0087\\u00f4&\\u00c0U\\u00c1\\u00a8\\u00a4NP0\\u00c0{\\u0014\\u00aeG\\u00e1\\u001a#\\u00c0\\u00a6\\nF%uB&\\u00c0\\u0014\\u00aeG\\u00e1zT1\\u00c0f\\u00f7\\u00e4a\\u00a1v!\\u00c0\\u0016jM\\u00f3\\u008e\\u00f3#\\u00c0\\u00b0rh\\u0091\\u00ed<1\\u00c0\\u0081\\u0004\\u00c5\\u008f17 \\u00c0\\u00a2E\\u00b6\\u00f3\\u00fdT#\\u00c0V\\u009f\\u00ab\\u00ad\\u00d8\\u000f2\\u00c0\\u00f3\\u001f\\u00d2o_'#\\u00c0sh\\u0091\\u00ed|\\u00df'\\u00c0\\u00ff!\\u00fd\\u00f6u\\u00802\\u00c0\\u00c5 \\u00b0rh\\u00d1$\\u00c0\\u00fc\\u00a9\\u00f1\\u00d2M\\u0002)\\u00c0\\rq\\u00ac\\u008b\\u00db\\u00982\\u00c0\\u0099*\\u0018\\u0095\\u00d4I!\\u00c0\\u00a9\\u0013\\u00d0D\\u00d80(\\u00c0\\u00bc\\u0096\\u0090\\u000fzv3\\u00c0\\u00e6?\\u00a4\\u00df\\u00beN\\u001e\\u00c0F\\u0094\\u00f6\\u0006_\\u00f8&\\u00c0\\u00e1\\u000b\\u0093\\u00a9\\u0082\\u00813\\u00c0\\u007f\\u00d9=yX\\u00e8!\\u00c0\\u008fSt$\\u0097?*\\u00c0\\u008d\\u0097n\\u0012\\u0083\\u00904\\u00c0\\u00fd\\u0087\\u00f4\\u00db\\u00d7\\u00c1#\\u00c09EGr\\u00f9O+\\u00c0L\\u00a6\\nF%U4\\u00c0\\u00d9=yX\\u00a85\\u001f\\u00c0'\\u00a0\\u0089\\u00b0\\u00e1I,\\u00c0\\u00b9\\u00fc\\u0087\\u00f4\\u00db\\u00b74\\u00c0\\u00e6?\\u00a4\\u00df\\u00beN\\u001e\\u00c0ffffff-\\u00c0Q\\u00da\\u001b|a\\u00d23\\u00c0\\u00fb\\u00cb\\u00ee\\u00c9\\u00c3\\u0082\\u001b\\u00c0\\u00c9v\\u00be\\u009f\\u001aO+\\u00c0\\u0081\\u0004\\u00c5\\u008f1\\u00075\\u00c0d;\\u00dfO\\u008d\\u0017 \\u00c0\\u00dch\\u0000o\\u0081\\u00c4-\\u00c0\\u0097\\u0090\\u000fz6{5\\u00c0o\\u0012\\u0083\\u00c0\\u00ca!\\\"\\u00c0\\u00f8\\u00c2d\\u00aa`\\u00f4(\\u00c0P\\u00fc\\u0018s\\u00d7\\u00f25\\u00c0\\u00c0\\u00ec\\u009e<,\\u00f4#\\u00c0\\u00f2\\u00b0Pk\\u009a\\u00d7'\\u00c0H\\u00bf}\\u001d8\\u00076\\u00c0\\u0010X9\\u00b4\\u00c8v \\u00c0\\u0091\\u00ed|?5\\u009e'\\u00c0{\\u0014\\u00aeG\\u00e1*6\\u00c0f\\u00f7\\u00e4a\\u00a16\\\"\\u00c0\\u0016jM\\u00f3\\u008es*\\u00c0\\u00af%\\u00e4\\u0083\\u009e\\u00bd6\\u00c0V}\\u00ae\\u00b6b\\u001f&\\u00c0\\u00d2o_\\u0007\\u00ce\\u0019&\\u00c0\\u00c1\\u00a8\\u00a4N@\\u00d3,\\u00c0\\u001a\\u00c0[ AQ#\\u00c0\\u000bF%u\\u0002\\u001a\\\"\\u00c0b\\u0010X9\\u00b4(,\\u00c0\\u00c7):\\u0092\\u00cb\\u00ff\\u0012\\u00c0\\u00bb'\\u000f\\u000b\\u00b5f\\u001e\\u00c0L7\\u0089A`\\u00a5/\\u00c0HP\\u00fc\\u0018s\\u00d7\\r\\u00c0\\u00d7\\u0012\\u00f2A\\u00cf&\\u0014\\u00c0\\u0081&\\u00c2\\u0086\\u00a7g0\\u00c0\", {}], \"molprops\": {\"atom.dprop.PartialCharge\": \"0.14792105263157893 -0.096078947368421055 -0.12907894736842107 0.052321052631578949 -0.14367894736842107 0.052321052631578949 -0.12907894736842107 0.15692105263157893 -0.059978947368421055\\n0.69162105263157891 -0.5501789473684211 -0.46017894736842108 0.33042105263157895 0.12752105263157892 -0.30337894736842108 0.44412105263157892 -0.73707894736842106 0.55012105263157896\\n-0.32037894736842104 0.17792105263157892 -0.55147894736842107 0.33042105263157895 0.66902105263157896 -0.58917894736842102 -0.13277894736842108 0.066621052631578942 -0.091178947368421054\\n0.047121052631578945 0.047121052631578945 0.047121052631578945 -0.091178947368421054 0.047121052631578945 0.047121052631578945 0.047121052631578945 0.025021052631578947 0.18292105263157893\\n-0.059978947368421055 0.15692105263157893\", \"ofe-name\": \"lig_ejm_43\"}}\n \n \n {\":version:\": 1, \"__module__\": \"gufe.components.smallmoleculecomponent\", \"__qualname__\": \"SmallMoleculeComponent\", \"atoms\": [[1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.14794282857142857}, 1], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.09605717142857143}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.12905717142857143}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.05234282857142857}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.14365717142857143}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.05234282857142857}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.12905717142857143}, 3], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.15694282857142858}, 1], [17, 0, 0, false, 0, 0, {\"PartialCharge\": -0.05995717142857143}, 4], [6, 0, 0, false, 0, 0, {\"PartialCharge\": 0.6916428285714286}, 3], [8, 0, 0, false, 0, 0, {\"PartialCharge\": -0.5501571714285715}, 3], [7, 0, 0, false, 0, 0, {\"PartialCharge\": -0.46015717142857143}, 3], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.3304428285714286}, 1], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.12754282857142857}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.30335717142857144}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.44414282857142856}, 3], [7, 0, 0, true, 0, 0, {\"PartialCharge\": -0.7370571714285714}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.5501428285714286}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.3203571714285714}, 3], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.17894282857142857}, 1], [7, 0, 0, false, 0, 0, {\"PartialCharge\": -0.5494571714285714}, 3], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.3314428285714286}, 1], [6, 0, 0, false, 0, 0, {\"PartialCharge\": 0.6690428285714286}, 3], [8, 0, 0, false, 0, 0, {\"PartialCharge\": -0.5931571714285714}, 3], [6, 0, 0, false, 0, 0, {\"PartialCharge\": -0.15645717142857143}, 4], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.07564282857142858}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.07564282857142858}, 1], [6, 0, 0, false, 0, 0, {\"PartialCharge\": -0.09715717142857143}, 4], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.04530982857142857}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.04530982857142857}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.04530982857142857}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.02504282857142857}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.18294282857142857}, 1], [17, 0, 0, false, 0, 0, {\"PartialCharge\": -0.05995717142857143}, 4], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.15694282857142858}, 1]], \"bonds\": [[0, 1, 1, 0, {}], [1, 6, 12, 0, {}], [1, 2, 12, 0, {}], [2, 3, 12, 0, {}], [2, 34, 1, 0, {}], [3, 4, 12, 0, {}], [3, 33, 1, 0, {}], [4, 5, 12, 0, {}], [4, 9, 1, 0, {}], [5, 6, 12, 0, {}], [5, 8, 1, 0, {}], [6, 7, 1, 0, {}], [9, 10, 2, 0, {}], [9, 11, 1, 0, {}], [11, 12, 1, 0, {}], [11, 13, 1, 0, {}], [13, 18, 12, 0, {}], [13, 14, 12, 0, {}], [14, 15, 12, 0, {}], [14, 32, 1, 0, {}], [15, 16, 12, 0, {}], [15, 31, 1, 0, {}], [16, 17, 12, 0, {}], [17, 18, 12, 0, {}], [17, 20, 1, 0, {}], [18, 19, 1, 0, {}], [20, 21, 1, 0, {}], [20, 22, 1, 0, {}], [22, 23, 2, 0, {}], [22, 24, 1, 0, {}], [24, 25, 1, 0, {}], [24, 26, 1, 0, {}], [24, 27, 1, 0, {}], [27, 28, 1, 0, {}], [27, 29, 1, 0, {}], [27, 30, 1, 0, {}]], \"conformer\": [\"\\u0093NUMPY\\u0001\\u0000v\\u0000{'descr': '<f8', 'fortran_order': False, 'shape': (35, 3), } \\n\\u00ac\\u00ad\\u00d8_v\\u000f\\u0013\\u00c0\\u009a\\b\\u001b\\u009e^\\u00a9\\u0006\\u00c0\\u0019\\u0004V\\u000e-\\u00820\\u00c0\\u00b0\\u0003\\u00e7\\u008c(m\\u0015\\u00c0]\\u00dcF\\u0003x\\u008b\\r\\u00c0C\\u001c\\u00eb\\u00e26:0\\u00c0io\\u00f0\\u0085\\u00c9\\u0014\\u0013\\u00c0\\u00c5\\u008f1w-\\u00e1\\u0013\\u00c03333330\\u00c0\\u0001\\u00de\\u0002\\t\\u008a\\u001f\\u0016\\u00c0\\u00fee\\u00f7\\u00e4aa\\u0018\\u00c0a2U0*\\u00a9/\\u00c0\\u00f8\\u00c2d\\u00aa`\\u0094\\u001b\\u00c0\\u0004\\u00e7\\u008c(\\u00ed\\u00cd\\u0017\\u00c0\\u00a85\\u00cd;N\\u00f1.\\u00c0\\u00db\\u00f9~j\\u00bc\\u00f4\\u001d\\u00c0e\\u00aa`TR\\u00a7\\u0012\\u00c0\\u0091~\\u00fb:p\\u000e/\\u00c0\\u00cc\\u007fH\\u00bf}\\u00dd\\u001a\\u00c0>\\u00e8\\u00d9\\u00ac\\u00fa\\\\\\f\\u00c0\\u00aeG\\u00e1z\\u0014\\u00ce/\\u00c0\\u0001M\\u0084\\rO\\u00af\\u001c\\u00c0\\u00d5x\\u00e9&1\\u0088\\u0004\\u00c0M\\u00f3\\u008eSt\\u00e4/\\u00c0\\u009c3\\u00a2\\u00b47X\\\"\\u00c0\\u0088\\u00f4\\u00db\\u00d7\\u0081\\u00b3\\u0011\\u00c0U\\u00c1\\u00a8\\u00a4N`.\\u00c0q\\u001b\\r\\u00e0-\\u00d0\\u001e\\u00c0\\u00af%\\u00e4\\u0083\\u009e\\u008d\\u001c\\u00c0\\u0002+\\u0087\\u0016\\u00d9\\u000e.\\u00c0-!\\u001f\\u00f4l6 \\u00c0\\u009bU\\u009f\\u00ab\\u00ad\\u00d8\\u001c\\u00c0xz\\u00a5,C\\u00bc+\\u00c0T\\u00e3\\u00a5\\u009b\\u00c4\\u00a0\\u001f\\u00c0\\u0099\\u00bb\\u0096\\u0090\\u000f\\u001a \\u00c09\\u00b4\\u00c8v\\u00be\\u00ff/\\u00c0:\\u0092\\u00cb\\u007fH\\u00bf\\u001d\\u00c0:#J{\\u0083o\\u001f\\u00c0\\u001f\\u0085\\u00ebQ\\u00b8\\u00de0\\u00c0\\u00f8\\u00c2d\\u00aa`t!\\u00c0\\t\\u001b\\u009e^)k\\\"\\u00c0\\u00fee\\u00f7\\u00e4a\\u00010\\u00c0b\\u0010X9\\u00b4(#\\u00c0\\u0006\\u0081\\u0095C\\u008b,#\\u00c0h\\\"lxz\\u00e5-\\u00c0\\u0016\\u00fb\\u00cb\\u00ee\\u00c9\\u00c3$\\u00c0\\u00c1\\u00ca\\u00a1E\\u00b6s%\\u00c0\\u00cd;N\\u00d1\\u0091<.\\u00c0\\u0093\\u00a9\\u0082QI\\u00bd$\\u00c0xz\\u00a5,C\\u00fc&\\u00c0\\u00ec/\\u00bb'\\u000f;0\\u00c0\\u00b6\\u0084|\\u00d0\\u00b3\\u0019#\\u00c0\\u0002+\\u0087\\u0016\\u00d9N&\\u00c0\\u008c\\u00dbh\\u0000oA1\\u00c0\\u00fc\\u0018s\\u00d7\\u0012r!\\u00c0R'\\u00a0\\u0089\\u00b0\\u0001$\\u00c0A\\u00f1c\\u00cc]+1\\u00c04\\u00116<\\u00bd2 \\u00c0\\u0010\\u00e9\\u00b7\\u00af\\u0003g#\\u00c0 c\\u00eeZB\\u00fe1\\u00c0\\u00b2\\u009d\\u00ef\\u00a7\\u00c6+#\\u00c0\\u00b8\\u00af\\u0003\\u00e7\\u008c\\u00e8'\\u00c0V\\u000e-\\u00b2\\u009do2\\u00c00\\u00bb'\\u000f\\u000b\\u00d5$\\u00c0\\u00e8\\u00d9\\u00ac\\u00fa\\\\\\r)\\u00c0+\\u00f6\\u0097\\u00dd\\u0093\\u00872\\u00c0\\u00ac\\u001cZd;_!\\u00c0\\u00b8\\u00af\\u0003\\u00e7\\u008c((\\u00c0X\\u00ca2\\u00c4\\u00b1n3\\u00c0\\u00deq\\u008a\\u008e\\u00e4r\\u001e\\u00c0\\u00a0\\u0089\\u00b0\\u00e1\\u00e9\\u00f5&\\u00c0\\\"\\u00fd\\u00f6u\\u00e0|3\\u00c0yX\\u00a85\\u00cd\\u001b\\\"\\u00c0(\\u000f\\u000b\\u00b5\\u00a6\\u0019*\\u00c0\\u00e3\\u00a5\\u009b\\u00c4 \\u00904\\u00c01\\b\\u00ac\\u001cZ\\u00e4\\\"\\u00c0Y\\u00868\\u00d6\\u00c5\\u00ed(\\u00c0\\u00a2E\\u00b6\\u00f3\\u00fdd5\\u00c0\\u00d5\\u00e7j+\\u00f6\\u00b7#\\u00c0\\u008cJ\\u00ea\\u00044q+\\u00c0\\u00e0\\u00be\\u000e\\u009c3B4\\u00c0\\u00b3{\\u00f2\\u00b0Pk\\u001f\\u00c0\\u00bb'\\u000f\\u000b\\u00b5\\u00c6+\\u00c0\\u00b6\\u00f3\\u00fd\\u00d4x\\t5\\u00c0vq\\u001b\\r\\u00e0M \\u00c0\\u008c\\u00dbh\\u0000o!-\\u00c0\\u00bc\\u0096\\u0090\\u000fz\\u00d65\\u00c0_\\u0098L\\u0015\\u008c\\u00ca\\u001d\\u00c0\\u00d1\\u0091\\\\\\u00feC\\u00fa,\\u00c0a\\u00c3\\u00d3+e94\\u00c0K\\u00ea\\u00044\\u00116\\u001c\\u00c0\\u00a2\\u00b47\\u00f8\\u00c2\\u0084*\\u00c0[\\u00b1\\u00bf\\u00ec\\u009el5\\u00c0X9\\u00b4\\u00c8v\\u001e&\\u00c0p_\\u0007\\u00ce\\u0019\\u0011&\\u00c0\\u00ce\\u0088\\u00d2\\u00de\\u00e0\\u00ab,\\u00c0\\u00d5\\u00e7j+\\u00f6W#\\u00c0^\\u00baI\\f\\u0002\\u000b\\\"\\u00c08gDio\\u0010,\\u00c0\\u00c6m4\\u0080\\u00b7\\u0000\\u0013\\u00c0\\\\ A\\u00f1c\\u008c\\u001e\\u00c0\\u009e^)\\u00cb\\u0010\\u00a7/\\u00c0\\u00e7\\u00fb\\u00a9\\u00f1\\u00d2\\u00cd\\r\\u00c0\\u009d\\u0011\\u00a5\\u00bd\\u00c1W\\u0014\\u00c0\\u00f7\\u00e4a\\u00a1\\u00d6t0\\u00c0\", {}], \"molprops\": {\"atom.dprop.PartialCharge\": \"0.14794282857142857 -0.096057171428571425 -0.12905717142857143 0.052342828571428572 -0.14365717142857143 0.052342828571428572 -0.12905717142857143 0.15694282857142858 -0.059957171428571432\\n0.69164282857142856 -0.55015717142857146 -0.46015717142857143 0.33044282857142859 0.12754282857142857 -0.30335717142857144 0.44414282857142856 -0.73705717142857141 0.5501428285714286\\n-0.3203571714285714 0.17894282857142857 -0.54945717142857142 0.33144282857142859 0.6690428285714286 -0.59315717142857138 -0.15645717142857143 0.07564282857142858 0.07564282857142858\\n-0.097157171428571429 0.045309828571428568 0.045309828571428568 0.045309828571428568 0.025042828571428571 0.18294282857142857 -0.059957171428571432 0.15694282857142858\", \"ofe-name\": \"lig_ejm_42\"}}\n \n \n {\":version:\": 1, \"__module__\": \"gufe.components.smallmoleculecomponent\", \"__qualname__\": \"SmallMoleculeComponent\", \"atoms\": [[1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.14805128205128204}, 1], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.09594871794871794}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.12894871794871796}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.05245128205128206}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.14354871794871796}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.05245128205128206}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.12894871794871796}, 3], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.15705128205128205}, 1], [17, 0, 0, false, 0, 0, {\"PartialCharge\": -0.05984871794871795}, 4], [6, 0, 0, false, 0, 0, {\"PartialCharge\": 0.691751282051282}, 3], [8, 0, 0, false, 0, 0, {\"PartialCharge\": -0.550048717948718}, 3], [7, 0, 0, false, 0, 0, {\"PartialCharge\": -0.46004871794871793}, 3], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.3305512820512821}, 1], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.12665128205128204}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.30324871794871794}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.44425128205128206}, 3], [7, 0, 0, true, 0, 0, {\"PartialCharge\": -0.735948717948718}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.549251282051282}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.3192487179487179}, 3], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.17805128205128204}, 1], [7, 0, 0, false, 0, 0, {\"PartialCharge\": -0.547348717948718}, 3], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.3325512820512821}, 1], [6, 0, 0, false, 0, 0, {\"PartialCharge\": 0.703151282051282}, 3], [8, 0, 0, false, 0, 0, {\"PartialCharge\": -0.5950487179487179}, 3], [6, 0, 0, false, 1, 0, {\"PartialCharge\": -0.22864871794871794}, 4], [6, 0, 0, false, 2, 0, {\"PartialCharge\": -0.08964871794871794}, 4], [6, 0, 0, false, 0, 0, {\"PartialCharge\": -0.09934871794871794}, 4], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.08725128205128206}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.08725128205128206}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.08175128205128206}, 1], [6, 0, 0, false, 0, 0, {\"PartialCharge\": -0.08404871794871793}, 4], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.048751282051282055}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.048751282051282055}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.048751282051282055}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.09675128205128206}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.025151282051282055}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.18205128205128204}, 1], [17, 0, 0, false, 0, 0, {\"PartialCharge\": -0.05984871794871795}, 4], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.15705128205128205}, 1]], \"bonds\": [[0, 1, 1, 0, {}], [1, 6, 12, 0, {}], [1, 2, 12, 0, {}], [2, 3, 12, 0, {}], [2, 38, 1, 0, {}], [3, 4, 12, 0, {}], [3, 37, 1, 0, {}], [4, 5, 12, 0, {}], [4, 9, 1, 0, {}], [5, 6, 12, 0, {}], [5, 8, 1, 0, {}], [6, 7, 1, 0, {}], [9, 10, 2, 0, {}], [9, 11, 1, 0, {}], [11, 12, 1, 0, {}], [11, 13, 1, 0, {}], [13, 18, 12, 0, {}], [13, 14, 12, 0, {}], [14, 15, 12, 0, {}], [14, 36, 1, 0, {}], [15, 16, 12, 0, {}], [15, 35, 1, 0, {}], [16, 17, 12, 0, {}], [17, 18, 12, 0, {}], [17, 20, 1, 0, {}], [18, 19, 1, 0, {}], [20, 21, 1, 0, {}], [20, 22, 1, 0, {}], [22, 23, 2, 0, {}], [22, 24, 1, 0, {}], [24, 26, 1, 0, {}], [24, 25, 1, 0, {}], [24, 34, 1, 0, {}], [25, 26, 1, 0, {}], [25, 29, 1, 0, {}], [25, 30, 1, 0, {}], [26, 27, 1, 0, {}], [26, 28, 1, 0, {}], [30, 31, 1, 0, {}], [30, 32, 1, 0, {}], [30, 33, 1, 0, {}]], \"conformer\": [\"\\u0093NUMPY\\u0001\\u0000v\\u0000{'descr': '<f8', 'fortran_order': False, 'shape': (39, 3), } \\n\\u00d5\\u00e7j+\\u00f6\\u0017\\u0013\\u00c0X\\u00a85\\u00cd;N\\u0006\\u00c0\\u00a4\\u00df\\u00be\\u000e\\u009cs0\\u00c0\\u00b5\\u00a6y\\u00c7)z\\u0015\\u00c0\\u00b5\\u00a6y\\u00c7):\\r\\u00c06\\u00ab>W[10\\u00c0\\u00eb\\u00e26\\u001a\\u00c0\\u001b\\u0013\\u00c0+\\u0087\\u0016\\u00d9\\u00ce\\u00b7\\u0013\\u00c0?W[\\u00b1\\u00bf,0\\u00c0e\\u00aa`TR'\\u0016\\u00c0\\b\\u00ac\\u001cZd;\\u0018\\u00c0\\u00db\\u008a\\u00fde\\u00f7\\u00a4/\\u00c0R'\\u00a0\\u0089\\u00b0\\u00a1\\u001b\\u00c0^\\u00baI\\f\\u0002\\u00ab\\u0017\\u00c06\\u00cd;N\\u00d1\\u00f1.\\u00c0RI\\u009d\\u0080&\\u0002\\u001e\\u00c0\\u00c4\\u00b1.n\\u00a3\\u0081\\u0012\\u00c0i\\u0000o\\u0081\\u0004\\u0005/\\u00c0H\\u00bf}\\u001d8\\u00e7\\u001a\\u00c0u\\u0093\\u0018\\u0004V\\u000e\\f\\u00c0\\u0095e\\u0088c]\\u00bc/\\u00c0\\u00bdR\\u0096!\\u008e\\u00b5\\u001c\\u00c0\\u000b$(~\\u008c9\\u0004\\u00c0\\u0007_\\u0098L\\u0015\\u00cc/\\u00c0|\\u00f2\\u00b0PkZ\\\"\\u00c0\\u00e9\\u00b7\\u00af\\u0003\\u00e7\\u008c\\u0011\\u00c0\\u00c1\\u00a8\\u00a4N@S.\\u00c0\\u00e1z\\u0014\\u00aeG\\u00e1\\u001e\\u00c0\\u00b0\\u0003\\u00e7\\u008c(m\\u001c\\u00c0\\u00f5JY\\u00868\\u0016.\\u00c0\\u00baI\\f\\u0002+G \\u00c0\\u0019s\\u00d7\\u0012\\u00f2\\u00c1\\u001c\\u00c0\\u00b9\\u008d\\u0006\\u00f0\\u0016\\u00c8+\\u00c0\\t\\u00f9\\u00a0g\\u00b3\\u00aa\\u001f\\u00c0\\u0080\\u00b7@\\u0082\\u00e2\\u0007 \\u00c0N\\u00d1\\u0091\\\\\\u00fe\\u00030\\u00c0\\n\\u00d7\\u00a3p=\\u00ca\\u001d\\u00c0v\\u00e0\\u009c\\u0011\\u00a5=\\u001f\\u00c0\\u0017\\u00b7\\u00d1\\u0000\\u00de\\u00e20\\u00c0\\u00b1Pk\\u009aw|!\\u00c0\\u0010X9\\u00b4\\u00c8V\\\"\\u00c0I.\\u00ff!\\u00fd\\u00060\\u00c0\\u00f3\\u001f\\u00d2o_'#\\u00c0\\u0096\\u00b2\\fq\\u00ac+#\\u00c0\\u00cb\\u0010\\u00c7\\u00ba\\u00b8\\u00ed-\\u00c0\\u00a9\\u00a4N@\\u0013\\u00c1$\\u00c0m\\u00e7\\u00fb\\u00a9\\u00f1r%\\u00c0\\u00e2\\u00e9\\u0095\\u00b2\\fQ.\\u00c0sh\\u0091\\u00ed|\\u00bf$\\u00c0\\u0006\\u0081\\u0095C\\u008b\\u00ec&\\u00c0`\\u00e5\\u00d0\\\"\\u00dbI0\\u00c0 A\\u00f1c\\u00cc\\u001d#\\u00c0\\u0001M\\u0084\\rO/&\\u00c0<\\u00bdR\\u0096!N1\\u00c0\\u00a6\\nF%u\\u0082!\\u00c0\\u0094\\u0087\\u0085Z\\u00d3\\u00dc#\\u00c0\\u0085|\\u00d0\\u00b3Y51\\u00c0\\u00d0D\\u00d8\\u00f0\\u00f4J \\u00c0\\u001dZd;\\u00df/#\\u00c0\\rq\\u00ac\\u008b\\u00db\\b2\\u00c0\\u0012\\u0083\\u00c0\\u00ca\\u00a1%#\\u00c05^\\u00baI\\f\\u00c2'\\u00c0\\u00e8j+\\u00f6\\u0097}2\\u00c0\\u0014\\u00aeG\\u00e1z\\u00d4$\\u00c0\\u009f\\u00cd\\u00aa\\u00cf\\u00d5\\u00d6(\\u00c0\\u001a\\u00c0[ A\\u00a12\\u00c0\\u00c7):\\u0092\\u00cb?!\\u00c0i\\u0000o\\u0081\\u0004\\u0005(\\u00c0q\\u001b\\r\\u00e0-p3\\u00c0Y\\u00868\\u00d6\\u00c5-\\u001e\\u00c0f\\u00f7\\u00e4a\\u00a1\\u00d6&\\u00c0\\u00ae\\u00b6b\\u007f\\u00d9m3\\u00c0\\u00f3\\u001f\\u00d2o_\\u0007\\\"\\u00c0\\u00a7\\u00e8H.\\u00ff\\u00e1)\\u00c0\\u00d3\\u00de\\u00e0\\u000b\\u0093\\u00894\\u00c0x\\u009c\\u00a2#\\u00b9\\u00fc\\u001f\\u00c0\\u00b7b\\u007f\\u00d9=\\u00b9+\\u00c0.\\u0090\\u00a0\\u00f8165\\u00c0r\\u008a\\u008e\\u00e4\\u00f2\\u00ff \\u00c0\\u0080\\u00b7@\\u0082\\u00e2G)\\u00c0\\u001f\\u00f4lV}\\u00ee5\\u00c0X9\\u00b4\\u00c8v>\\u001f\\u00c0\\\\\\u008f\\u00c2\\u00f5(\\u009c'\\u00c0\\u00ca2\\u00c4\\u00b1.\\u000e6\\u00c0\\u0002\\u009a\\b\\u001b\\u009e^\\\"\\u00c0.\\u00ff!\\u00fd\\u00f6\\u0095)\\u00c0O\\u001e\\u0016jM\\u00c36\\u00c0\\u0096!\\u008euq\\u00db \\u00c0\\u0095e\\u0088c]\\u009c-\\u00c0\\u00f4\\u00fd\\u00d4x\\u00e9\\u00865\\u00c0\\u00d4+e\\u0019\\u00e2\\u0018\\u001a\\u00c0\\u0019s\\u00d7\\u0012\\u00f2\\u0001,\\u00c0\\u0083/L\\u00a6\\n\\u00e64\\u00c0\\u00bb'\\u000f\\u000b\\u00b5&\\u0018\\u00c0\\u00be0\\u0099*\\u0018\\u0015*\\u00c0\\u00c7K7\\u0089A\\u00c04\\u00c0\\u00d2\\u0000\\u00de\\u0002\\t\\n\\u0018\\u00c0\\u00e7\\u00fb\\u00a9\\u00f1\\u00d2\\r-\\u00c0\\u0012\\u00a5\\u00bd\\u00c1\\u0017\\u00b65\\u00c0\\u00b57\\u00f8\\u00c2d\\u00aa\\u0019\\u00c0Q\\u00da\\u001b|a2-\\u00c0 c\\u00eeZB\\u00fe3\\u00c0\\u00a8W\\u00ca2\\u00c4\\u0011$\\u00c0\\u0017\\u00b7\\u00d1\\u0000\\u00de\\u00a2*\\u00c0\\u00ea\\u0095\\u00b2\\fq|4\\u00c0\\u00a3\\u0001\\u00bc\\u0005\\u0012\\u0014&\\u00c0\\u0017\\u00d9\\u00ce\\u00f7S#&\\u00c0\\u008b\\u00fde\\u00f7\\u00e4\\u00c1,\\u00c0\\u009c\\u00a2#\\u00b9\\u00fcG#\\u00c0\\u000bF%u\\u0002\\u001a\\\"\\u00c0\\u00e7\\u001d\\u00a7\\u00e8H\\u000e,\\u00c0\\u00f6\\u0097\\u00dd\\u0093\\u0087\\u0005\\u0013\\u00c0\\u00e6\\u00ae%\\u00e4\\u0083^\\u001e\\u00c0\\u00be\\u009f\\u001a/\\u00dd\\u00a4/\\u00c0\\u00d7\\u00a3p=\\n\\u00d7\\r\\u00c0)\\\\\\u008f\\u00c2\\u00f5(\\u0014\\u00c0\\u00e9H.\\u00ff!m0\\u00c0\", {}], \"molprops\": {\"atom.dprop.PartialCharge\": \"0.14805128205128204 -0.09594871794871794 -0.12894871794871796 0.052451282051282057 -0.14354871794871796 0.052451282051282057 -0.12894871794871796 0.15705128205128205 -0.059848717948717947\\n0.691751282051282 -0.55004871794871801 -0.46004871794871793 0.33055128205128209 0.12665128205128204 -0.30324871794871794 0.44425128205128206 -0.73594871794871797 0.54925128205128204\\n-0.3192487179487179 0.17805128205128204 -0.54734871794871798 0.33255128205128209 0.70315128205128197 -0.59504871794871794 -0.22864871794871794 -0.08964871794871794 -0.099348717948717941\\n0.087251282051282061 0.087251282051282061 0.081751282051282056 -0.084048717948717933 0.048751282051282055 0.048751282051282055 0.048751282051282055 0.096751282051282056\\n0.025151282051282055 0.18205128205128204 -0.059848717948717947 0.15705128205128205\", \"ofe-name\": \"lig_jmc_28\"}}\n \n \n {\":version:\": 1, \"__module__\": \"gufe.components.smallmoleculecomponent\", \"__qualname__\": \"SmallMoleculeComponent\", \"atoms\": [[1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.148030303030303}, 1], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.09596969696969697}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.12846969696969698}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.05243030303030303}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.14356969696969699}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.05243030303030303}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.12846969696969698}, 3], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.15703030303030302}, 1], [17, 0, 0, false, 0, 0, {\"PartialCharge\": -0.060369696969696976}, 4], [6, 0, 0, false, 0, 0, {\"PartialCharge\": 0.691730303030303}, 3], [8, 0, 0, false, 0, 0, {\"PartialCharge\": -0.549069696969697}, 3], [7, 0, 0, false, 0, 0, {\"PartialCharge\": -0.46106969696969696}, 3], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.33053030303030306}, 1], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.127630303030303}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.30126969696969697}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.44423030303030303}, 3], [7, 0, 0, true, 0, 0, {\"PartialCharge\": -0.7319696969696969}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.5472303030303031}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.3212696969696969}, 3], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.178030303030303}, 1], [7, 0, 0, false, 0, 0, {\"PartialCharge\": -0.541369696969697}, 3], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.346530303030303}, 1], [6, 0, 0, false, 0, 0, {\"PartialCharge\": 0.626130303030303}, 3], [8, 0, 0, false, 0, 0, {\"PartialCharge\": -0.5940696969696969}, 3], [6, 0, 0, false, 0, 0, {\"PartialCharge\": 0.055430303030303024}, 4], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.08473030303030303}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.08473030303030303}, 1], [8, 0, 0, false, 0, 0, {\"PartialCharge\": -0.5877696969696969}, 4], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.411030303030303}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.027130303030303025}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.18303030303030302}, 1], [17, 0, 0, false, 0, 0, {\"PartialCharge\": -0.060369696969696976}, 4], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.15703030303030302}, 1]], \"bonds\": [[0, 1, 1, 0, {}], [1, 6, 12, 0, {}], [1, 2, 12, 0, {}], [2, 3, 12, 0, {}], [2, 32, 1, 0, {}], [3, 4, 12, 0, {}], [3, 31, 1, 0, {}], [4, 5, 12, 0, {}], [4, 9, 1, 0, {}], [5, 6, 12, 0, {}], [5, 8, 1, 0, {}], [6, 7, 1, 0, {}], [9, 10, 2, 0, {}], [9, 11, 1, 0, {}], [11, 12, 1, 0, {}], [11, 13, 1, 0, {}], [13, 18, 12, 0, {}], [13, 14, 12, 0, {}], [14, 15, 12, 0, {}], [14, 30, 1, 0, {}], [15, 16, 12, 0, {}], [15, 29, 1, 0, {}], [16, 17, 12, 0, {}], [17, 18, 12, 0, {}], [17, 20, 1, 0, {}], [18, 19, 1, 0, {}], [20, 21, 1, 0, {}], [20, 22, 1, 0, {}], [22, 23, 2, 0, {}], [22, 24, 1, 0, {}], [24, 25, 1, 0, {}], [24, 26, 1, 0, {}], [24, 27, 1, 0, {}], [27, 28, 1, 0, {}]], \"conformer\": [\"\\u0093NUMPY\\u0001\\u0000v\\u0000{'descr': '<f8', 'fortran_order': False, 'shape': (33, 3), } \\n\\u0000\\u0091~\\u00fb:0\\u0013\\u00c0lxz\\u00a5,C\\u0006\\u00c0\\u009d\\u0080&\\u00c2\\u0086w0\\u00c02\\u00e6\\u00ae%\\u00e4\\u0083\\u0015\\u00c0\\b\\u00ac\\u001cZd;\\r\\u00c0\\u0015\\u008cJ\\u00ea\\u000440\\u00c0\\u00c2\\u0017&S\\u0005#\\u0013\\u00c0\\u00a4\\u00df\\u00be\\u000e\\u009c\\u00b3\\u0013\\u00c0\\u008d\\u0097n\\u0012\\u008300\\u00c0L7\\u0089A`%\\u0016\\u00c0]m\\u00c5\\u00fe\\u00b2;\\u0018\\u00c0KY\\u00868\\u00d6\\u00a5/\\u00c0@\\u00a4\\u00df\\u00be\\u000e\\u009c\\u001b\\u00c0e\\u0019\\u00e2X\\u0017\\u00b7\\u0017\\u00c0#J{\\u0083/\\u00ec.\\u00c0\\u00e4\\u0014\\u001d\\u00c9\\u00e5\\u00ff\\u001d\\u00c0\\u00c1\\u00a8\\u00a4N@\\u0093\\u0012\\u00c0\\u00aa`TR'\\u0000/\\u00c0\\u001a\\u00c0[ A\\u00f1\\u001a\\u00c0\\u00ed\\r\\u00be0\\u0099*\\f\\u00c0\\u0007\\u00ce\\u0019Q\\u00da\\u00bb/\\u00c0\\u0012\\u0083\\u00c0\\u00ca\\u00a1\\u00c5\\u001c\\u00c0\\u00d0\\u00b3Y\\u00f5\\u00b9Z\\u0004\\u00c0\\u00d3\\u00bc\\u00e3\\u0014\\u001d\\u00c9/\\u00c0&S\\u0005\\u00a3\\u0092Z\\\"\\u00c0W[\\u00b1\\u00bf\\u00ec\\u009e\\u0011\\u00c0\\\"\\u008euq\\u001bM.\\u00c0\\u00f7\\u0006_\\u0098L\\u00d5\\u001e\\u00c0\\u00d0\\u00d5V\\u00ec/{\\u001c\\u00c0vO\\u001e\\u0016j\\r.\\u00c0Dio\\u00f0\\u0085I \\u00c0\\u00e7\\u008c(\\u00ed\\r\\u00be\\u001c\\u00c0p\\u00ce\\u0088\\u00d2\\u00de\\u00c0+\\u00c0\\u00b7\\u00d1\\u0000\\u00de\\u0002\\u0089\\u001f\\u00c0\\u00f1\\u00f4JY\\u0086\\u0018 \\u00c0\\u000e\\u00be0\\u0099*\\u00f8/\\u00c0\\u00d2o_\\u0007\\u00ce\\u0099\\u001d\\u00c0\\u0083\\u00c0\\u00ca\\u00a1Ev\\u001f\\u00c0'\\u00a0\\u0089\\u00b0\\u00e1\\u00d90\\u00c0\\u00ecQ\\u00b8\\u001e\\u0085k!\\u00c0\\u009c\\u00a2#\\u00b9\\u00fcg\\\"\\u00c0\\u0007\\u00f0\\u0016HP\\u00fc/\\u00c0\\u0014?\\u00c6\\u00dc\\u00b5$#\\u00c0\\u0007_\\u0098L\\u0015,#\\u00c0\\u00fc\\u00a9\\u00f1\\u00d2M\\u00e2-\\u00c0S\\u0005\\u00a3\\u0092:\\u00c1$\\u00c07\\u0089A`\\u00e5p%\\u00c0=,\\u00d4\\u009a\\u00e6=.\\u00c0\\u00b8\\u001e\\u0085\\u00ebQ\\u00b8$\\u00c0\\u00c1\\u00ca\\u00a1E\\u00b6\\u00f3&\\u00c0\\u0093\\u0018\\u0004V\\u000e=0\\u00c0\\u0002+\\u0087\\u0016\\u00d9\\u000e#\\u00c00L\\u00a6\\nFE&\\u00c0TR'\\u00a0\\u0089@1\\u00c0\\u00f7u\\u00e0\\u009c\\u0011e!\\u00c0]m\\u00c5\\u00fe\\u00b2\\u00fb#\\u00c0\\u00f0\\u0016HP\\u00fc(1\\u00c0\\u001d\\u00c9\\u00e5?\\u00a4\\u001f \\u00c0\\u0088\\u0085Z\\u00d3\\u00bcc#\\u00c0z\\u00a5,C\\u001c\\u00fb1\\u00c0\\u0081\\u0095C\\u008bl'#\\u00c0,e\\u0019\\u00e2X\\u00d7'\\u00c0\\u00caT\\u00c1\\u00a8\\u00a4n2\\u00c0\\u00ed\\u009e<,\\u00d4\\u00da$\\u00c0]\\u00feC\\u00fa\\u00ed\\u00eb(\\u00c0c\\u00eeZB>\\u00882\\u00c0\\u00e9&1\\b\\u00ac\\\\!\\u00c0:\\u0092\\u00cb\\u007fH\\u001f(\\u00c0\\u00cb\\u0010\\u00c7\\u00ba\\u00b8m3\\u00c0\\u00ac\\u00ad\\u00d8_vO\\u001e\\u00c0\\u00d9\\u00ce\\u00f7S\\u00e3\\u0005'\\u00c0\\u00eeZB>\\u00e8y3\\u00c0\\u0091\\u000fz6\\u00ab>\\\"\\u00c0\\u00bct\\u0093\\u0018\\u0004\\u00f6)\\u00c0\\u0089\\u00d2\\u00de\\u00e0\\u000b\\u00934\\u00c0\\u00db\\u00f9~j\\u00bc\\u00b4\\\"\\u00c0q\\u00ac\\u008b\\u00dbh\\u00c0(\\u00c0\\u0016jM\\u00f3\\u008es5\\u00c0\\u008d(\\u00ed\\r\\u00be\\u0010$\\u00c0\\u00ee\\u00eb\\u00c09#\\n+\\u00c0t$\\u0097\\u00ff\\u0090N4\\u00c0\\u0099\\u00bb\\u0096\\u0090\\u000f: \\u00c0\\u00d7\\u00a3p=\\n\\u00d7+\\u00c0\\u00d9\\u00ce\\u00f7S\\u00e3\\u00e54\\u00c0^\\u00baI\\f\\u0002\\u00eb \\u00c0\\u00a3#\\u00b9\\u00fc\\u0087\\u00f4,\\u00c01\\b\\u00ac\\u001cZ\\u00945\\u00c0\\u0095e\\u0088c]\\u001c&\\u00c0\\u00fb:p\\u00ce\\u0088\\u0012&\\u00c0s\\u00d7\\u0012\\u00f2A\\u00af,\\u00c0\\u0000o\\u0081\\u0004\\u00c5O#\\u00c0TR'\\u00a0\\u0089\\u0010\\\"\\u00c0'\\u00c2\\u0086\\u00a7W\\n,\\u00c0S\\u0096!\\u008eu\\u00f1\\u0012\\u00c0\\u0081&\\u00c2\\u0086\\u00a7W\\u001e\\u00c0M\\u0015\\u008cJ\\u00ea\\u00a4/\\u00c0\\u00b0\\u0003\\u00e7\\u008c(\\u00ed\\r\\u00c0\\u00ac\\u001cZd;\\u001f\\u0014\\u00c0O\\u00af\\u0094e\\u0088s0\\u00c0\", {}], \"molprops\": {\"atom.dprop.PartialCharge\": \"0.14803030303030301 -0.095969696969696969 -0.12846969696969698 0.052430303030303028 -0.14356969696969699 0.052430303030303028 -0.12846969696969698 0.15703030303030302 -0.060369696969696976\\n0.69173030303030303 -0.54906969696969699 -0.46106969696969696 0.33053030303030306 0.12763030303030301 -0.30126969696969697 0.44423030303030303 -0.73196969696969694 0.54723030303030307\\n-0.32126969696969693 0.17803030303030301 -0.54136969696969695 0.34653030303030302 0.62613030303030304 -0.59406969696969691 0.055430303030303024 0.084730303030303031 0.084730303030303031\\n-0.58776969696969694 0.41103030303030302 0.027130303030303025 0.18303030303030302 -0.060369696969696976 0.15703030303030302\", \"ofe-name\": \"lig_ejm_50\"}}\n \n \n {\":version:\": 1, \"__module__\": \"gufe.components.smallmoleculecomponent\", \"__qualname__\": \"SmallMoleculeComponent\", \"atoms\": [[1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.148}, 1], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.096}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.129}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.0524}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.1436}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.0524}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.129}, 3], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.157}, 1], [17, 0, 0, false, 0, 0, {\"PartialCharge\": -0.0599}, 4], [6, 0, 0, false, 0, 0, {\"PartialCharge\": 0.6917}, 3], [8, 0, 0, false, 0, 0, {\"PartialCharge\": -0.5501}, 3], [7, 0, 0, false, 0, 0, {\"PartialCharge\": -0.4601}, 3], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.3305}, 1], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.1266}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.3033}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.4442}, 3], [7, 0, 0, true, 0, 0, {\"PartialCharge\": -0.736}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.5502}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.3203}, 3], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.178}, 1], [7, 0, 0, false, 0, 0, {\"PartialCharge\": -0.5474}, 3], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.3335}, 1], [6, 0, 0, false, 0, 0, {\"PartialCharge\": 0.7001}, 3], [8, 0, 0, false, 0, 0, {\"PartialCharge\": -0.5931}, 3], [6, 0, 0, false, 0, 0, {\"PartialCharge\": -0.2297}, 4], [6, 0, 0, false, 0, 0, {\"PartialCharge\": -0.1039}, 4], [6, 0, 0, false, 0, 0, {\"PartialCharge\": -0.1039}, 4], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.0842}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.0842}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.0842}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.0842}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.0987}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.0251}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.183}, 1], [17, 0, 0, false, 0, 0, {\"PartialCharge\": -0.0599}, 4], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.157}, 1]], \"bonds\": [[0, 1, 1, 0, {}], [1, 6, 12, 0, {}], [1, 2, 12, 0, {}], [2, 3, 12, 0, {}], [2, 35, 1, 0, {}], [3, 4, 12, 0, {}], [3, 34, 1, 0, {}], [4, 5, 12, 0, {}], [4, 9, 1, 0, {}], [5, 6, 12, 0, {}], [5, 8, 1, 0, {}], [6, 7, 1, 0, {}], [9, 10, 2, 0, {}], [9, 11, 1, 0, {}], [11, 12, 1, 0, {}], [11, 13, 1, 0, {}], [13, 18, 12, 0, {}], [13, 14, 12, 0, {}], [14, 15, 12, 0, {}], [14, 33, 1, 0, {}], [15, 16, 12, 0, {}], [15, 32, 1, 0, {}], [16, 17, 12, 0, {}], [17, 18, 12, 0, {}], [17, 20, 1, 0, {}], [18, 19, 1, 0, {}], [20, 21, 1, 0, {}], [20, 22, 1, 0, {}], [22, 23, 2, 0, {}], [22, 24, 1, 0, {}], [24, 26, 1, 0, {}], [24, 25, 1, 0, {}], [24, 31, 1, 0, {}], [25, 26, 1, 0, {}], [25, 29, 1, 0, {}], [25, 30, 1, 0, {}], [26, 27, 1, 0, {}], [26, 28, 1, 0, {}]], \"conformer\": [\"\\u0093NUMPY\\u0001\\u0000v\\u0000{'descr': '<f8', 'fortran_order': False, 'shape': (36, 3), } \\n\\u00adi\\u00deq\\u008a\\u000e\\u0013\\u00c0\\u00d3Mb\\u0010X\\u00b9\\u0006\\u00c0\\u00dfO\\u008d\\u0097n\\u00820\\u00c0\\u00cff\\u00d5\\u00e7jk\\u0015\\u00c0\\u008c\\u00b9k\\t\\u00f9\\u00a0\\r\\u00c0\\u00ee|?5^:0\\u00c0\\u001dZd;\\u00df\\u000f\\u0013\\u00c0\\u00b57\\u00f8\\u00c2d\\u00ea\\u0013\\u00c0\\u0018&S\\u0005\\u00a320\\u00c0\\u009a\\u0099\\u0099\\u0099\\u0099\\u0019\\u0016\\u00c0\\u00ea\\u0095\\u00b2\\fql\\u0018\\u00c0\\u00d6V\\u00ec/\\u00bb\\u00a7/\\u00c0q\\u001b\\r\\u00e0-\\u0090\\u001b\\u00c0'1\\b\\u00ac\\u001c\\u00da\\u0017\\u00c0\\u00c5\\u00fe\\u00b2{\\u00f2\\u00f0.\\u00c0m\\u00c5\\u00fe\\u00b2{\\u00f2\\u001d\\u00c0\\u00db\\u00f9~j\\u00bc\\u00b4\\u0012\\u00c0;\\u00dfO\\u008d\\u0097\\u000e/\\u00c0\\u00e9&1\\b\\u00ac\\u00dc\\u001a\\u00c0.\\u00ff!\\u00fd\\u00f6u\\f\\u00c0\\u008f\\u00c2\\u00f5(\\\\\\u00cf/\\u00c0\\u00e5a\\u00a1\\u00d64\\u00af\\u001c\\u00c0\\u00a4p=\\n\\u00d7\\u00a3\\u0004\\u00c0\\u00bc\\u0005\\u0012\\u0014?\\u00e6/\\u00c0\\u00bdR\\u0096!\\u008eU\\\"\\u00c0\\u00e9H.\\u00ff!\\u00bd\\u0011\\u00c09\\u00d6\\u00c5m4`.\\u00c0\\u00e6?\\u00a4\\u00df\\u00be\\u00ce\\u001e\\u00c0\\u00f2\\u00d2Mb\\u0010\\u0098\\u001c\\u00c0\\u00e4\\u0083\\u009e\\u00cd\\u00aa\\u000f.\\u00c0\\u00e8j+\\u00f6\\u0097= \\u00c0\\u00ac\\u001cZd;\\u00df\\u001c\\u00c0\\u001e\\u00a7\\u00e8H.\\u00bf+\\u00c0\\u00cf\\u00f7S\\u00e3\\u00a5\\u009b\\u001f\\u00c0\\u008euq\\u001b\\r \\u00c0sh\\u0091\\u00ed|\\u00ff/\\u00c0Gr\\u00f9\\u000f\\u00e9\\u00b7\\u001d\\u00c0Z\\u00f5\\u00b9\\u00da\\u008a}\\u001f\\u00c0\\u00caT\\u00c1\\u00a8\\u00a4\\u00de0\\u00c0m\\u00e7\\u00fb\\u00a9\\u00f1r!\\u00c0\\u008e\\u0006\\u00f0\\u0016Hp\\\"\\u00c0\\u0019\\u00e2X\\u0017\\u00b7\\u00010\\u00c0\\u00b6\\u00f3\\u00fd\\u00d4x)#\\u00c0L\\u00a6\\nF%5#\\u00c0\\u00d4\\u009a\\u00e6\\u001d\\u00a7\\u00e8-\\u00c0\\u0012\\u00a5\\u00bd\\u00c1\\u0017\\u00c6$\\u00c0\\u0097\\u00ff\\u0090~\\u00fbz%\\u00c0\\u00f3\\u001f\\u00d2o_G.\\u00c0[\\u00b1\\u00bf\\u00ec\\u009e\\u00bc$\\u00c0V}\\u00ae\\u00b6b\\u00ff&\\u00c0o\\u0081\\u0004\\u00c5\\u008fA0\\u00c00\\u00bb'\\u000f\\u000b\\u0015#\\u00c0\\u0003\\t\\u008a\\u001fcN&\\u00c0\\u00a1g\\u00b3\\u00easE1\\u00c0Y\\u00868\\u00d6\\u00c5m!\\u00c0\\u00fc\\u00a9\\u00f1\\u00d2M\\u0002$\\u00c0\\u00ea\\u0095\\u00b2\\fq,1\\u00c0vO\\u001e\\u0016j- \\u00c0\\u00fa\\u00ed\\u00eb\\u00c09c#\\u00c0=,\\u00d4\\u009a\\u00e6\\u00fd1\\u00c0\\u0003x\\u000b$(\\u001e#\\u00c0R'\\u00a0\\u0089\\u00b0\\u00e1'\\u00c0L\\u00a6\\nF%u2\\u00c0{\\u0014\\u00aeG\\u00e1\\u00ba$\\u00c0\\u00d8\\u0081sF\\u0094\\u0016)\\u00c0\\u0003\\t\\u008a\\u001fc\\u008e2\\u00c0\\u0012\\u0083\\u00c0\\u00ca\\u00a1E!\\u00c0Gr\\u00f9\\u000f\\u00e9\\u0017(\\u00c0TR'\\u00a0\\u0089p3\\u00c0\\u0011\\u00c7\\u00ba\\u00b8\\u008dF\\u001e\\u00c0[\\u00b1\\u00bf\\u00ec\\u009e\\u00dc&\\u00c0_)\\u00cb\\u0010\\u00c7z3\\u00c0~\\u001d8gD\\t\\\"\\u00c0\\u00d5x\\u00e9&1\\b*\\u00c0Qk\\u009aw\\u009c\\u00824\\u00c0\\u00d9_vO\\u001e6!\\u00c0;\\u0001M\\u0084\\ro)\\u00c0\\u0001\\u00de\\u0002\\t\\u008a\\u00ef5\\u00c09\\u00b4\\u00c8v\\u00be\\u009f\\u001f\\u00c0\\u00ad\\u00fa\\\\m\\u00c5\\u009e+\\u00c0B\\u00cff\\u00d5\\u00e7*5\\u00c0\\u00c7K7\\u0089A@ \\u00c0\\u0003\\t\\u008a\\u001fc\\u00ae-\\u00c0\\u00ad\\u00fa\\\\m\\u00c5n5\\u00c0S\\u0005\\u00a3\\u0092:\\u0081\\u001b\\u00c0[\\u00d3\\u00bc\\u00e3\\u0014=+\\u00c0\\u00caT\\u00c1\\u00a8\\u00a4\\u00de4\\u00c0\\u0019\\u0004V\\u000e-\\u0012 \\u00c0\\u0000\\u0000\\u0000\\u0000\\u0000\\u00a0'\\u00c02\\u00e6\\u00ae%\\u00e4#6\\u00c0\\u0018\\u0095\\u00d4\\th\\u00a2\\\"\\u00c0?\\u00c6\\u00dc\\u00b5\\u0084\\u00fc)\\u00c0\\u0084\\u009e\\u00cd\\u00aa\\u00cf\\u00b56\\u00c0m\\u00c5\\u00fe\\u00b2{\\u00f2#\\u00c0B\\u00cff\\u00d5\\u00e7\\n+\\u00c0\\u00c1\\u00ca\\u00a1E\\u00b6c4\\u00c0J{\\u0083/L&&\\u00c0\\u00d8\\u0081sF\\u0094\\u0016&\\u00c0_\\u0007\\u00ce\\u0019Q\\u00ba,\\u00c0\\u00f5JY\\u00868V#\\u00c0K\\u00ea\\u00044\\u0011\\u0016\\\"\\u00c0\\u00c2\\u0086\\u00a7W\\u00ca\\u0012,\\u00c0\\u00c1\\u00ca\\u00a1E\\u00b6\\u00f3\\u0012\\u00c0\\u008cJ\\u00ea\\u00044\\u0091\\u001e\\u00c0\\u00a1\\u00d64\\u00ef8\\u00a5/\\u00c0\\u00a1\\u00d64\\u00ef8\\u00c5\\r\\u00c0 A\\u00f1c\\u00cc]\\u0014\\u00c0\\u00dc\\u00d7\\u0081sFt0\\u00c0\", {}], \"molprops\": {\"atom.dprop.PartialCharge\": \"0.14799999999999999 -0.096000000000000002 -0.129 0.052400000000000002 -0.14360000000000001 0.052400000000000002 -0.129 0.157 -0.059900000000000002 0.69169999999999998 -0.55010000000000003\\n-0.46010000000000001 0.33050000000000002 0.12659999999999999 -0.30330000000000001 0.44419999999999998 -0.73599999999999999 0.55020000000000002 -0.32029999999999997 0.17799999999999999\\n-0.5474 0.33350000000000002 0.70009999999999994 -0.59309999999999996 -0.22969999999999999 -0.10390000000000001 -0.10390000000000001 0.084199999999999997 0.084199999999999997\\n0.084199999999999997 0.084199999999999997 0.098699999999999996 0.025100000000000001 0.183 -0.059900000000000002 0.157\", \"ofe-name\": \"lig_ejm_46\"}}\n \n \n {\":version:\": 1, \"__module__\": \"gufe.components.smallmoleculecomponent\", \"__qualname__\": \"SmallMoleculeComponent\", \"atoms\": [[1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.14794871794871794}, 1], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.09605128205128205}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.12905128205128205}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.05234871794871795}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.14365128205128205}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.05234871794871795}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.12905128205128205}, 3], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.15694871794871795}, 1], [17, 0, 0, false, 0, 0, {\"PartialCharge\": -0.05995128205128206}, 4], [6, 0, 0, false, 0, 0, {\"PartialCharge\": 0.691648717948718}, 3], [8, 0, 0, false, 0, 0, {\"PartialCharge\": -0.550151282051282}, 3], [7, 0, 0, false, 0, 0, {\"PartialCharge\": -0.4601512820512821}, 3], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.33044871794871794}, 1], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.12754871794871794}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.3033512820512821}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.4441487179487179}, 3], [7, 0, 0, true, 0, 0, {\"PartialCharge\": -0.737051282051282}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.550148717948718}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.32035128205128205}, 3], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.17794871794871794}, 1], [7, 0, 0, false, 0, 0, {\"PartialCharge\": -0.551451282051282}, 3], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.33144871794871794}, 1], [6, 0, 0, false, 0, 0, {\"PartialCharge\": 0.682048717948718}, 3], [8, 0, 0, false, 0, 0, {\"PartialCharge\": -0.591151282051282}, 3], [6, 0, 0, false, 0, 0, {\"PartialCharge\": -0.16775128205128204}, 4], [6, 0, 0, false, 0, 0, {\"PartialCharge\": -0.08245128205128205}, 4], [6, 0, 0, false, 0, 0, {\"PartialCharge\": -0.09445128205128205}, 4], [6, 0, 0, false, 0, 0, {\"PartialCharge\": -0.08245128205128205}, 4], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.06289871794871796}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.06289871794871796}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.055648717948717945}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.055648717948717945}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.06289871794871796}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.06289871794871796}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.08564871794871795}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.025048717948717946}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.18294871794871795}, 1], [17, 0, 0, false, 0, 0, {\"PartialCharge\": -0.05995128205128206}, 4], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.15694871794871795}, 1]], \"bonds\": [[0, 1, 1, 0, {}], [1, 6, 12, 0, {}], [1, 2, 12, 0, {}], [2, 3, 12, 0, {}], [2, 38, 1, 0, {}], [3, 4, 12, 0, {}], [3, 37, 1, 0, {}], [4, 5, 12, 0, {}], [4, 9, 1, 0, {}], [5, 6, 12, 0, {}], [5, 8, 1, 0, {}], [6, 7, 1, 0, {}], [9, 10, 2, 0, {}], [9, 11, 1, 0, {}], [11, 12, 1, 0, {}], [11, 13, 1, 0, {}], [13, 18, 12, 0, {}], [13, 14, 12, 0, {}], [14, 15, 12, 0, {}], [14, 36, 1, 0, {}], [15, 16, 12, 0, {}], [15, 35, 1, 0, {}], [16, 17, 12, 0, {}], [17, 18, 12, 0, {}], [17, 20, 1, 0, {}], [18, 19, 1, 0, {}], [20, 21, 1, 0, {}], [20, 22, 1, 0, {}], [22, 23, 2, 0, {}], [22, 24, 1, 0, {}], [24, 27, 1, 0, {}], [24, 25, 1, 0, {}], [24, 34, 1, 0, {}], [25, 26, 1, 0, {}], [25, 32, 1, 0, {}], [25, 33, 1, 0, {}], [26, 27, 1, 0, {}], [26, 30, 1, 0, {}], [26, 31, 1, 0, {}], [27, 28, 1, 0, {}], [27, 29, 1, 0, {}]], \"conformer\": [\"\\u0093NUMPY\\u0001\\u0000v\\u0000{'descr': '<f8', 'fortran_order': False, 'shape': (39, 3), } \\n/\\u00dd$\\u0006\\u0081\\u0015\\u0013\\u00c0 A\\u00f1c\\u00cc]\\u0006\\u00c0\\u00e5\\u00f2\\u001f\\u00d2o\\u007f0\\u00c0\\u00deq\\u008a\\u008e\\u00e4r\\u0015\\u00c0\\u0080\\u00b7@\\u0082\\u00e2G\\r\\u00c0aTR'\\u00a090\\u00c0\\u00f91\\u00e6\\u00ae%\\u00e4\\u001a\\u00c0\\u0001\\u00de\\u0002\\t\\u008a\\u001f\\f\\u00c0\\u00e5a\\u00a1\\u00d64\\u00cf/\\u00c0\\u00e5\\u00d0\\\"\\u00db\\u00f9\\u00fe\\u001d\\u00c0I\\u009d\\u0080&\\u00c2\\u0086\\u0012\\u00c0Nb\\u0010X9\\u0014/\\u00c0k\\u009aw\\u009c\\u00a2\\u00a3\\u001b\\u00c0\\u00c9v\\u00be\\u009f\\u001a\\u00af\\u0017\\u00c0+\\u0087\\u0016\\u00d9\\u00ce\\u00f7.\\u00c0`vO\\u001e\\u0016*\\u0016\\u00c0V}\\u00ae\\u00b6b?\\u0018\\u00c0\\\"lxz\\u00a5\\u00ac/\\u00c0$\\u00b9\\u00fc\\u0087\\u00f4\\u001b\\u0013\\u00c0\\u00c9\\u00e5?\\u00a4\\u00df\\u00be\\u0013\\u00c0\\u00de\\u0002\\t\\u008a\\u001f30\\u00c0f\\u00f7\\u00e4a\\u00a1\\u00d6\\r\\u00c0:#J{\\u0083/\\u0014\\u00c0\\u00a8W\\u00ca2\\u00c4q0\\u00c0:\\u0092\\u00cb\\u007fH\\u00ff\\u0012\\u00c09\\u00b4\\u00c8v\\u00be_\\u001e\\u00c0\\u00db\\u008a\\u00fde\\u00f7\\u00a4/\\u00c03\\u00c4\\u00b1.n\\u00e3\\u001e\\u00c0\\u00e5a\\u00a1\\u00d64o\\u001c\\u00c0\\u00868\\u00d6\\u00c5m\\u0014.\\u00c0=\\n\\u00d7\\u00a3p= \\u00c0(~\\u008c\\u00b9k\\u00c9\\u001c\\u00c0\\u00e2X\\u0017\\u00b7\\u00d1\\u00c0+\\u00c0$(~\\u008c\\u00b9\\u00ab\\u001f\\u00c0\\u00b1\\u00bf\\u00ec\\u009e<\\f \\u00c0R\\u00b8\\u001e\\u0085\\u00eb\\u00010\\u00c0\\u000f\\u000b\\u00b5\\u00a6y\\u00c7\\u001d\\u00c0/\\u00dd$\\u0006\\u0081U\\u001f\\u00c0\\u001b\\u009e^)\\u00cb\\u00e00\\u00c0\\u00cb\\u00a1E\\u00b6\\u00f3}!\\u00c0\\u0097\\u00ff\\u0090~\\u00fbZ\\\"\\u00c0\\u00bct\\u0093\\u0018\\u0004\\u00060\\u00c0\\u009d\\u0080&\\u00c2\\u0086'#\\u00c0\\u0006\\u0081\\u0095C\\u008b,#\\u00c0\\u00b1\\u00bf\\u00ec\\u009e<\\u00ec-\\u00c0\\u0019s\\u00d7\\u0012\\u00f2\\u00c1$\\u00c0\\u00fa~j\\u00bcts%\\u00c0\\u0004\\u00e7\\u008c(\\u00edM.\\u00c0\\u0000\\u0000\\u0000\\u0000\\u0000\\u00c0$\\u00c0\\u001f\\u00f4lV}\\u00ee&\\u00c0b\\u0010X9\\u00b4H0\\u00c0\\u001b/\\u00dd$\\u0006!#\\u00c0\\u00a2E\\u00b6\\u00f3\\u00fd4&\\u00c0\\u0091\\u000fz6\\u00abN1\\u00c0\\u00c2\\u0017&S\\u0005\\u0083!\\u00c0\\u00e0\\u00be\\u000e\\u009c3\\u00e2#\\u00c0\\u00db\\u008a\\u00fde\\u00f741\\u00c0\\u009c\\u00a2#\\u00b9\\u00fcG \\u00c0E\\u00d8\\u00f0\\u00f4J9#\\u00c0\\u0081\\u0095C\\u008bl\\u00072\\u00c0+\\u0018\\u0095\\u00d4\\t(#\\u00c0\\u00d3\\u00de\\u00e0\\u000b\\u0093\\u00c9'\\u00c0;\\u0001M\\u0084\\r\\u007f2\\u00c0\\u00e6?\\u00a4\\u00df\\u00be\\u00ce$\\u00c0t\\u00b5\\u0015\\u00fb\\u00cb\\u00ee(\\u00c0\\u0097\\u00ff\\u0090~\\u00fb\\u009a2\\u00c00L\\u00a6\\nFE!\\u00c0'\\u00a0\\u0089\\u00b0\\u00e1\\t(\\u00c0\\u00f7u\\u00e0\\u009c\\u0011u3\\u00c0X\\u00a85\\u00cd;N\\u001e\\u00c0\\u00b7\\u00d1\\u0000\\u00de\\u0002\\u00c9&\\u00c0C\\u001c\\u00eb\\u00e26z3\\u00c0\\u00f1\\u00f4JY\\u0086\\u00d8!\\u00c0\\u00adi\\u00deq\\u008a\\u000e*\\u00c0\\u00f5\\u00b9\\u00da\\u008a\\u00fd\\u00954\\u00c0\\u00eeZB>\\u00e8Y!\\u00c0f\\u0088c]\\u00dc\\u0006)\\u00c0\\u00f7u\\u00e0\\u009c\\u0011\\u00056\\u00c0Dio\\u00f0\\u0085\\t \\u00c0\\u00bct\\u0093\\u0018\\u0004\\u00b6+\\u00c0\\u007f\\u00fb:p\\u00ceX6\\u00c0k+\\u00f6\\u0097\\u00dd\\u0013\\u001f\\u00c0'\\u00c2\\u0086\\u00a7W\\n,\\u00c0b\\u0010X9\\u00b4\\u00d84\\u00c0\\u0007_\\u0098L\\u0015\\u00cc\\u001f\\u00c09EGr\\u00f9\\u000f.\\u00c0#\\u00db\\u00f9~j|4\\u00c0\\u00fee\\u00f7\\u00e4a!\\u001b\\u00c0\\u00da\\u001b|a2U+\\u00c0{\\u0083/L\\u00a6\\u008a4\\u00c0\\u00d0\\u00d5V\\u00ec/{\\u001c\\u00c0\\u007fj\\u00bct\\u0093\\u0098+\\u00c0\\u009f<,\\u00d4\\u009a\\u00f66\\u00c0J\\f\\u0002+\\u0087v!\\u00c0\\u00b4Y\\u00f5\\u00b9\\u00da*-\\u00c0\\u0093\\u00a9\\u0082QI\\u00bd6\\u00c0@\\u0013a\\u00c3\\u00d3\\u00eb\\u001f\\u00c0`\\u00e5\\u00d0\\\"\\u00dbY'\\u00c0\\u0082sF\\u0094\\u00f6\\u00166\\u00c0\\u0081\\u0095C\\u008bl'#\\u00c0lxz\\u00a5,\\u00a3(\\u00c0a2U0*\\u00996\\u00c0d\\u00cc]K\\u00c8\\u00c7#\\u00c0\\u00c9v\\u00be\\u009f\\u001a\\u000f+\\u00c0\\u00e5\\u00f2\\u001f\\u00d2o\\u007f4\\u00c0\\u0086Z\\u00d3\\u00bc\\u00e3\\u0014&\\u00c0:\\u0092\\u00cb\\u007fH\\u001f&\\u00c0\\u00b3\\fq\\u00ac\\u008b\\u00bb,\\u00c0\\u009d\\u0080&\\u00c2\\u0086G#\\u00c0Gr\\u00f9\\u000f\\u00e9\\u0017\\\"\\u00c0\\u0003\\t\\u008a\\u001fc\\u000e,\\u00c0_)\\u00cb\\u0010\\u00c7Z\\\"\\u00c0\\u00a5N@\\u0013a\\u0083\\u0011\\u00c0\\u00b6\\u00f3\\u00fd\\u00d4xi.\\u00c0\\u00f9\\u00a0g\\u00b3\\u00ea\\u00b3\\u001c\\u00c0\\u00ee\\u00eb\\u00c09#J\\u0004\\u00c0\\u00c19#J{\\u00e3/\\u00c0\", {}], \"molprops\": {\"atom.dprop.PartialCharge\": \"0.14794871794871794 -0.09605128205128205 -0.12905128205128205 0.052348717948717947 -0.14365128205128205 0.052348717948717947 -0.12905128205128205 0.15694871794871795 -0.059951282051282057\\n0.69164871794871796 -0.55015128205128205 -0.46015128205128208 0.33044871794871794 0.12754871794871794 -0.30335128205128209 0.44414871794871791 -0.73705128205128201 0.550148717948718\\n-0.32035128205128205 0.17794871794871794 -0.55145128205128202 0.33144871794871794 0.68204871794871802 -0.59115128205128198 -0.16775128205128204 -0.082451282051282049 -0.094451282051282046\\n-0.082451282051282049 0.062898717948717958 0.062898717948717958 0.055648717948717945 0.055648717948717945 0.062898717948717958 0.062898717948717958 0.085648717948717951\\n0.025048717948717946 0.18294871794871795 -0.059951282051282057 0.15694871794871795\", \"ofe-name\": \"lig_ejm_47\"}}\n \n \n {\":version:\": 1, \"__module__\": \"gufe.components.smallmoleculecomponent\", \"__qualname__\": \"SmallMoleculeComponent\", \"atoms\": [[1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.148}, 1], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.096}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.129}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.0519}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.1436}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.0519}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.129}, 3], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.157}, 1], [17, 0, 0, false, 0, 0, {\"PartialCharge\": -0.0599}, 4], [6, 0, 0, false, 0, 0, {\"PartialCharge\": 0.6917}, 3], [8, 0, 0, false, 0, 0, {\"PartialCharge\": -0.5501}, 3], [7, 0, 0, false, 0, 0, {\"PartialCharge\": -0.4601}, 3], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.3305}, 1], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.1266}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.3033}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.4442}, 3], [7, 0, 0, true, 0, 0, {\"PartialCharge\": -0.737}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.5492}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.3193}, 3], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.178}, 1], [7, 0, 0, false, 0, 0, {\"PartialCharge\": -0.5514}, 3], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.3315}, 1], [6, 0, 0, false, 0, 0, {\"PartialCharge\": 0.6741}, 3], [8, 0, 0, false, 0, 0, {\"PartialCharge\": -0.5911}, 3], [6, 0, 0, false, 0, 0, {\"PartialCharge\": -0.1387}, 4], [6, 0, 0, false, 0, 0, {\"PartialCharge\": -0.0764}, 4], [6, 0, 0, false, 0, 0, {\"PartialCharge\": -0.0794}, 4], [6, 0, 0, false, 0, 0, {\"PartialCharge\": -0.0794}, 4], [6, 0, 0, false, 0, 0, {\"PartialCharge\": -0.0764}, 4], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.05595}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.05595}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.04545}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.04545}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.04545}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.04545}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.05595}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.05595}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.0747}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.0251}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.183}, 1], [17, 0, 0, false, 0, 0, {\"PartialCharge\": -0.0599}, 4], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.157}, 1]], \"bonds\": [[0, 1, 1, 0, {}], [1, 6, 12, 0, {}], [1, 2, 12, 0, {}], [2, 3, 12, 0, {}], [2, 41, 1, 0, {}], [3, 4, 12, 0, {}], [3, 40, 1, 0, {}], [4, 5, 12, 0, {}], [4, 9, 1, 0, {}], [5, 6, 12, 0, {}], [5, 8, 1, 0, {}], [6, 7, 1, 0, {}], [9, 10, 2, 0, {}], [9, 11, 1, 0, {}], [11, 12, 1, 0, {}], [11, 13, 1, 0, {}], [13, 18, 12, 0, {}], [13, 14, 12, 0, {}], [14, 15, 12, 0, {}], [14, 39, 1, 0, {}], [15, 16, 12, 0, {}], [15, 38, 1, 0, {}], [16, 17, 12, 0, {}], [17, 18, 12, 0, {}], [17, 20, 1, 0, {}], [18, 19, 1, 0, {}], [20, 21, 1, 0, {}], [20, 22, 1, 0, {}], [22, 23, 2, 0, {}], [22, 24, 1, 0, {}], [24, 28, 1, 0, {}], [24, 25, 1, 0, {}], [24, 37, 1, 0, {}], [25, 26, 1, 0, {}], [25, 35, 1, 0, {}], [25, 36, 1, 0, {}], [26, 27, 1, 0, {}], [26, 33, 1, 0, {}], [26, 34, 1, 0, {}], [27, 28, 1, 0, {}], [27, 31, 1, 0, {}], [27, 32, 1, 0, {}], [28, 29, 1, 0, {}], [28, 30, 1, 0, {}]], \"conformer\": [\"\\u0093NUMPY\\u0001\\u0000v\\u0000{'descr': '<f8', 'fortran_order': False, 'shape': (42, 3), } \\n\\u00c8\\u0007=\\u009bU\\u001f\\u0013\\u00c0\\u000f\\u009c3\\u00a2\\u00b47\\u0006\\u00c0\\u00e1\\u000b\\u0093\\u00a9\\u0082q0\\u00c0\\u00d5\\th\\\"lx\\u0015\\u00c0y\\u00e9&1\\b,\\r\\u00c0\\u001d8gDi/0\\u00c0\\u00b3\\fq\\u00ac\\u008b\\u001b\\u0013\\u00c0;\\u00dfO\\u008d\\u0097\\u00ae\\u0013\\u00c0\\u00ce\\u0088\\u00d2\\u00de\\u00e0+0\\u00c0\\u0083QI\\u009d\\u0080&\\u0016\\u00c0K\\u00ea\\u00044\\u00116\\u0018\\u00c0\\u00a1\\u00d64\\u00ef8\\u00a5/\\u00c0T\\u00e3\\u00a5\\u009b\\u00c4\\u00a0\\u001b\\u00c0\\u00b0\\u0003\\u00e7\\u008c(\\u00ad\\u0017\\u00c0\\u0088\\u00f4\\u00db\\u00d7\\u0081\\u00f3.\\u00c0\\u001e\\u00a7\\u00e8H.\\u00ff\\u001d\\u00c0\\u0011\\u00c7\\u00ba\\u00b8\\u008d\\u0086\\u0012\\u00c0\\u0011\\u00c7\\u00ba\\u00b8\\u008d\\u0006/\\u00c0EGr\\u00f9\\u000f\\u00e9\\u001a\\u00c06\\u00cd;N\\u00d1\\u0011\\f\\u00c0`\\u00e5\\u00d0\\\"\\u00db\\u00b9/\\u00c0\\u00054\\u00116<\\u00bd\\u001c\\u00c0\\u00feC\\u00fa\\u00ed\\u00eb@\\u0004\\u00c0\\u00d74\\u00ef8E\\u00c7/\\u00c0&S\\u0005\\u00a3\\u0092Z\\\"\\u00c0\\u00caT\\u00c1\\u00a8\\u00a4\\u008e\\u0011\\u00c0a\\u00c3\\u00d3+eY.\\u00c04\\u0080\\u00b7@\\u0082\\u00e2\\u001e\\u00c0\\u00c5\\u00fe\\u00b2{\\u00f2p\\u001c\\u00c0\\u00054\\u00116<\\u001d.\\u00c0e\\u00aa`TRG \\u00c0\\u00b4Y\\u00f5\\u00b9\\u00da\\u00ca\\u001c\\u00c0u\\u0093\\u0018\\u0004V\\u00ce+\\u00c0\\u00ab\\u00cf\\u00d5V\\u00ec\\u00af\\u001f\\u00c0\\u009f<,\\u00d4\\u009a\\u0006 \\u00c0\\rq\\u00ac\\u008b\\u00db\\b0\\u00c0 \\u00d2o_\\u0007\\u00ce\\u001d\\u00c0V}\\u00ae\\u00b6b?\\u001f\\u00c0d;\\u00dfO\\u008d\\u00e70\\u00c0tF\\u0094\\u00f6\\u0006\\u007f!\\u00c0\\u00116<\\u00bdRV\\\"\\u00c0=\\n\\u00d7\\u00a3p\\r0\\u00c0\\rq\\u00ac\\u008b\\u00db(#\\u00c0\\n\\u00d7\\u00a3p=*#\\u00c0\\u00b3\\fq\\u00ac\\u008b\\u00fb-\\u00c0\\u00e1z\\u0014\\u00aeG\\u00c1$\\u00c0\\u0019\\u00e2X\\u0017\\u00b7q%\\u00c0]m\\u00c5\\u00fe\\u00b2[.\\u00c0?\\u00c6\\u00dc\\u00b5\\u0084\\u00bc$\\u00c0w-!\\u001f\\u00f4\\u00ec&\\u00c0t$\\u0097\\u00ff\\u0090N0\\u00c0\\u00e4\\u0014\\u001d\\u00c9\\u00e5\\u001f#\\u00c0S\\u0096!\\u008eu1&\\u00c0\\u00dch\\u0000o\\u0081T1\\u00c0O\\u00af\\u0094e\\u0088\\u0083!\\u00c0\\u00cc]K\\u00c8\\u0007\\u00dd#\\u00c0xz\\u00a5,C<1\\u00c0\\u00ed\\r\\u00be0\\u0099J \\u00c0\\u00a6\\u009b\\u00c4 \\u00b02#\\u00c0W\\u00ec/\\u00bb'\\u000f2\\u00c0\\u00f3\\u001f\\u00d2o_'#\\u00c0\\u0005\\u00a3\\u0092:\\u0001\\u00cd'\\u00c0\\u00fee\\u00f7\\u00e4a\\u00812\\u00c0RI\\u009d\\u0080&\\u00c2$\\u00c0\\u009f<,\\u00d4\\u009a\\u0006)\\u00c0\\u00868\\u00d6\\u00c5m\\u00942\\u00c0\\u00dd\\u00b5\\u0084|\\u00d0S!\\u00c0\\u00fb\\u00cb\\u00ee\\u00c9\\u00c3\\u0002(\\u00c0\\\"\\u008euq\\u001b}3\\u00c0\\u0000o\\u0081\\u0004\\u00c5\\u008f\\u001e\\u00c0\\u00da\\u00ac\\u00fa\\\\m\\u00a5&\\u00c0sh\\u0091\\u00ed|\\u008f3\\u00c0\\u00b9\\u00fc\\u0087\\u00f4\\u00db\\u00d7!\\u00c0\\u00f5\\u00db\\u00d7\\u0081s&*\\u00c06\\u00ab>W[\\u00914\\u00c0\\u00bak\\t\\u00f9\\u00a0\\u00e7!\\u00c0r\\u008a\\u008e\\u00e4\\u00f2\\u00ff(\\u00c0sh\\u0091\\u00ed|\\u00ff5\\u00c0\\u0084\\u009e\\u00cd\\u00aa\\u00cf\\u0095 \\u00c0\\u0088\\u0085Z\\u00d3\\u00bc\\u0003+\\u00c0\\u00deq\\u008a\\u008e\\u00e4\\u00f26\\u00c0\\u00ef8EGr\\u00f9\\u001e\\u00c0t$\\u0097\\u00ff\\u0090>-\\u00c07\\u0089A`\\u00e5\\u00106\\u00c0\\u00c2\\u0086\\u00a7W\\u00ca\\u00b2\\u001e\\u00c0:\\u0092\\u00cb\\u007fH\\u00ff+\\u00c0[\\u00d3\\u00bc\\u00e3\\u0014\\u00ad4\\u00c0\\u00e6?\\u00a4\\u00df\\u00beN\\u001e\\u00c0\\u00aa\\u0082QI\\u009d\\u0080-\\u00c0\\u00a1g\\u00b3\\u00eas\\u00e53\\u00c00*\\u00a9\\u0013\\u00d0\\u0004\\u001b\\u00c0\\u00a4\\u00df\\u00be\\u000e\\u009c\\u00d3*\\u00c0p\\u00ce\\u0088\\u00d2\\u00de\\u00a04\\u00c0\\u00b3\\fq\\u00ac\\u008b\\u001b\\u001b\\u00c0\\u00b6\\u0084|\\u00d0\\u00b3\\u00f9-\\u00c0Dio\\u00f0\\u0085i6\\u00c09\\u00b4\\u00c8v\\u00be\\u00df \\u00c0\\\"lxz\\u00a5\\u00ec.\\u00c0\\u00c6\\u00dc\\u00b5\\u0084|\\u00106\\u00c0\\u00f9\\u00a0g\\u00b3\\u00ea\\u00f3\\u001d\\u00c0x\\u000b$(~\\f*\\u00c0\\u001aQ\\u00da\\u001b|\\u00817\\u00c0n4\\u0080\\u00b7@\\u0002\\\"\\u00c0y\\u00e9&1\\b\\u00cc+\\u00c0\\u00054\\u00116<\\u00ad7\\u00c0J\\f\\u0002+\\u0087\\u00d6 \\u00c0\\u009f\\u00cd\\u00aa\\u00cf\\u00d5\\u0016'\\u00c0p_\\u0007\\u00ce\\u0019\\u00116\\u00c02w-!\\u001f\\u00f4#\\u00c0\\u00be\\u009f\\u001a/\\u00dd\\u00a4(\\u00c0t\\u00b5\\u0015\\u00fb\\u00cbN6\\u00c0\\u0016\\u00fb\\u00cb\\u00ee\\u00c9\\u00a3#\\u00c0\\u00c3d\\u00aa`TR+\\u00c0v\\u00e0\\u009c\\u0011\\u00a5]4\\u00c0m\\u00e7\\u00fb\\u00a9\\u00f1\\u0012&\\u00c0\\u0091\\u000fz6\\u00ab\\u001e&\\u00c0\\f\\u0093\\u00a9\\u0082Q\\u00c9,\\u00c0\\u00cff\\u00d5\\u00e7jK#\\u00c0\\f\\u0002+\\u0087\\u0016\\u0019\\\"\\u00c0\\u00e9H.\\u00ff!\\u001d,\\u00c0\\u00ce\\u0019Q\\u00da\\u001b\\u00fc\\u0012\\u00c0\\u0010z6\\u00ab>W\\u001e\\u00c0i\\u0000o\\u0081\\u0004\\u00a5/\\u00c0}\\u00ae\\u00b6b\\u007f\\u00d9\\r\\u00c0\\u0095e\\u0088c]\\u001c\\u0014\\u00c0$(~\\u008c\\u00b9k0\\u00c0\", {}], \"molprops\": {\"atom.dprop.PartialCharge\": \"0.14799999999999999 -0.096000000000000002 -0.129 0.051900000000000002 -0.14360000000000001 0.051900000000000002 -0.129 0.157 -0.059900000000000002 0.69169999999999998 -0.55010000000000003\\n-0.46010000000000001 0.33050000000000002 0.12659999999999999 -0.30330000000000001 0.44419999999999998 -0.73699999999999999 0.54920000000000002 -0.31929999999999997 0.17799999999999999\\n-0.5514 0.33150000000000002 0.67410000000000003 -0.59109999999999996 -0.13869999999999999 -0.076399999999999996 -0.079399999999999998 -0.079399999999999998 -0.076399999999999996 0.05595\\n0.05595 0.045449999999999997 0.045449999999999997 0.045449999999999997 0.045449999999999997 0.05595 0.05595 0.074700000000000003 0.025100000000000001 0.183 -0.059900000000000002 0.157\", \"ofe-name\": \"lig_ejm_48\"}}\n \n \n {\":version:\": 1, \"__module__\": \"gufe.components.smallmoleculecomponent\", \"__qualname__\": \"SmallMoleculeComponent\", \"atoms\": [[1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.14802777777777779}, 1], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.09597222222222222}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.1289722222222222}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.05242777777777778}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.1435722222222222}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.05242777777777778}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.1289722222222222}, 3], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.1570277777777778}, 1], [17, 0, 0, false, 0, 0, {\"PartialCharge\": -0.06037222222222222}, 4], [6, 0, 0, false, 0, 0, {\"PartialCharge\": 0.6917277777777777}, 3], [8, 0, 0, false, 0, 0, {\"PartialCharge\": -0.5500722222222223}, 3], [7, 0, 0, false, 0, 0, {\"PartialCharge\": -0.4610722222222222}, 3], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.3305277777777778}, 1], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.12662777777777778}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.3022722222222222}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.4442277777777778}, 3], [7, 0, 0, true, 0, 0, {\"PartialCharge\": -0.7309722222222222}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.5482277777777778}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.3192722222222222}, 3], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.17702777777777778}, 1], [7, 0, 0, false, 0, 0, {\"PartialCharge\": -0.5393722222222223}, 3], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.3385277777777778}, 1], [6, 0, 0, false, 0, 0, {\"PartialCharge\": 0.7001277777777777}, 3], [8, 0, 0, false, 0, 0, {\"PartialCharge\": -0.5820722222222222}, 3], [6, 0, 0, false, 1, 0, {\"PartialCharge\": -0.2116722222222222}, 4], [6, 0, 0, false, 2, 0, {\"PartialCharge\": -0.02427222222222222}, 4], [6, 0, 0, false, 0, 0, {\"PartialCharge\": -0.09237222222222222}, 4], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.09572777777777777}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.09572777777777777}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.10972777777777779}, 1], [17, 0, 0, false, 0, 0, {\"PartialCharge\": -0.11737222222222223}, 4], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.11472777777777778}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.02612777777777778}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.1830277777777778}, 1], [17, 0, 0, false, 0, 0, {\"PartialCharge\": -0.06037222222222222}, 4], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.1570277777777778}, 1]], \"bonds\": [[0, 1, 1, 0, {}], [1, 6, 12, 0, {}], [1, 2, 12, 0, {}], [2, 3, 12, 0, {}], [2, 35, 1, 0, {}], [3, 4, 12, 0, {}], [3, 34, 1, 0, {}], [4, 5, 12, 0, {}], [4, 9, 1, 0, {}], [5, 6, 12, 0, {}], [5, 8, 1, 0, {}], [6, 7, 1, 0, {}], [9, 10, 2, 0, {}], [9, 11, 1, 0, {}], [11, 12, 1, 0, {}], [11, 13, 1, 0, {}], [13, 18, 12, 0, {}], [13, 14, 12, 0, {}], [14, 15, 12, 0, {}], [14, 33, 1, 0, {}], [15, 16, 12, 0, {}], [15, 32, 1, 0, {}], [16, 17, 12, 0, {}], [17, 18, 12, 0, {}], [17, 20, 1, 0, {}], [18, 19, 1, 0, {}], [20, 21, 1, 0, {}], [20, 22, 1, 0, {}], [22, 23, 2, 0, {}], [22, 24, 1, 0, {}], [24, 26, 1, 0, {}], [24, 25, 1, 0, {}], [24, 31, 1, 0, {}], [25, 26, 1, 0, {}], [25, 29, 1, 0, {}], [25, 30, 1, 0, {}], [26, 27, 1, 0, {}], [26, 28, 1, 0, {}]], \"conformer\": [\"\\u0093NUMPY\\u0001\\u0000v\\u0000{'descr': '<f8', 'fortran_order': False, 'shape': (36, 3), } \\n\\u00a4p=\\n\\u00d7#\\u0013\\u00c0e\\u0019\\u00e2X\\u00177\\u0006\\u00c0\\u00e7\\u00fb\\u00a9\\u00f1\\u00d2m0\\u00c0&S\\u0005\\u00a3\\u0092z\\u0015\\u00c0\\u00c9v\\u00be\\u009f\\u001a/\\r\\u00c0\\u00b1\\u00bf\\u00ec\\u009e<,0\\u00c0\\u00b3\\fq\\u00ac\\u008b\\u001b\\u0013\\u00c0\\u0001M\\u0084\\rO\\u00af\\u0013\\u00c0`vO\\u001e\\u0016*0\\u00c0\\u0088\\u0085Z\\u00d3\\u00bc#\\u0016\\u00c0~\\u008c\\u00b9k\\t9\\u0018\\u00c0\\u00fc\\u00a9\\u00f1\\u00d2M\\u00a2/\\u00c0\\u0004V\\u000e-\\u00b2\\u009d\\u001b\\u00c033333\\u00b3\\u0017\\u00c0\\u00e6?\\u00a4\\u00df\\u00be\\u00ee.\\u00c0\\u0002\\u00bc\\u0005\\u0012\\u0014\\u00ff\\u001d\\u00c0\\u00af%\\u00e4\\u0083\\u009e\\u008d\\u0012\\u00c0U\\u00c1\\u00a8\\u00a4N\\u0000/\\u00c0\\u00ecQ\\u00b8\\u001e\\u0085\\u00eb\\u001a\\u00c0\\u0007\\u00ce\\u0019Q\\u00da\\u001b\\f\\u00c0\\u00de\\u0093\\u0087\\u0085Z\\u00b3/\\u00c0\\u00fd\\u0087\\u00f4\\u00db\\u00d7\\u00c1\\u001c\\u00c0\\u0094\\u00f6\\u0006_\\u0098L\\u0004\\u00c0\\u008euq\\u001b\\r\\u00c0/\\u00c0\\u0098\\u00dd\\u0093\\u0087\\u0085Z\\\"\\u00c0E\\u00d8\\u00f0\\u00f4J\\u0099\\u0011\\u00c0\\u008cJ\\u00ea\\u00044Q.\\u00c0$\\u00b9\\u00fc\\u0087\\u00f4\\u00db\\u001e\\u00c0F\\u00b6\\u00f3\\u00fd\\u00d4x\\u001c\\u00c0\\u00ba\\u00da\\u008a\\u00fde\\u0017.\\u00c0,\\u00d4\\u009a\\u00e6\\u001dG \\u00c0\\u00ce\\u0088\\u00d2\\u00de\\u00e0\\u00cb\\u001c\\u00c0(~\\u008c\\u00b9k\\u00c9+\\u00c0\\u0002\\u009a\\b\\u001b\\u009e\\u009e\\u001f\\u00c0X\\u00ca2\\u00c4\\u00b1\\u000e \\u00c0\\u00f8S\\u00e3\\u00a5\\u009b\\u00040\\u00c0\\u000f\\u009c3\\u00a2\\u00b4\\u00b7\\u001d\\u00c0/\\u00dd$\\u0006\\u0081U\\u001f\\u00c0m\\u00e7\\u00fb\\u00a9\\u00f1\\u00e20\\u00c0e\\u0019\\u00e2X\\u0017w!\\u00c0\\u0003x\\u000b$(^\\\"\\u00c0b\\u0010X9\\u00b4\\b0\\u00c0\\u00d74\\u00ef8E'#\\u00c0%\\u0006\\u0081\\u0095C+#\\u00c02w-!\\u001f\\u00f4-\\u00c0\\u008b\\u00fde\\u00f7\\u00e4\\u00c1$\\u00c0\\u008cJ\\u00ea\\u00044q%\\u00c0\\u00c2\\u0086\\u00a7W\\u00caR.\\u00c0[\\u00b1\\u00bf\\u00ec\\u009e\\u00bc$\\u00c0r\\u00f9\\u000f\\u00e9\\u00b7\\u00ef&\\u00c0\\f\\u0002+\\u0087\\u0016I0\\u00c0\\u00b5\\u00a6y\\u00c7)\\u001a#\\u00c0\\u0098\\u00dd\\u0093\\u0087\\u0085:&\\u00c0v\\u00e0\\u009c\\u0011\\u00a5M1\\u00c0\\u00f2\\u00d2Mb\\u0010x!\\u00c0C\\u00adi\\u00deq\\u00ea#\\u00c0.\\u00ff!\\u00fd\\u00f651\\u00c0\\u00d0\\u00d5V\\u00ec/; \\u00c0\\u00d5x\\u00e9&1H#\\u00c0EGr\\u00f9\\u000f\\t2\\u00c0\\u00f3\\u001f\\u00d2o_'#\\u00c0n\\u00a3\\u0001\\u00bc\\u0005\\u00d2'\\u00c0\\b\\u00ac\\u001cZd{2\\u00c033333\\u00d3$\\u00c0\\u00fd\\u00f6u\\u00e0\\u009c\\u00f1(\\u00c0/n\\u00a3\\u0001\\u00bc\\u00952\\u00c0F%u\\u0002\\u009aH!\\u00c0\\u00ae\\u00b6b\\u007f\\u00d9\\u001d(\\u00c0\\u00fee\\u00f7\\u00e4aq3\\u00c0\\u00caT\\u00c1\\u00a8\\u00a4N\\u001e\\u00c0\\u00dd$\\u0006\\u0081\\u0095\\u00e3&\\u00c0|a2U0z3\\u00c0\\u008f\\u00c2\\u00f5(\\\\\\u000f\\\"\\u00c0h\\u00b3\\u00eas\\u00b5\\u0015*\\u00c0q\\u001b\\r\\u00e0-\\u00804\\u00c0\\u00d1\\\"\\u00db\\u00f9~\\u00ea\\u001f\\u00c0*\\u00a9\\u0013\\u00d0D\\u00b8+\\u00c0\\u00c8\\u0007=\\u009bU?5\\u00c0\\u00b8\\u001e\\u0085\\u00ebQX!\\u00c0s\\u00d7\\u0012\\u00f2Ao)\\u00c09EGr\\u00f9\\u00ef5\\u00c0\\u00c9v\\u00be\\u009f\\u001a/ \\u00c0\\u00e0\\u00be\\u000e\\u009c3\\u00a2'\\u00c0\\u00c4\\u00b1.n\\u00a3!6\\u00c0\\u00d2o_\\u0007\\u00ce\\u00d9\\\"\\u00c0\\u00bd\\u00e3\\u0014\\u001d\\u00c9\\u00e5)\\u00c0\\u00c7K7\\u0089A\\u00b06\\u00c0\\u00d9\\u00ce\\u00f7S\\u00e3\\u0085 \\u00c0xz\\u00a5,C\\u00bc-\\u00c0\\u0098n\\u0012\\u0083\\u00c0\\u008a5\\u00c0x\\u009c\\u00a2#\\u00b9\\u00fc\\u0018\\u00c0 c\\u00eeZB~+\\u00c0K\\u00c8\\u0007=\\u009b\\u00055\\u00c0\\u0092\\u00cb\\u007fH\\u00bf\\u00fd#\\u00c0\\u00e8\\u00d9\\u00ac\\u00fa\\\\\\r+\\u00c0\\u00cf\\u00f7S\\u00e3\\u00a5[4\\u00c0)\\u00cb\\u0010\\u00c7\\u00ba\\u0018&\\u00c0\\u00d5\\th\\\"l\\u0018&\\u00c0\\u008a\\u001fc\\u00eeZ\\u00c2,\\u00c0\\u00b0\\u0003\\u00e7\\u008c(M#\\u00c0\\u00bdR\\u0096!\\u008e\\u0015\\\"\\u00c0\\u00b8\\u001e\\u0085\\u00ebQ\\u0018,\\u00c0\\u00f6(\\\\\\u008f\\u00c2\\u00f5\\u0012\\u00c0F\\u0094\\u00f6\\u0006_X\\u001e\\u00c0\\u00be\\u009f\\u001a/\\u00dd\\u00a4/\\u00c0\\u00d0\\u00b3Y\\u00f5\\u00b9\\u00da\\r\\u00c0\\u00ed\\u009e<,\\u00d4\\u001a\\u0014\\u00c0\\u00d0\\u00b3Y\\u00f5\\u00b9j0\\u00c0\", {}], \"molprops\": {\"atom.dprop.PartialCharge\": \"0.14802777777777779 -0.095972222222222223 -0.12897222222222221 0.052427777777777781 -0.14357222222222221 0.052427777777777781 -0.12897222222222221 0.15702777777777779 -0.060372222222222223\\n0.69172777777777772 -0.5500722222222223 -0.46107222222222222 0.33052777777777781 0.12662777777777778 -0.30227222222222222 0.44422777777777778 -0.73097222222222225 0.54822777777777776\\n-0.31927222222222218 0.17702777777777778 -0.53937222222222225 0.33852777777777782 0.70012777777777768 -0.58207222222222221 -0.21167222222222221 -0.024272222222222219 -0.092372222222222217\\n0.095727777777777773 0.095727777777777773 0.10972777777777779 -0.11737222222222223 0.11472777777777778 0.026127777777777781 0.18302777777777779 -0.060372222222222223 0.15702777777777779\", \"ofe-name\": \"lig_jmc_27\"}}\n \n \n {\":version:\": 1, \"__module__\": \"gufe.components.smallmoleculecomponent\", \"__qualname__\": \"SmallMoleculeComponent\", \"atoms\": [[1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.14802777777777779}, 1], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.09597222222222222}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.1289722222222222}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.05242777777777778}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.1435722222222222}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.05242777777777778}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.1289722222222222}, 3], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.1570277777777778}, 1], [17, 0, 0, false, 0, 0, {\"PartialCharge\": -0.06037222222222222}, 4], [6, 0, 0, false, 0, 0, {\"PartialCharge\": 0.6917277777777777}, 3], [8, 0, 0, false, 0, 0, {\"PartialCharge\": -0.5500722222222223}, 3], [7, 0, 0, false, 0, 0, {\"PartialCharge\": -0.4610722222222222}, 3], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.3305277777777778}, 1], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.12662777777777778}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.3012722222222222}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.4442277777777778}, 3], [7, 0, 0, true, 0, 0, {\"PartialCharge\": -0.7299722222222222}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": 0.5472277777777778}, 3], [6, 0, 0, true, 0, 0, {\"PartialCharge\": -0.3192722222222222}, 3], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.17702777777777778}, 1], [7, 0, 0, false, 0, 0, {\"PartialCharge\": -0.5413722222222223}, 3], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.3425277777777778}, 1], [6, 0, 0, false, 0, 0, {\"PartialCharge\": 0.7011277777777777}, 3], [8, 0, 0, false, 0, 0, {\"PartialCharge\": -0.5860722222222222}, 3], [6, 0, 0, false, 1, 0, {\"PartialCharge\": -0.2336722222222222}, 4], [6, 0, 0, false, 2, 0, {\"PartialCharge\": 0.12062777777777778}, 4], [6, 0, 0, false, 0, 0, {\"PartialCharge\": -0.12037222222222221}, 4], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.09522777777777779}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.09522777777777779}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.09972777777777778}, 1], [9, 0, 0, false, 0, 0, {\"PartialCharge\": -0.20527222222222222}, 4], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.11872777777777778}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.02612777777777778}, 1], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.1830277777777778}, 1], [17, 0, 0, false, 0, 0, {\"PartialCharge\": -0.06037222222222222}, 4], [1, 0, 0, false, 0, 0, {\"PartialCharge\": 0.1570277777777778}, 1]], \"bonds\": [[0, 1, 1, 0, {}], [1, 6, 12, 0, {}], [1, 2, 12, 0, {}], [2, 3, 12, 0, {}], [2, 35, 1, 0, {}], [3, 4, 12, 0, {}], [3, 34, 1, 0, {}], [4, 5, 12, 0, {}], [4, 9, 1, 0, {}], [5, 6, 12, 0, {}], [5, 8, 1, 0, {}], [6, 7, 1, 0, {}], [9, 10, 2, 0, {}], [9, 11, 1, 0, {}], [11, 12, 1, 0, {}], [11, 13, 1, 0, {}], [13, 18, 12, 0, {}], [13, 14, 12, 0, {}], [14, 15, 12, 0, {}], [14, 33, 1, 0, {}], [15, 16, 12, 0, {}], [15, 32, 1, 0, {}], [16, 17, 12, 0, {}], [17, 18, 12, 0, {}], [17, 20, 1, 0, {}], [18, 19, 1, 0, {}], [20, 21, 1, 0, {}], [20, 22, 1, 0, {}], [22, 23, 2, 0, {}], [22, 24, 1, 0, {}], [24, 26, 1, 0, {}], [24, 25, 1, 0, {}], [24, 31, 1, 0, {}], [25, 26, 1, 0, {}], [25, 29, 1, 0, {}], [25, 30, 1, 0, {}], [26, 27, 1, 0, {}], [26, 28, 1, 0, {}]], \"conformer\": [\"\\u0093NUMPY\\u0001\\u0000v\\u0000{'descr': '<f8', 'fortran_order': False, 'shape': (36, 3), } \\n\\u00f5\\u00b9\\u00da\\u008a\\u00fd%\\u0013\\u00c0\\u0002+\\u0087\\u0016\\u00d9N\\u0006\\u00c0\\u00ac\\u001cZd;\\u007f0\\u00c0&S\\u0005\\u00a3\\u0092z\\u0015\\u00c04\\u00a2\\u00b47\\u00f8B\\r\\u00c0\\u00f0\\u0085\\u00c9T\\u00c180\\u00c0\\u00b3\\fq\\u00ac\\u008b\\u001b\\u0013\\u00c0\\u00b7b\\u007f\\u00d9=\\u00b9\\u0013\\u00c0\\u008cJ\\u00ea\\u0004410\\u00c0\\u0089A`\\u00e5\\u00d0\\\"\\u0016\\u00c0x\\u009c\\u00a2#\\u00b9<\\u0018\\u00c0L7\\u0089A`\\u00a5/\\u00c0$\\u00b9\\u00fc\\u0087\\u00f4\\u009b\\u001b\\u00c0\\u001a\\u00c0[ A\\u00b1\\u0017\\u00c07\\u0089A`\\u00e5\\u00f0.\\u00c0v\\u00e0\\u009c\\u0011\\u00a5\\u00fd\\u001d\\u00c0\\u0096\\u00b2\\fq\\u00ac\\u008b\\u0012\\u00c0\\u00e7\\u00fb\\u00a9\\u00f1\\u00d2\\r/\\u00c0a2U0*\\u00e9\\u001a\\u00c06<\\u00bdR\\u0096!\\f\\u00c0z\\u00a5,C\\u001c\\u00cb/\\u00c0\\u00d8\\u0081sF\\u0094\\u00b6\\u001c\\u00c0\\u00cd\\u00cc\\u00cc\\u00cc\\u00ccL\\u0004\\u00c0\\u00c6m4\\u0080\\u00b7\\u00e0/\\u00c0&S\\u0005\\u00a3\\u0092Z\\\"\\u00c0\\u00de\\u0093\\u0087\\u0085Z\\u0093\\u0011\\u00c0\\u0085\\u00ebQ\\u00b8\\u001ee.\\u00c0E\\u00d8\\u00f0\\u00f4J\\u00d9\\u001e\\u00c0m\\u00c5\\u00fe\\u00b2{r\\u001c\\u00c04\\u00116<\\u00bd\\u0012.\\u00c0\\u000f\\u000b\\u00b5\\u00a6yG \\u00c0Z\\u00f5\\u00b9\\u00da\\u008a\\u00bd\\u001c\\u00c0j\\u00deq\\u008a\\u008e\\u00c4+\\u00c0\\\"\\u00fd\\u00f6u\\u00e0\\u009c\\u001f\\u00c0\\u0000o\\u0081\\u0004\\u00c5\\u000f \\u00c09\\u00b4\\u00c8v\\u00be\\u00ff/\\u00c0\\u00f9\\u00a0g\\u00b3\\u00ea\\u00b3\\u001d\\u00c0\\u00a2\\u00b47\\u00f8\\u00c2d\\u001f\\u00c0X9\\u00b4\\u00c8v\\u00de0\\u00c0O@\\u0013a\\u00c3s!\\u00c0\\u0000\\u0000\\u0000\\u0000\\u0000`\\\"\\u00c0\\u00feC\\u00fa\\u00ed\\u00eb\\u00000\\u00c0)\\u00cb\\u0010\\u00c7\\u00ba\\u0018#\\u00c06\\u00ab>W[1#\\u00c0\\u00e8j+\\u00f6\\u0097\\u00dd-\\u00c0O@\\u0013a\\u00c3\\u00b3$\\u00c0*\\u00a9\\u0013\\u00d0Dx%\\u00c0\\u0081\\u0004\\u00c5\\u008f17.\\u00c0\\u0016jM\\u00f3\\u008e\\u00b3$\\u00c0d;\\u00dfO\\u008d\\u00f7&\\u00c0$\\u0097\\u00ff\\u0090~;0\\u00c0F\\u00b6\\u00f3\\u00fd\\u00d4\\u0018#\\u00c0\\u00ad\\u00fa\\\\m\\u00c5>&\\u00c0O\\u00af\\u0094e\\u0088C1\\u00c0$\\u0097\\u00ff\\u0090~{!\\u00c0\\u00b3{\\u00f2\\u00b0P\\u00eb#\\u00c0\\u00ca2\\u00c4\\u00b1..1\\u00c0H\\u00bf}\\u001d8G \\u00c0\\u0083/L\\u00a6\\nF#\\u00c0\\u00dd\\u00b5\\u0084|\\u00d0\\u00032\\u00c0n4\\u0080\\u00b7@\\\"#\\u00c0\\u00d8\\u0081sF\\u0094\\u00d6'\\u00c0\\u00c4\\u00b1.n\\u00a3q2\\u00c0lxz\\u00a5,\\u00c3$\\u00c0\\u00a1\\u00f81\\u00e6\\u00ae\\u0005)\\u00c0`vO\\u001e\\u0016\\u008a2\\u00c0\\u00f2A\\u00cff\\u00d5G!\\u00c0O@\\u0013a\\u00c3\\u0013(\\u00c0\\u00ea\\u00044\\u00116l3\\u00c0\\u00e3\\u00c7\\u0098\\u00bb\\u0096P\\u001e\\u00c0\\u00a3#\\u00b9\\u00fc\\u0087\\u00d4&\\u00c0\\u00bc\\u0096\\u0090\\u000fzv3\\u00c0\\u00ff\\u00b2{\\u00f2\\u00b0\\u0010\\\"\\u00c0\\u007f\\u00fb:p\\u00ce\\b*\\u00c0Zd;\\u00dfO}4\\u00c0\\u0003\\t\\u008a\\u001fc\\u00ee\\u001f\\u00c0\\u00a8\\u00c6K7\\u0089\\u00c1+\\u00c0\\\\\\u008f\\u00c2\\u00f5(,5\\u00c0\\u00dfO\\u008d\\u0097n2!\\u00c0\\u00fe\\u00d4x\\u00e9&q)\\u00c0\\u009a\\u0099\\u0099\\u0099\\u0099\\u00e95\\u00c0\\u0018\\u0095\\u00d4\\th\\u00e2\\u001f\\u00c0\\u008a\\u00b0\\u00e1\\u00e9\\u0095\\u00b2'\\u00c0F\\u00b6\\u00f3\\u00fd\\u00d4\\u00186\\u00c0\\u0083QI\\u009d\\u0080\\u00a6\\\"\\u00c0\\u0003x\\u000b$(\\u00de)\\u00c0\\u001b/\\u00dd$\\u0006\\u00b16\\u00c0h\\u00b3\\u00eas\\u00b5u \\u00c0\\u0003\\t\\u008a\\u001fc\\u00ce-\\u00c0\\u00a9\\u0013\\u00d0D\\u00d8p5\\u00c0\\u0006\\u0012\\u0014?\\u00c6\\u009c\\u001a\\u00c0\\u0093\\u00a9\\u0082QI}+\\u00c0V\\u000e-\\u00b2\\u009d\\u00cf4\\u00c0\\u00f3\\u001f\\u00d2o_\\u0007$\\u00c04\\u00116<\\u00bd\\u00f2*\\u00c0\\u008fSt$\\u0097_4\\u00c0\\u00d8\\u00f0\\u00f4JY\\u0006&\\u00c0?\\u00c6\\u00dc\\u00b5\\u0084\\u001c&\\u00c0\\u00a8\\u00c6K7\\u0089\\u00a1,\\u00c0\\u0010X9\\u00b4\\u00c86#\\u00c0\\u0007\\u00ce\\u0019Q\\u00da\\u001b\\\"\\u00c0\\u00e36\\u001a\\u00c0[\\u0000,\\u00c0Q\\u00da\\u001b|a\\u00f2\\u0012\\u00c0\\u00d2o_\\u0007\\u00ceY\\u001e\\u00c0\\u0083QI\\u009d\\u0080\\u00a6/\\u00c0>\\u00e8\\u00d9\\u00ac\\u00fa\\u00dc\\r\\u00c0=\\u009bU\\u009f\\u00ab-\\u0014\\u00c0\\u00de\\u0002\\t\\u008a\\u001fs0\\u00c0\", {}], \"molprops\": {\"atom.dprop.PartialCharge\": \"0.14802777777777779 -0.095972222222222223 -0.12897222222222221 0.052427777777777781 -0.14357222222222221 0.052427777777777781 -0.12897222222222221 0.15702777777777779 -0.060372222222222223\\n0.69172777777777772 -0.5500722222222223 -0.46107222222222222 0.33052777777777781 0.12662777777777778 -0.30127222222222222 0.44422777777777778 -0.72997222222222224 0.54722777777777776\\n-0.31927222222222218 0.17702777777777778 -0.54137222222222225 0.34252777777777782 0.70112777777777768 -0.58607222222222222 -0.2336722222222222 0.12062777777777778 -0.12037222222222221\\n0.095227777777777786 0.095227777777777786 0.099727777777777776 -0.20527222222222222 0.11872777777777778 0.026127777777777781 0.18302777777777779 -0.060372222222222223 0.15702777777777779\", \"ofe-name\": \"lig_jmc_23\"}}\n \n \n [[0, 0], [1, 1], [2, 2], [3, 3], [4, 4], [5, 5], [6, 6], [7, 7], [8, 8], [9, 9], [10, 10], [11, 11], [12, 12], [13, 13], [14, 14], [15, 15], [16, 16], [17, 17], [18, 18], [19, 19], [20, 20], [21, 21], [22, 22], [23, 23], [24, 24], [25, 26], [27, 25], [28, 31], [29, 32], [30, 33], [31, 34]]\n {\"score\": 0.9048374180359595}\n \n \n [[0, 0], [1, 1], [2, 2], [3, 3], [4, 4], [5, 5], [6, 6], [7, 7], [8, 8], [9, 9], [10, 10], [11, 11], [12, 12], [13, 13], [14, 14], [15, 15], [16, 16], [17, 17], [18, 18], [19, 19], [20, 20], [21, 21], [22, 22], [23, 23], [24, 24], [25, 26], [27, 25], [28, 29], [29, 30], [30, 31], [31, 32]]\n {\"score\": 0.9048374180359595}\n \n \n [[0, 0], [1, 1], [2, 2], [3, 3], [4, 4], [5, 5], [6, 6], [7, 7], [8, 8], [9, 9], [10, 10], [11, 11], [12, 12], [13, 13], [14, 14], [15, 15], [16, 16], [17, 17], [18, 18], [19, 19], [20, 20], [21, 21], [22, 22], [23, 23], [28, 32], [29, 33], [30, 34], [31, 35]]\n {\"score\": 0.36787944117144233}\n \n \n [[0, 0], [1, 1], [2, 6], [3, 5], [4, 4], [5, 3], [6, 2], [7, 38], [8, 37], [9, 9], [10, 10], [11, 11], [12, 12], [13, 13], [14, 14], [15, 15], [16, 16], [17, 17], [18, 18], [19, 19], [20, 20], [21, 21], [22, 22], [23, 23], [28, 35], [29, 36], [30, 8], [31, 7]]\n {\"score\": 0.33287108369807955}\n \n \n [[0, 0], [1, 1], [2, 2], [3, 3], [4, 4], [5, 5], [6, 6], [7, 7], [8, 8], [9, 9], [10, 10], [11, 11], [12, 12], [13, 13], [14, 14], [15, 15], [16, 16], [17, 17], [18, 18], [19, 19], [20, 20], [21, 21], [22, 22], [23, 23], [28, 38], [29, 39], [30, 40], [31, 41]]\n {\"score\": 0.301194211912202}\n \n \n [[0, 0], [1, 1], [2, 2], [3, 3], [4, 4], [5, 5], [6, 6], [7, 7], [8, 8], [9, 9], [10, 10], [11, 11], [12, 12], [13, 13], [14, 14], [15, 15], [16, 16], [17, 17], [18, 18], [19, 19], [20, 20], [21, 21], [22, 22], [23, 23], [24, 24], [26, 25], [27, 26], [28, 29], [29, 27], [30, 28], [31, 34], [32, 35], [33, 36], [34, 37]]\n {\"score\": 0.9048374180359595}\n \n \n [[0, 0], [1, 1], [2, 2], [3, 3], [4, 4], [5, 5], [6, 6], [7, 7], [8, 8], [9, 9], [10, 10], [11, 11], [12, 12], [13, 13], [14, 14], [15, 15], [16, 16], [17, 17], [18, 18], [19, 19], [20, 20], [21, 21], [22, 22], [23, 23], [24, 24], [25, 26], [26, 25], [27, 29], [29, 27], [30, 28], [31, 34], [32, 35], [33, 36], [34, 37], [35, 38]]\n {\"score\": 0.9048374180359595}\n \n \n [[0, 0], [1, 1], [2, 2], [3, 3], [4, 4], [5, 5], [6, 6], [7, 7], [8, 8], [9, 9], [10, 10], [11, 11], [12, 12], [13, 13], [14, 14], [15, 15], [16, 16], [17, 17], [18, 18], [19, 19], [20, 20], [21, 21], [22, 22], [23, 23], [24, 24], [25, 26], [26, 25], [27, 29], [29, 27], [30, 28], [31, 31], [32, 32], [33, 33], [34, 34], [35, 35]]\n {\"score\": 0.9048374180359595}\n \n \n [[0, 0], [1, 1], [2, 2], [3, 3], [4, 4], [5, 5], [6, 6], [7, 7], [8, 8], [9, 9], [10, 10], [11, 11], [12, 12], [13, 13], [14, 14], [15, 15], [16, 16], [17, 17], [18, 18], [19, 19], [20, 20], [21, 21], [22, 22], [23, 23], [24, 24], [25, 26], [26, 25], [27, 29], [29, 27], [30, 28], [31, 31], [32, 32], [33, 33], [34, 34], [35, 35]]\n {\"score\": 0.9048374180359595}\n \n \n", "__qualname__": "LigandNetwork", "__module__": "gufe.ligandnetwork", ":version:": 1}]] \ No newline at end of file diff --git a/cookbook/repairing_broken_networks.ipynb b/cookbook/repairing_broken_networks.ipynb new file mode 100644 index 0000000..60c374a --- /dev/null +++ b/cookbook/repairing_broken_networks.ipynb @@ -0,0 +1,661 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "bc2dc4e7", + "metadata": {}, + "source": [ + "# Repairing a broken ligand network\n", + "\n", + "In a relative binding free energy (RBFE) campaign some transformations may fail. If\n", + "enough edges drop out, the completed network can split into disconnected pieces,\n", + "and a disconnected network can no longer rank all of its ligands.\n", + "\n", + "This notebook takes the TYK2 system from the JACS benchmark\n", + "set and repairs the network:\n", + "\n", + "1. load the stored, connected **planned** network,\n", + "2. parse a directory of **result JSONs** to find which edges actually completed,\n", + "3. reconstruct the **completed** network and diff it against the plan,\n", + "4. **repair** the breaks in two different ways:\n", + " - by ligand name\n", + " - by lomap score\n", + "6. **rebuild** alchemical transformations for the new edges and write them out." + ] + }, + { + "cell_type": "markdown", + "id": "ef334d57", + "metadata": {}, + "source": [ + "## 1. Fetch the data" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "b5d4a134", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Fetching /Users/hannahbaumann/.local/share/mamba/envs/openfe/lib/python3.13/site-packages/openfecli/tests/data/rbfe_results.tar.gz\n" + ] + } + ], + "source": [ + "import locale\n", + "locale.getpreferredencoding = lambda: \"UTF-8\" # colab hack; not needed locally\n", + "\n", + "# Fetch and extract the CLI tutorial results from Zenodo\n", + "!openfe fetch rbfe-tutorial-results\n", + "!tar -xf rbfe_results.tar.gz" + ] + }, + { + "cell_type": "markdown", + "id": "09d26ef5", + "metadata": {}, + "source": [ + "## 2. Imports" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "8d681408", + "metadata": {}, + "outputs": [], + "source": [ + "import json\n", + "import pathlib\n", + "import warnings\n", + "\n", + "import networkx as nx\n", + "from rdkit import Chem\n", + "\n", + "from openfe import (\n", + " AlchemicalNetwork, ChemicalSystem, LigandAtomMapping, LigandNetwork,\n", + " ProteinComponent, SmallMoleculeComponent, SolventComponent, Transformation,\n", + ")\n", + "from openfe.protocols.openmm_rfe import RelativeHybridTopologyProtocol\n", + "from openfe.setup import KartografAtomMapper, lomap_scorers\n", + "from openfe.setup.ligand_network_planning import generate_network_from_names\n", + "from gufe.tokenization import JSON_HANDLER\n", + "\n", + "from konnektor.network_tools import merge_two_networks\n", + "from konnektor.network_planners import MstConcatenator" + ] + }, + { + "cell_type": "markdown", + "id": "89e33757", + "metadata": {}, + "source": [ + "## 3. Load the planned network\n", + "\n", + "This is the connected network the campaign set out to run." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "8a702d3c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "planned connected: True edges: 9\n" + ] + } + ], + "source": [ + "planned = LigandNetwork.from_json(\"assets/mst_network_tyk2.json\")\n", + "\n", + "print(\"planned connected:\", planned.is_connected(), \" edges:\", len(planned.edges))" + ] + }, + { + "cell_type": "markdown", + "id": "bdf56bda", + "metadata": {}, + "source": [ + "## 4. Reconstruct the completed network from the results\n", + "\n", + "In a real campaign a failed transformation simply has no results. We simulate two\n", + "failures by dropping their result files before parsing:\n", + "\n", + "- `ejm_31 -- ejm_46` disconnects the network into two fragments (5 and 4 ligands);\n", + "- `ejm_31 -- ejm_48` was `ejm_48`'s *only* transformation, so `ejm_48` disappears\n", + " from the results entirely.\n", + "\n", + "We then read every remaining result JSON, keep the transformations that succeeded\n", + "in both legs, and rebuild the network from their ligand mappings. We also recover a reference complex system\n", + "(for the protein, solvent and cofactors) and the run's protocol (for its\n", + "settings), both used when we rebuild transformations later." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "d0f1f442", + "metadata": {}, + "outputs": [], + "source": [ + "def _load_result_json(path):\n", + " \"\"\"Load a result JSON, or None if it isn't a usable result.\"\"\"\n", + " ru = json.load(open(path, \"rb\"), cls=JSON_HANDLER.decoder)\n", + " if not isinstance(ru, dict):\n", + " return None # e.g. the ligand network file\n", + " if ru.get(\"__qualname__\") in (\"AlchemicalNetwork\", \"Transformation\"):\n", + " return None # an input/alchemical network file\n", + " if \"unit_results\" not in ru:\n", + " return None\n", + " if all(\"exception\" in u for u in ru[\"unit_results\"].values()):\n", + " return None # every repeat failed\n", + " return ru\n", + "\n", + "def _units(ru):\n", + " data = ru[\"protocol_result\"][\"data\"]\n", + " return data[next(iter(data))]\n", + "\n", + "\n", + "def _extract_edge(ru):\n", + " \"\"\"Return (mapping, phase, stateA) for a result, or None if inputs are stripped.\"\"\"\n", + " units = _units(ru)\n", + " if not units or \"stateA\" not in units[0][\"inputs\"]:\n", + " return None\n", + " inputs = units[0][\"inputs\"]\n", + " stateA = ChemicalSystem.from_dict(inputs[\"stateA\"])\n", + " mapping = LigandAtomMapping.from_dict(inputs[\"ligandmapping\"])\n", + " is_complex = any(isinstance(c, ProteinComponent) for c in stateA.components.values())\n", + " return mapping, (\"complex\" if is_complex else \"solvent\"), stateA\n", + "\n", + "def parse_results(result_files, require_both_legs=True):\n", + " \"\"\"Reconstruct the completed network directly from the results.\"\"\"\n", + " phases = {}\n", + " mapping_by_pair = {}\n", + " reference_complex_system = None\n", + " reference_protocol = None\n", + " for path in result_files:\n", + " ru = _load_result_json(path)\n", + " if ru is None:\n", + " continue\n", + " if reference_protocol is None:\n", + " settings = _units(ru)[0][\"inputs\"].get(\"settings\")\n", + " reference_protocol = RelativeHybridTopologyProtocol(settings=settings)\n", + " parsed = _extract_edge(ru)\n", + " if parsed is None:\n", + " continue\n", + " mapping, phase, stateA = parsed\n", + " pair = frozenset({mapping.componentA, mapping.componentB})\n", + " phases.setdefault(pair, set()).add(phase)\n", + " mapping_by_pair[pair] = mapping\n", + " if phase == \"complex\" and reference_complex_system is None:\n", + " reference_complex_system = stateA\n", + "\n", + " edges = [mapping_by_pair[pair] for pair, seen in phases.items()\n", + " if not require_both_legs or seen == {\"complex\", \"solvent\"}]\n", + " return LigandNetwork(edges=edges), reference_complex_system, reference_protocol" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "be375fe0-99b4-49c9-830a-6bdcd77a6b75", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "found 54 result files\n", + "kept 42 after simulating failures\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/hannahbaumann/.local/share/mamba/envs/openfe/lib/python3.13/site-packages/gufe/components/smallmoleculecomponent.py:286: UserWarning: The atom hybridization data was not found and has been set to unspecified. This can be fixed by recreating the SmallMoleculeComponent from the rdkit molecule after running sanitization.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "completed edges: 7 ligands: 9\n", + "connected: False (broken, as intended)\n", + "recovered protocol: True\n" + ] + } + ], + "source": [ + "RESULTS_DIR = pathlib.Path(\"results\")\n", + "\n", + "result_files = sorted(\n", + " p for p in RESULTS_DIR.rglob(\"*.json\")\n", + " if not any(part.startswith(\"shared_\") for part in p.parts)\n", + ")\n", + "print(f\"found {len(result_files)} result files\")\n", + "\n", + "# Simulate two failed transformations: drop their result files (both legs) before\n", + "# parsing. Matching on ligand name in the path is robust to the filename format.\n", + "DROP_EDGES = [(\"ejm_31\", \"ejm_46\"), (\"ejm_31\", \"ejm_48\")]\n", + "result_files = [\n", + " p for p in result_files\n", + " if not any(a in p.name and b in p.name for a, b in DROP_EDGES)\n", + "]\n", + "print(f\"kept {len(result_files)} after simulating failures\")\n", + "\n", + "completed, reference_complex_system, reference_protocol = parse_results(result_files)\n", + "print(\"completed edges:\", len(completed.edges), \" ligands:\", len(completed.nodes))\n", + "print(\"connected:\", completed.is_connected(), \"(broken, as intended)\")\n", + "print(\"recovered protocol:\", reference_protocol is not None)" + ] + }, + { + "cell_type": "markdown", + "id": "6ad134e2-8617-46d0-8be2-e9457279cc75", + "metadata": {}, + "source": [ + "## 5. Inspect the damage\n", + "\n", + "The two failures show up in different ways. A missing **edge** between ligands\n", + "that survive elsewhere leaves the reconstructed network *disconnected*.\n", + "`decompose` finds it with no reference needed. A missing **ligand**, whose every\n", + "transformation failed, leaves no trace in the results at all; the only way to\n", + "know it should be there is to compare against the planed network.\n", + "\n", + "Here `ejm_48` is the missing ligand. We recover it from the planned network and\n", + "fold it in as its own fragment, so the repair reconnects it too." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "72cdee1f-c103-4467-a73a-297d96a076e0", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "missing ligands: ['lig_ejm_48']\n", + "fragment 0: ['lig_ejm_46', 'lig_jmc_23', 'lig_jmc_27', 'lig_jmc_28']\n", + "fragment 1: ['lig_ejm_31', 'lig_ejm_42', 'lig_ejm_43', 'lig_ejm_47', 'lig_ejm_50']\n", + "fragment 2: ['lig_ejm_48']\n" + ] + } + ], + "source": [ + "def decompose_network(network):\n", + " g = network.graph.to_undirected()\n", + " pieces = []\n", + " for comp in nx.connected_components(g):\n", + " edges = [e for e in network.edges\n", + " if e.componentA in comp and e.componentB in comp]\n", + " pieces.append(LigandNetwork(nodes=comp, edges=edges))\n", + " return pieces\n", + "\n", + "\n", + "def missing_ligands(planned, completed):\n", + " \"\"\"Ligands in the plan with no results at all.\"\"\"\n", + " have = {n.name for n in completed.nodes}\n", + " return [n for n in planned.nodes if n.name not in have]\n", + "\n", + "\n", + "fragments = decompose_network(completed)\n", + "missing = missing_ligands(planned, completed)\n", + "print(\"missing ligands:\", [n.name for n in missing])\n", + "\n", + "# fold each missing ligand in as a singleton fragment so the repair reconnects it\n", + "fragments += [LigandNetwork(nodes=[lig], edges=[]) for lig in missing]\n", + "for i, frag in enumerate(fragments):\n", + " print(f\"fragment {i}: {sorted(n.name for n in frag.nodes)}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "e9eea99a-4bb2-44ef-955c-8225b3608177", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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SFLFixd3c0eTJ0/uZrkOHz6cI36R48eP63//+9+5WmCraQUAANERtCLJ1a9f/1y9Zr9+/fTpp59y1C8wefJkHThwQIULF9Ztt93GsQEA4BIIWuEXvXr1UteuXd2GA3fccYc2btzIkf//LXB92ec+ffooRYoUHBcAAC6BRiz4jdVs1qtXT0uXLnVlA6tXr1bmzJkj+jdgu4jZtACr+925c6fSp08f6CUBABCUyLTCb3w7ZRUsWFA///yz2rRpo9OnT0f0b8C3Zet9991HwAoAwGWQaYXfrV+/3nXIHzt2TA8++KBeffXViPwtrFmzRlWqVHElAdu2bVPevHkDvSQAAIIWmVb4Xbly5TR16lR3feTIkRo/fnxEZ1nbtWtHwAoAwBWQaUXAvPDCC3rqqaeUMmVKLViwQLVr146Y34ZlVosWLeoasdatW6fy5csHekkAAAQ1Mq0ImP79+6tt27Y6deqUWrZs6QK5SGElERawWmMaASsAAFdGphUBH6z/n//8R2vXrnVlA8uXLw/7hiTb3jZ//vw6evSom1nbqFGjQC8JAICgR6YVAZUuXTrNnj1buXLlcg1ad911l8tAhrNx48a5gLV06dJq2LBhoJcDAEBIIGhFwOXLl0+zZs1S6tSpXQD7zDPPKFxZKYQ1n5mHH36YLVsBAIglglYEhWrVqrkMpK9B67333lM4mj59unbt2qWcOXOqQ4cOgV4OAAAhg6AVQcNKA/r16+eud+rUydW5hpOoqCgNHTr03La2llkGAACxQyMWgsqZM2fUvHlzffzxx252qQ3gz507t8LBwoULdfPNNytt2rRuy9asWbMGekkAAIQMMq0IKsmTJ9c777yjkiVLavfu3brtttt04sQJhdNmAvfccw8BKwAAcUSmFUHpl19+cVucHjp0yJUNTJ48OaSbln766SeVKlXKvYfNmzerWLFigV4SAAAhhUwrgpIFdTNmzHCZV9vy1VcLGqqGDRvmvlrpAwErAABxR6YVQe21115Tz549XYZy7ty5atKkiULN/v37VbBgQZ08eVJLly5VrVq1Ar0kAABCDplWBLUePXrovvvuc5337dq104YNGxSKgbcFrFbuULNmzUAvBwCAkESmFSExkL9+/fr68ssvVbRoUa1evTpkGplsm9oCBQrowIEDbkbr7bffHuglAQAQksi0IuilTJnS1bcWLlxYW7ZsUZs2bVwgGwqmTJniAtZChQq5SQgAACB+CFoRErJly6YPP/xQ6dOnd/NOH3roIQW7s2fPavjw4e56nz59lCJFikAvCQCAkEXQipBRpkwZvf32264py+pEx4wZo2D20UcfufFW11xzjTp37hzo5QAAENIIWhFSmjVrpkGDBrnrNlVg8eLFCvbNBKyRLEOGDIFeDgAAIY1GLIQcmyRw5513up2zrCHrq6++UpEiRRRMbPtZmxZgJQFbt25Vvnz5Ar0kAABCGplWhBwrDxg/frwqV67smpxsYP+RI0cUjFlWG9NFwAoAQMKRaUXI2r17twtc9+7d68oGZs2apWTJAv85bPv27W4015kzZ7Ru3TqVL18+0EsCACDkBf5/eCCe8ubNq9mzZyt16tRussCAAQOC4li++uqrLmC9+eabCVgBAEgkZFoR8qy2tUOHDu66TRdo3759wNZy+PBh5c+f35UrfPLJJ7rlllsCthYAAMIJmVaEPAtSH3/8cXe9S5curgkqUMaNG+cC1lKlSqlRo0YBWwcAAOGGTCvCgg3yb9GihebOnavcuXPr66+/Vp48efy6Btuly6YY7Nq1yzWKWQANAAASB5lWhAVrwLLSgNKlS7vGLAtg//77b7+uYfr06S5gzZEjx7lyBQAAkDgIWhE2bIC/NWTZ7FYrEejataub6eoP9jq+MVe9evVSmjRp/PK6AABECoJWhBU7PT9jxgw31N8atF5++WW/vK7tzPXtt98qbdq0uv/++/3ymgAARBKCVoSdOnXqaNSoUe76k08+6epck5ovy9qpUyeX6QUAAImLRiyErQceeED/+9//lD59eq1cuVJlypRJktf56aef3LQA26lr06ZNKl68eJK8DgAAkYxMK8LWiBEjVLduXR09etTtmPXHH38kyesMHz7cfbXXIGAFACBpkGlFWDtw4ICqVq2qLVu2uLKBefPmKWXKlIn2/Pv371fBggV18uRJLVmyRLVr10605wYAAOeRaUVYs/pSmyhgkwWsWerBBx9M1Oe38gMLWKtUqaJatWol6nMDAIDzCFoR9qze1CYJWM3pG2+84QLNxHDixAktW7ZMN9xwg55//nn3/AAAIGlQHoCIYeOvbLvX5MmTuzKBm266KdBLAgAAsUTQiohhGwDcfffdeuutt5QlSxZ99dVXKlq0aKCXBQAAYoGgFRHFTunf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+OHDh6t58+YuYL355pvdlqwErACCBUErEKFozIKPTQXo3r27Hn74YRe82vasn376qTJnzsxBAhA0KA8AItxLL72kJ554QilTpnSjjGrUqBHoJcGP/vzzTzfGav78+W6m79ChQ/XQQw+56wAQTAhagQhHY1bk2rJli2u42rhxo66++mq98847bmIAAAQjglYANGZFoGXLlqlFixY6cOCA8uXL5xqwrr/++kAvCwBiRE0rABqzIszUqVNdo5UFrJUqVXJbshKwAgh2BK0AHBqzImNLVtvV6u6779Y///yjli1b6ssvv1Tu3LkDvTQAuCKCVgDnNGrUSIMHD3bXe/bs6UYeITz8/fffbv7qoEGD3PePP/643n//faVLly7QSwOAWKGmFUA0NGaFn3379rn5q1YGYFMixowZo3vuuSfQywKAOCFoBfAv7JgVPtavX69bb71VO3bsUJYsWTRz5kzdeOONgV4WAMQZ5QEA/oUds8LDJ598opo1a7qA9dprr9WqVasIWAGELIJWAJdEY1Zol3iMHDnSZVgta163bl2tXLlSxYsXD/TSACDeCFoBxIjGrNBz+vRp10TXu3dvNy2gS5cu+uyzz1xpAACEMmpaAVwWjVmh4/Dhw2rTpo3mzZvntmEdMmSI+vbty5asAMICQSuAK6IxK/ht3brVbcm6YcMGN8bq7bffdjteAUC4oDwAwBXRmBXcbJ5u1apVXcCaJ08eLV26lIAVQNghaAUQKzRmBad33nlHN910k37//XfdcMMNbhZrhQoVAr0sAEh0BK0AYo3GrOCqNR44cKA6dOigkydPusyqZVjz5s0b6KUBQJKgphVAnNCYFXgnTpxwO1pNmzbNff/oo4/qxRdfVLJk5CEAhC+CVgBxRmNW4Ozfv99lVW2jgBQpUuiNN95wY60AINzxsRxAnNGYFRg//PCDa7iygDVz5sxutBUBK4BIQdAKIF5ozPIv2yCgRo0a2r59u4oVK+YCV9vpCgAiBUErgHijMcs/Ro8erSZNmujIkSO68cYbXcB67bXX+unVASA4UNMKIEFozEraLVkfeughF7SaTp06acyYMUqVKlUSvioABCeCVgAJRmNW4vvrr790xx136NNPP3Xf23SAxx57jC1ZAUQsglYAiWLLli2qVKmS/vzzT3Xr1s1lBBE/VrdqW7Ja41XatGn11ltvqWXLlhxOABGNmlYAiYLGrMRh9apVqlRxAWvu3Lm1ZMkSAlYAIGgFkJhozEoY2yygTp06+u2333T99de7LVktew0AoDwAQCKjMSt+x+z555/XM888476/9dZb9c4777h5uAAADzWtABIdjVlx25K1a9euevvtt933ffv21csvv6zkyZPzJxMALkBNK4BEx45ZsfP777+rXr16LmC1LVnHjh2roUOHErACwCWQaQWQpLs4NW7c2J3+tmkCNlUAng0bNrgJAVu3btU111yjDz74QDfffDOHBwBiQKYVQJKhMevSvvjiC1WvXt0FrEWKFHETAwhYAeDyyLQCSFI0ZkX3xhtvqGfPnjpz5oxq1aqlWbNmKVu2bPwpBIArINMKIEldddVVmjhxosqUKaN9+/apdevWOnnyZMQddQtSbUvW+++/312/++67NX/+fAJWAIglglYASS7SG7OOHDmi5s2ba8SIEe77QYMGadKkSUqdOnWglwYAIYPyAAB+E4mNWTt27HBzV9evX680adJoypQpuv322wO9LAAIOQStAPzqpZde0hNPPKGUKVNq8eLFqlGjRtj+BmxHq2bNmmn//v3KmTOnPvzwQ7dFKwAg7ghaAfhVpDRm2fu766673OYB5cqV09y5c1WgQIFALwsAQhY1rQD8KtwbsywoHzx4sCsBsIC1SZMmWrZsGQErACQQQSsAvwvXxiwLvjt16qT+/fu77/v06aM5c+YoQ4YMgV4aAIQ8ygMABEw4NWb98ccfatmypZYuXeq2YR09erS6d+8e6GUBQNggaAUQUOHQmLVx40a3JeuWLVuUMWNGvf/++2rQoEGglwUAYYWgFUBAhXpj1oIFC1xd7p9//qnChQvro48+UqlSpQK9LAAIO9S0AgioUG7MGjt2rBo2bOgC1po1a2r16tUErACQRAhaAQRcqDVm2Tasffv21X333eeud+jQwW3Jmj179kAvDQDCFkErgKBQtGhRvfvuuy7zahlMuwSjo0ePuoarYcOGue+fe+45TZ061e12BQBIOtS0AggqwdyYtWvXLrcl67p165Q6dWpNnjxZbdu2DfSyACAiELQCCCrB2pj19ddfuy1Z9+7dqxw5crj5q9WqVQv0sgAgYhC0AgjKU/DVq1fXDz/84L4uWrTIZTYDZebMmbrzzjv1999/u4Yx25K1UKFCAVsPAEQiglYAQclmnlaq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9ddfAVsjAIQaglYAAWMNTP/5z3/0/vvvK2XKlHrzzTf13//+V8mTJ4/3c/pqWpOiESuuUqRI4bKrX3zxhTZs2KCePXu66QcbN25Ur169lDdvXnfbTz/9FOilAkDQI2gFEBBff/212+HKaj+zZs3qTpt37tw5wc8bDJnWSylZsqRGjRrlAnXLspYoUUJHjx7Va6+95jKvlo21DPPp06cDvVQACEoErQD8zuadWoZ1z549LmCzBib7PjEEa9DqkzFjRj3wwAMu82qBumVibZTXggULdNttt6lo0aJuvNfvv/8e6KUCQFAhaAXgN9aAZLWrbdu2daOgGjdurJUrV7ompcQS7EHrhTNfb775Zlfz+uuvv7oaWMs479ixQ0888YSbOmCTCNasWRPopQJAUCBoBeAXFqS2b9/eTQkwDz30kD788EOXeUxMSbm5QFKxbWlt2oBtqmDTBypWrOjex5QpU1wJhc2AtVmwvvcGAJGIoBVAktu7d6+bv2pzWK05ady4cW471IQ0XAV6c4GkkCZNmnPZVZv7avNfLfi28om7777bZV9tF67E3KIWAEIFQSuAJPXNN9+4+aUWiGXJksV10nft2jXJXi9UygOuVDrgy65auYDtvGWTBqzOdfDgwW5+batWrbRo0SJmvgKIGAStAJLMBx98oFq1armOeeuWt4xhnTp1kvSIh0PQeqGcOXO67Oq2bds0Y8YMd/xs5uvMmTN10003uZ3DXn/9dTeJAADCGUErgCRpuBo0aJBat27talkbNmzoTndbZ3xSC8Wa1tiwsgpfdvX7779X9+7ddfXVV7spBD169HCZ2N69e2vTpk2BXioAJAmCVgCJyrZhtVrMAQMGuO8tkProo490zTXX+OVIh3JNa2z5squWwX711VdVvHhxt7vWyJEjXUbbPiTMnTtXZ86cCfRSASDRELQCSDT79u1zp6/feecdlxl84403NGLECHfdX8KtPOBy7IPAgw8+6HbY+vzzz3Xrrbe6eth58+apWbNmKlasmNth7MCBA4FeKgAkGEErgESxbt06N55p9erVypw5swui7rvvPr8f3UgKWn1sc4IGDRq4EWJbtmxRv3793O/A6mAfffRR5cuXT126dHFNcQAQqghaASSYbT9as2ZNN4rpuuuuc4GrNQkFQiQGrRcqXLiwhgwZ4ma+vvnmm7r++utdycaECRPc/Ff7PVkm3FdGAQChgqAVQIIarmzLUdt+9Pjx46pfv75ruLIay0DxBWPh1ogVV+nSpVPnzp1ddnX58uVq166dK9NYsWKFOnTooAIFCujpp592dbEAEAquirL/dQAgjix7161bNzdL1PTs2VPDhw/3a/3qpeTKlUv79+/Xd999p3LlygV0LcG4yYNt7GC1xnbd2AYPLVu2dL+/2rVru5pYAAhGBK0A4syCQsuurly50gU91rVuY5eCgdVy/vnnn645yUoV8G+nTp3SrFmzNHr0aC1duvTc7WXLlnXBq2VibZwWAAQTglYAcbJ+/XrXpW47NWXKlEnvv/++6tWrF1SnxW027NatW93OUbjy7/O1115zGXM7br6pBFZaYB9EbAIBAAQDglYAsWbd6e3bt9exY8dc3arNAg22bKZlfm3HKKvVzJMnT6CXEzIOHTqkSZMmuQDWJhD43HLLLS772qhRIzelAAAChaAVwBVZ6bvN+3z88cfd9ZtvvlnTp09XlixZguro2TB9X03tH3/8oaxZswZ6SSHHAn4bV2alA5988sm52203M8u83nPPPa4EAwD8jaAVwBVHSNm81cmTJ7vv77//frcLU8qUKYPuyNkEA18t5pEjR5Q+ffpALymk/fLLL27nLRuXZXXCJm3atG7HswceeEDly5cP9BIBRBCCVgAx+v33313DlY1MslPDFqzaqeJgPsXty/7a6KtgDKxDkZWD2GzXUaNG6fvvvz93e61atdyfB5s+wLEGkNQIWgFc0g8//OAarmxXJWvMsXIA23Up2LeRzZ0797nT3IxvSlxWGrJs2TJXOvDBBx+4cgxjx9yy8TYCzXf8ASCxEbQC+JePPvrIDaM/evSoq2W070uUKBH0R8omGhQsWNDthmVzZJF0rNFt7NixGjNmjBuBZqyeuHXr1i77WqNGDT40AEhUBK0AomXShg0b5vaut+t16tTRjBkzQqah6eeff9a1116rjBkz6vDhw4FeTkSwMgzLulr21Xbb8rHtYy14tQ8/NoYMABKK+SUAzgUfXbt21SOPPOIC1nvvvVfz5s0LmYDV1zRmLNMK/7Dtci0wtbrntWvXuvmuadKk0bp169yfp3z58rkPQb/++iu/EgAJQqYVgBsP1apVKy1ZssQ1XFm29cEHHwy507sWNFWqVMkFSjt37gz0ciLWgQMH3MSB//3vf64m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AICwQnkA4CeWUb3ppptcwFqhQgWtWbOGgDUR+UoDDEErAIQfglbADw1Xjz76qO655x7XcNW6dWs34iovc2SSJGhNliyZUqTgJBJCx5EjRzR69GjVqFHDfaC1y4MPPqiff/450EsDggpzWoEk/s+oQ4cOmjt3rvveNguwpisLrJC4tm3bpsKFC7s64b9tY3YgxOzdu9ftgjdu3Dj3Ydd2wmvfvr27rUiRIoFeHhBw/M8JJJHt27erZs2aLmC109Vvv/22+8+HgDVpa1opDUCosjr3119/XT/99JNrzrTGQvt3o0SJEurVq5f2798f6CUCAUXQCiSBFStWqEqVKvr+++/dLk02f9UyJkg6jLtCuChevLgbgbd27Vo1bNjQlRVZ+UDRokX19NNPu5F5QCQiaAUS2dSpU1W3bl23nej111/vGq6qVq3KcU5iBK0IN1bb+tlnn2nhwoXuQ/CxY8f0/PPPu1KB4cOH68SJE4FeIuBXBK1AIjl79qyeeOIJ3X333e5UtY22shFX+fPn5xj7AUErwpV9CF61apU++OADXXfddTpw4IAefvhhd92mklj9KxAJCFqBRHD06FG1atVKL730kvv+ySef1IwZM3T11VdzfP1c08rGAghH1pTVsmVL/fDDDxo/frzy5cunHTt2uKkk5cqVczOffZtrAOGKoBVIIPuPo1atWpo9e7YLmKw8YNCgQTRc+RmZVkQCG+fWpUsXbd68Wf/973+VOXNmbdiwQS1atHAjs6x+HghXBK1AAqxcudLVmn333XfKkSOHFi9erDvvvJNjGgAErYgkadOm1SOPPKJff/3VndlJly6dKyGoU6eOGjdurHXr1gV6iUCiI2gF4slG0VitmY2hsdNzX331lapXr87xDBCCVkSiTJkyuTM7v/zyi3r06OEysZ9++qluuOEGNyN6y5YtgV4ikGgIWoF4NFz179/fZVQtUGrWrJmWL1+uggULciyDIGilphWROuP1tddeczNe27Vr525755133IzXnj17at++fYFeIpBgBK1AHNjImdtvv12DBw923z/22GOaNWuW0qdPz3EMMDYXAKRixYq5YPWbb75Ro0aNdPr0aRfM2oxX25Hv8OHDHCaELIJWIJZ27typ2rVra+bMmS6bZ6NmbFoAO1wFB8oDgPOsPMDKBBYtWuTmRB8/flwvvPCCm/H6yiuvMOMVIYmgFYgFq1e1hqtvv/1W2bNnd8O+O3bsyLELIgStwL9ZY5Y1jNoZoZIlS+rgwYOugct23ZowYYLLxAKhgqAVuILPP/9cvXv3djVjVhpgXbk1a9bkuAUZalqBmGe82kis9evXu0DVNjzZtWuXG51lTaQW0DLjFaGAoBW4Atv72zIVViM2ffp05cmTh2MWhKhpBS7PJgvYZgQ249VKBLJkyeIat2zTApt8YiP7gGBG0AogLFAeAMROmjRp3DawNuN1wIABbsbr6tWr3Qg/a96yMiggGBG0AggLBK1A3FxzzTV6/vnn3SzXBx54wGVirRyqQoUKbmyWzX4FgglBK4CwQNAKxE+uXLk0evRobdy4Ue3bt3e3TZs2zTVu2YYFe/fu5dAiKBC0AgirmlY2FwDix2a52k5/Vh5wyy23uMkCr7/+upv9ahuqMOMVgUbQCiAskGkFEsf111+vTz75xDVmVatWzc14tQ1VbMbr0KFD9ffff3OoERAErQhrdepIffp41wsVkkaM8N9rDxxo//j77/UiHUErkLhuvPFGrVixQrNnz1apUqXcjNd+/frp2muv1ZtvvsmMV/gdQSsixpo1Urdu/nu9Rx6RFixI2tewQPyqq6JfHn88+n127JBuvVW6+mopWzbpwQftVLrCDkErkDQzXps3b+5mvE6cOPHcjNeuXbuqbNmybodAZrzCXwhaETGyZ5fSpfPf66VPL2XNmvSv89xzkvVJ+C4DBpz/2ZkzUpMm0rFj0rJl1lwhffCB1Levwg6bCwBJJ3ny5OrUqZOb8Tps2DBlzZrVNW61atXKlRDYdrFAUiNoRcS4uDxg40apVi2bWSiVKiXNn+9lKmfPjt3z7d4ttW0rZc7sBafNm0vbtsVcHtCpk9SihTR4sJQzp5Qpk/Tss5Ltotivn5Qli5QvnzRhQtzeV4YM1v17/mLBss+8edKGDdJbb9le5FK9etIrr0jjxkl//aWwwuYCgH9mvD700ENuxutTTz2lq6++2m1zfdNNN7mNWGwTFiCpELQiIp096wWQlnldvVoaO1bq3z/2jz9+XKpb1wsQlyzxsph2vVGjy596X7hQ2rPHe8ywYV5g27SpF/jaOrp39y47d8Z+LS+/7AXNFiAPGhT99VeulMqUkS7cxKthQ8tKSmvXKqxQHgD4T8aMGfXcc8+5Ga89e/ZUypQpNW/ePFWsWFF33HGHfv75Z34dSHQErYhIloHcskWaMkUqX97LuFrAF1t2mj1ZMmn8eKlsWalkSWniRK9+9HI7IVo2deRI6brrpM6dva8WAD/5pFS8uPTEEzaySVq+PHbr6N3bW4udmevZ08sk9+hx/uf79nlZ3QtZgGyvYT8LJwStgP/lzJlTo0aNcqUCHTp0cDWw7733nmvcuv/++5nxikRF0IqItGmTlD+/dzrdp0qV2D/espS2WYydmrcMq10sID1xwguGY1K6tBfs+lhAaUGvT/LkXtb0t99it46HHrIOX6lcOalrV+mNN6Q335QOHDh/Hyt5uFhU1KVvD2XUtAKBY+Ow3nrrLTfjtXHjxm6ywBtvvOFmvz755JP6888/+fUgwQhaEZESGrRZeUHFitK6ddEvmzdL/7+hzCWlTBn9e1vDpW6z54+PatW8r77dFy0ovzijeuiQdOrUvzOwoY6aViDwypcvr48//lhffvmlatSo4Wa6vvjiiy6oHTJkCDNekSAErYhIJUp4p/L3748+Eiu2KlSQrGQrRw6pWLHol2uuUcB8+633NXdu72v16tIPP3hTBS4sjUid2gu6wwnlAUDw+M9//qNly5Zpzpw5Kl26tA4dOqTHHntMxYsX1/jx45nxinghaEVEql/ftiyUOnaU1q/3akh9jVixycB26ODNPLWJAUuXSlu3Sl9+6dWY7tolv7Amq+HDvQyvvf706dJ990nNmkkFCnj3adDAm4xw111eQGtzY21+7L33WiOFwgpBKxBcrL61WbNm+u677zRp0iQVKFBAu3fv1r333qsyZcpoxowZzHhFnBC0IiJZ7aiNtjp6VKpc2asH9c03tRFYV2JTB2wCgAWHLVt6jVjWWGW7G/orGLRs6Xvvebt+WWD69NNeMPruu9Hf58cfe++pZk2pTRtvasLQoQo7BK1A8M547dixo5vxOmLECGXLlk2bNm3S7bffripVqmhBUu/CgrBxVRRbWQCOZVttioDVg1oWNqFsEoBlYW0cFpLeNddco7/++sv9x2inIAEEJ/t7ahsUvPLKKzpqmQN39qu+q321kVlATMi0ImLNmiV98YW3IYBtLGBbvFo2MqEBqzV52QQBSx7YtAD4B5lWIHRmvA4cONDNeH3wwQfdjNcvvvhClSpVUtu2bd0HT+BSCFoRsY4c8WaaWlOW7VZlZQJz5ng/s12rfKOsLr7ccsvln/fwYe90vc1Ctfmr8ZWQNUQaO2FE0AqElhw5cujVV191pQJ33XWXq4GdPn26m/F63333aY/txAJcgPIA4BIOHvQul5I2rZQ3b2SsIZTGXaW2Il830uuQMtkeuQBCyvr169W/f3999NFH7vu0adO6TKxNHchsu6Ig4hG0Agh5VheXwXZ6kHTs2DGls045ACHJRmU9/vjjWv7/WwPah1D7vlevXvzdjnCUBwAIeb7SAOPLuAIITbVq1dLSpUv14YcfutFYtpuWBa3WYDl27Fidst1REJEIWgGETdBqo3XsAiC0WX3rrbfeqnXr1mnKlCkqWLCgq3G1WlcLZN9//31mvEYgglYAIY8mLCA82YdQa9KyZi1r2sqePbubLtCmTRtVrlxZ8230CyIGQSuAsAlaU9nIBgBhx8p+rCnLxmTZuKz06dNr7dq1br6rXb7++utALxF+QNAKICymBxjqWYHwZg2XzzzzjAtee/fu7T6oWrbVsq62w5ZlZBG+CFoBhDzKA4DIm/FqW8JakHr33Xe7GtgZM2aodOnS6tatm3bv3h3oJSIJELQCCHkErUBkKlSokCZPnuxmvFrj1pkzZzRu3DgVK1bMzXc9GNOwa4QkglYAIY+gFYhsNlHARmTZjFcbmXXixAkNGTJERYsW1UsvvaTjx48HeolIBAStAMKmppVGLCCy1axZU0uWLHG7apUtW9bNeH3iiSdc5nXMmDHMeA1xBK0AQh6ZVgA+Vt/apEkTffvtt5o6daorIdi7d6+6d+/ual6nT5+us2fPcsBCEEErgJBH0ArgUjNe77zzTm3cuFEjR450M15//vlntW3b1k0bmDdvHhsUhBiCVgAhj6AVQExsFF6vXr3cmKxnn33Wjc365ptv1LBhQ9WrV09r1qzh4IUIglYAIY+aVgBXYsHq008/7YLXPn36uBr4hQsXqkqVKmrdurXLyCK4EbQCCHlkWgHElpUJDB8+3G0H26lTJyVLlkwffPCBq3e99957tWvXLg5mkCJoBRDyCFoBxFXBggU1ceJEN+O1efPmrjlr/PjxKl68uB599FFmvAYhglYAIY+gFUB8WYZ19uzZWr58uWrXru1mvP73v/9VkSJF9OKLL+rYsWMJPrh16kh9+njXCxWSRozw3+9r4EDp+usVFghaAYRN0MqcVgDxVaNGDX355Zf6+OOPVa5cOR0+fFhPPvmkm/H6+uuvJ9qMV+v76tbNf7+nRx6RFizwz2vZP8UWIF91lbRu3fnbDxyQGjWS8uSxxjgpf36pZ0/pr7/i9vwErQDCphHLuoQBICEzXhs3buxmvL711lsqXLiw9u3bpx49eqhkyZKaNm1agme8Zs8upUvnv99R+vRS1qz+ea1HH/UC04slSyY1by59+KG0ebM0aZI0f77UvXvcnp+gFUDIozwAQGKy5qwOHTq4iQKjRo1Sjhw53NSBdu3aqVKlSvr888/jPeP14vIAG1pQq5aUJo1UqpQXzFmmcvbs2D3f7t1S27ZS5sxecGrB4bZtMZcHdOoktWghDR4s5cwpZcokPfusdPq01K+flCWLlC+fNGFC3N7Xp59K8+ZJQ4f++2e2tvvvlypVslpi6eabpR49pKVL4/YaBK0AQh5BK4CkYCVHPXv2dAHrc88958ZmWRa2UaNGuummm7R69eoEPb8lbS2AtMyrPdXYsVL//rF//PHjUt26XjZ1yRJp2TLvup2K//8TUJe0cKG0Z4/3mGHDvMC2aVMvuLR1WAbULjt3xm4d+/dL994rTZ0auyyyvfbMmdKNNypOCFoBhDyCVgBJKX369Hrqqaf066+/6uGHH3bB7OLFi1WtWjW1bNlSW7dujdfzWmZyyxZpyhSpfHkv4zpoUOwfP22ad+p9/HipbFmpZElp4kRpxw5p8eKYH2fZ1JEjpeuukzp39r5aAPzkk1Lx4tITT1jALi1ffuU1WMLZsrcW5Fom9XLatfOC2rx5pYwZvXXHBUErgJDH5gIA/CFbtmx65ZVX3Haw99xzjysjmDVrlm6//fZ4Pd+mTV5TUq5c52+rUiX2j1+7VvrlF9s4wcuw2sUC0hMnvGA4JqVLe8Guj5UJWNDrkzy5V2rw229XXsOoUV5DlQW6VzJ8uPTNN17pg63v4YcVJynidncACD5kWgH4U4ECBTRhwgT17dtXAwYM0Pbt2+P1PJaltPrVhJQXVKwovf32pRu+YpIyZfTvbQ2Xui02PWdWarBqlTcV4EKWde3QQZo8+fxtFpzbpUQJLyiuXVt66ikpd27FCkErgJBH0AogUDNeLdNqGxTEhwVvdirfakIt2+kbiRVbFSpI770n5cjhnW4PBCszeOGF6PWqDRt666paNebH+frY/n9iYawQtAIIeQStAALJ5rrGR/36UtGiUseO0pAh0pEj5xuxYpOB7dBB+u9/vYkBzz3ndf1bEGxNTjYJwL5PagUKRP/eShSMvS/f63/yiReYV67s/XzDBm88Vs2a3jSF2KKmFUDIo6YVQCiy2lGr7zx61AvounaVBgzwfmYjsK4kXTpvAoAFji1beo1Y1lj199+By7xeStq00rhxXqOZrdF2B7NpBR99FLfnIdMKIOSRaQUQzC7s5L9whqqvRMBGVfn4OvaLFYvdc+fKFb1u9GJ2+t2X/TQ22P9y64tpnbFlmdOLR9jaWK4VK5RgBK0AQh5BK4BQNWuWF1TaqCmbBNC7t3fa3E6vJ0RUlPTrr94WrjfcoLBAeQCAkEfQCiBUWR2r7Q5lGVebd2plAnPmeD+zXat8o6zSX3S55ZbLP+/hw94OWzZv1eavxldC1pDYroqK7z5kABAkSpQooU2bNrlh3zfGdYsVAAhSBw96l5jqRPPmjYw1+FAeACBsGrFSXzwoEABCmG0UYJdIX4MP5QEAQh7lAQAQ/ghaAYQ8glYACH8ErQBCHkErAIQ/aloBhLxSpUrp1KlTuvrqqwO9FABAEmF6AAAAAIIe5QEAAAAIegStAAAACHoErQAAAAh6BK0AAAAIegStAAAACHoErQDCRp06Up8+3vVChaQRI/z32gMHStdf77/XA4BIQ9AKICytWSN16+a/13vkEWnBAv+81smTXoB81VXSunXnb580ybvtUpfffvPP2gAgqbC5AICwlD27f18vfXrv4g+PPirlySN9913029u2lRo1in5bp07SiRNSjhz+WRsAJBUyrQDC0sXlARs3SrVqSWnS2A5a0vz5XgZy9uzYPd/u3V5QmDmzlDWr1Ly5tG1bzOUBFiy2aCENHizlzCllyiQ9+6x0+rTUr5+UJYuUL580YULc3tenn0rz5klDh/77Z2nTSrlynb8kTy4tXCh16RK31wCAYETQCiDsnT3rBZDp0kmrV0tjx0r9+8f+8cePS3XrepnUJUukZcu865bV/OefmB9nAeOePd5jhg3zAtumTb3A19bRvbt32bkzduvYv1+6915p6lTvvVzJlCne/Vq3jv17BYBgRdAKIOxZZnLLFi+IK1/ey7gOGhT7x0+bJiVLJo0fL5UtK5UsKU2cKO3YIS1eHPPjLJs6cqR03XVS587eVwuAn3xSKl5ceuIJKVUqafnyK68hKsrL3lqQW6lS7NZtWdz27b0MLACEOmpaAYS9TZuk/Pm9U+Y+VarE/vFr10q//CJlyBD9dqsVtWA4JqVLe8Guj5UJlClz/ns7fW+lBrFpkho1SvrrLy/QjY2VK6UNG7xAHQDCAUErgLBnWUqrX01IeUHFitLbb8et4Stlyujf2xoudZs9/5VYqcGqVVLq1NFvt6xrhw7S5MnRb7essNXY2roBIBwQtAIIeyVKeKfyrSbUsp2+kVixVaGC9N57Xgd+xowKCCszeOGF899brWzDht66qlaNft+jR6Xp06UXX/T7MgEgyVDTCiDs1a8vFS0qdeworV/v1ZD6GrFik4G1TGa2bN7EgKVLpa1bpS+/lHr3lnbtkl8UKOCVFvgu117r3W7vy6YQXMgCWZtSYOsGgHBB0Aog7FntqI22sgxk5cpS167SgAHez2wE1pVYB75NALDAsWVLrxHLGqv+/jtwmdfLefNNb502pQAAwsVVUVFW7QUAkcWyrTZFwBqsLFuZUNYgZVlYG4cFAEh81LQCiAizZnmzVW3UlAWqdmq/Zs2EB6z2sf/XX70tXG+4IbFWCwC4GOUBACLCkSNSjx5eU5bNO7UygTlzvJ/ZrlW+bVgvvtxyy+Wf9/Bhb4ctm7dq81fjKyFrAIBIQHkAgIh38KDc5VJsMH/evJGxBgAIZgStAAAACHqUBwAAACDoEbQCAAAg6BG0AgAAIOgRtAIAACDoEbQCAAAg6BG0AgAAIOgRtAIAACDoEbQCAAAg6BG0AgAAIOgRtAIAACDoEbQCAAAg6BG0AgAAIOgRtAIAACDoEbQCAAAg6BG0AgAAIOgRtAIAACDoEbQCAAAg6BG0AgAAIOgRtAIAACDoEbQCAAAg6BG0AgAAIOgRtAIAACDoEbQCAAAg6BG0AgAAIOgRtAIAACDoEbQCAAAg6BG0AgAAQMHu/wCrjNRQrXkNVQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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SFLFixd3c0eTJ0/uZrkOHz6cI36R48eP63//+9+5WmCraQUAANERtCLJ1a9f/1y9Zr9+/fTpp59y1C8wefJkHThwQIULF9Ztt93GsQEA4BIIWuEXvXr1UteuXd2GA3fccYc2btzIkf//LXB92ec+ffooRYoUHBcAAC6BRiz4jdVs1qtXT0uXLnVlA6tXr1bmzJkj+jdgu4jZtACr+925c6fSp08f6CUBABCUyLTCb3w7ZRUsWFA///yz2rRpo9OnT0f0b8C3Zet9991HwAoAwGWQaYXfrV+/3nXIHzt2TA8++KBeffXViPwtrFmzRlWqVHElAdu2bVPevHkDvSQAAIIWmVb4Xbly5TR16lR3feTIkRo/fnxEZ1nbtWtHwAoAwBWQaUXAvPDCC3rqqaeUMmVKLViwQLVr146Y34ZlVosWLeoasdatW6fy5csHekkAAAQ1Mq0ImP79+6tt27Y6deqUWrZs6QK5SGElERawWmMaASsAAFdGphUBH6z/n//8R2vXrnVlA8uXLw/7hiTb3jZ//vw6evSom1nbqFGjQC8JAICgR6YVAZUuXTrNnj1buXLlcg1ad911l8tAhrNx48a5gLV06dJq2LBhoJcDAEBIIGhFwOXLl0+zZs1S6tSpXQD7zDPPKFxZKYQ1n5mHH36YLVsBAIglglYEhWrVqrkMpK9B67333lM4mj59unbt2qWcOXOqQ4cOgV4OAAAhg6AVQcNKA/r16+eud+rUydW5hpOoqCgNHTr03La2llkGAACxQyMWgsqZM2fUvHlzffzxx252qQ3gz507t8LBwoULdfPNNytt2rRuy9asWbMGekkAAIQMMq0IKsmTJ9c777yjkiVLavfu3brtttt04sQJhdNmAvfccw8BKwAAcUSmFUHpl19+cVucHjp0yJUNTJ48OaSbln766SeVKlXKvYfNmzerWLFigV4SAAAhhUwrgpIFdTNmzHCZV9vy1VcLGqqGDRvmvlrpAwErAABxR6YVQe21115Tz549XYZy7ty5atKkiULN/v37VbBgQZ08eVJLly5VrVq1Ar0kAABCDplWBLUePXrovvvuc5337dq104YNGxSKgbcFrFbuULNmzUAvBwCAkESmFSExkL9+/fr68ssvVbRoUa1evTpkGplsm9oCBQrowIEDbkbr7bffHuglAQAQksi0IuilTJnS1bcWLlxYW7ZsUZs2bVwgGwqmTJniAtZChQq5SQgAACB+CFoRErJly6YPP/xQ6dOnd/NOH3roIQW7s2fPavjw4e56nz59lCJFikAvCQCAkEXQipBRpkwZvf32264py+pEx4wZo2D20UcfufFW11xzjTp37hzo5QAAENIIWhFSmjVrpkGDBrnrNlVg8eLFCvbNBKyRLEOGDIFeDgAAIY1GLIQcmyRw5513up2zrCHrq6++UpEiRRRMbPtZmxZgJQFbt25Vvnz5Ar0kAABCGplWhBwrDxg/frwqV67smpxsYP+RI0cUjFlWG9NFwAoAQMKRaUXI2r17twtc9+7d68oGZs2apWTJAv85bPv27W4015kzZ7Ru3TqVL18+0EsCACDkBf5/eCCe8ubNq9mzZyt16tRussCAAQOC4li++uqrLmC9+eabCVgBAEgkZFoR8qy2tUOHDu66TRdo3759wNZy+PBh5c+f35UrfPLJJ7rlllsCthYAAMIJmVaEPAtSH3/8cXe9S5curgkqUMaNG+cC1lKlSqlRo0YBWwcAAOGGTCvCgg3yb9GihebOnavcuXPr66+/Vp48efy6Btuly6YY7Nq1yzWKWQANAAASB5lWhAVrwLLSgNKlS7vGLAtg//77b7+uYfr06S5gzZEjx7lyBQAAkDgIWhE2bIC/NWTZ7FYrEejataub6eoP9jq+MVe9evVSmjRp/PK6AABECoJWhBU7PT9jxgw31N8atF5++WW/vK7tzPXtt98qbdq0uv/++/3ymgAARBKCVoSdOnXqaNSoUe76k08+6epck5ovy9qpUyeX6QUAAImLRiyErQceeED/+9//lD59eq1cuVJlypRJktf56aef3LQA26lr06ZNKl68eJK8DgAAkYxMK8LWiBEjVLduXR09etTtmPXHH38kyesMHz7cfbXXIGAFACBpkGlFWDtw4ICqVq2qLVu2uLKBefPmKWXKlIn2/Pv371fBggV18uRJLVmyRLVr10605wYAAOeRaUVYs/pSmyhgkwWsWerBBx9M1Oe38gMLWKtUqaJatWol6nMDAIDzCFoR9qze1CYJWM3pG2+84QLNxHDixAktW7ZMN9xwg55//nn3/AAAIGlQHoCIYeOvbLvX5MmTuzKBm266KdBLAgAAsUTQiohhGwDcfffdeuutt5QlSxZ99dVXKlq0aKCXBQAAYoGgFRHFTunf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+OHDh6t58+YuYL355pvdlqwErACCBUErEKFozIKPTQXo3r27Hn74YRe82vasn376qTJnzsxBAhA0KA8AItxLL72kJ554QilTpnSjjGrUqBHoJcGP/vzzTzfGav78+W6m79ChQ/XQQw+56wAQTAhagQhHY1bk2rJli2u42rhxo66++mq98847bmIAAAQjglYANGZFoGXLlqlFixY6cOCA8uXL5xqwrr/++kAvCwBiRE0rABqzIszUqVNdo5UFrJUqVXJbshKwAgh2BK0AHBqzImNLVtvV6u6779Y///yjli1b6ssvv1Tu3LkDvTQAuCKCVgDnNGrUSIMHD3bXe/bs6UYeITz8/fffbv7qoEGD3PePP/643n//faVLly7QSwOAWKGmFUA0NGaFn3379rn5q1YGYFMixowZo3vuuSfQywKAOCFoBfAv7JgVPtavX69bb71VO3bsUJYsWTRz5kzdeOONgV4WAMQZ5QEA/oUds8LDJ598opo1a7qA9dprr9WqVasIWAGELIJWAJdEY1Zol3iMHDnSZVgta163bl2tXLlSxYsXD/TSACDeCFoBxIjGrNBz+vRp10TXu3dvNy2gS5cu+uyzz1xpAACEMmpaAVwWjVmh4/Dhw2rTpo3mzZvntmEdMmSI+vbty5asAMICQSuAK6IxK/ht3brVbcm6YcMGN8bq7bffdjteAUC4oDwAwBXRmBXcbJ5u1apVXcCaJ08eLV26lIAVQNghaAUQKzRmBad33nlHN910k37//XfdcMMNbhZrhQoVAr0sAEh0BK0AYo3GrOCqNR44cKA6dOigkydPusyqZVjz5s0b6KUBQJKgphVAnNCYFXgnTpxwO1pNmzbNff/oo4/qxRdfVLJk5CEAhC+CVgBxRmNW4Ozfv99lVW2jgBQpUuiNN95wY60AINzxsRxAnNGYFRg//PCDa7iygDVz5sxutBUBK4BIQdAKIF5ozPIv2yCgRo0a2r59u4oVK+YCV9vpCgAiBUErgHijMcs/Ro8erSZNmujIkSO68cYbXcB67bXX+unVASA4UNMKIEFozEraLVkfeughF7SaTp06acyYMUqVKlUSvioABCeCVgAJRmNW4vvrr790xx136NNPP3Xf23SAxx57jC1ZAUQsglYAiWLLli2qVKmS/vzzT3Xr1s1lBBE/VrdqW7Ja41XatGn11ltvqWXLlhxOABGNmlYAiYLGrMRh9apVqlRxAWvu3Lm1ZMkSAlYAIGgFkJhozEoY2yygTp06+u2333T99de7LVktew0AoDwAQCKjMSt+x+z555/XM888476/9dZb9c4777h5uAAADzWtABIdjVlx25K1a9euevvtt933ffv21csvv6zkyZPzJxMALkBNK4BEx45ZsfP777+rXr16LmC1LVnHjh2roUOHErACwCWQaQWQpLs4NW7c2J3+tmkCNlUAng0bNrgJAVu3btU111yjDz74QDfffDOHBwBiQKYVQJKhMevSvvjiC1WvXt0FrEWKFHETAwhYAeDyyLQCSFI0ZkX3xhtvqGfPnjpz5oxq1aqlWbNmKVu2bPwpBIArINMKIEldddVVmjhxosqUKaN9+/apdevWOnnyZMQddQtSbUvW+++/312/++67NX/+fAJWAIglglYASS7SG7OOHDmi5s2ba8SIEe77QYMGadKkSUqdOnWglwYAIYPyAAB+E4mNWTt27HBzV9evX680adJoypQpuv322wO9LAAIOQStAPzqpZde0hNPPKGUKVNq8eLFqlGjRtj+BmxHq2bNmmn//v3KmTOnPvzwQ7dFKwAg7ghaAfhVpDRm2fu766673OYB5cqV09y5c1WgQIFALwsAQhY1rQD8KtwbsywoHzx4sCsBsIC1SZMmWrZsGQErACQQQSsAvwvXxiwLvjt16qT+/fu77/v06aM5c+YoQ4YMgV4aAIQ8ygMABEw4NWb98ccfatmypZYuXeq2YR09erS6d+8e6GUBQNggaAUQUOHQmLVx40a3JeuWLVuUMWNGvf/++2rQoEGglwUAYYWgFUBAhXpj1oIFC1xd7p9//qnChQvro48+UqlSpQK9LAAIO9S0AgioUG7MGjt2rBo2bOgC1po1a2r16tUErACQRAhaAQRcqDVm2Tasffv21X333eeud+jQwW3Jmj179kAvDQDCFkErgKBQtGhRvfvuuy7zahlMuwSjo0ePuoarYcOGue+fe+45TZ061e12BQBIOtS0AggqwdyYtWvXLrcl67p165Q6dWpNnjxZbdu2DfSyACAiELQCCCrB2pj19ddfuy1Z9+7dqxw5crj5q9WqVQv0sgAgYhC0AgjKU/DVq1fXDz/84L4uWrTIZTYDZebMmbrzzjv1999/u4Yx25K1UKFCAVsPAEQiglYAQclmnlaq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9ddfAVsjAIQaglYAAWMNTP/5z3/0/vvvK2XKlHrzzTf13//+V8mTJ4/3c/pqWpOiESuuUqRI4bKrX3zxhTZs2KCePXu66QcbN25Ur169lDdvXnfbTz/9FOilAkDQI2gFEBBff/212+HKaj+zZs3qTpt37tw5wc8bDJnWSylZsqRGjRrlAnXLspYoUUJHjx7Va6+95jKvlo21DPPp06cDvVQACEoErQD8zuadWoZ1z549LmCzBib7PjEEa9DqkzFjRj3wwAMu82qBumVibZTXggULdNttt6lo0aJuvNfvv/8e6KUCQFAhaAXgN9aAZLWrbdu2daOgGjdurJUrV7ompcQS7EHrhTNfb775Zlfz+uuvv7oaWMs479ixQ0888YSbOmCTCNasWRPopQJAUCBoBeAXFqS2b9/eTQkwDz30kD788EOXeUxMSbm5QFKxbWlt2oBtqmDTBypWrOjex5QpU1wJhc2AtVmwvvcGAJGIoBVAktu7d6+bv2pzWK05ady4cW471IQ0XAV6c4GkkCZNmnPZVZv7avNfLfi28om7777bZV9tF67E3KIWAEIFQSuAJPXNN9+4+aUWiGXJksV10nft2jXJXi9UygOuVDrgy65auYDtvGWTBqzOdfDgwW5+batWrbRo0SJmvgKIGAStAJLMBx98oFq1armOeeuWt4xhnTp1kvSIh0PQeqGcOXO67Oq2bds0Y8YMd/xs5uvMmTN10003uZ3DXn/9dTeJAADCGUErgCRpuBo0aJBat27talkbNmzoTndbZ3xSC8Wa1tiwsgpfdvX7779X9+7ddfXVV7spBD169HCZ2N69e2vTpk2BXioAJAmCVgCJyrZhtVrMAQMGuO8tkProo490zTXX+OVIh3JNa2z5squWwX711VdVvHhxt7vWyJEjXUbbPiTMnTtXZ86cCfRSASDRELQCSDT79u1zp6/feecdlxl84403NGLECHfdX8KtPOBy7IPAgw8+6HbY+vzzz3Xrrbe6eth58+apWbNmKlasmNth7MCBA4FeKgAkGEErgESxbt06N55p9erVypw5swui7rvvPr8f3UgKWn1sc4IGDRq4EWJbtmxRv3793O/A6mAfffRR5cuXT126dHFNcQAQqghaASSYbT9as2ZNN4rpuuuuc4GrNQkFQiQGrRcqXLiwhgwZ4ma+vvnmm7r++utdycaECRPc/Ff7PVkm3FdGAQChgqAVQIIarmzLUdt+9Pjx46pfv75ruLIay0DxBWPh1ogVV+nSpVPnzp1ddnX58uVq166dK9NYsWKFOnTooAIFCujpp592dbEAEAquirL/dQAgjix7161bNzdL1PTs2VPDhw/3a/3qpeTKlUv79+/Xd999p3LlygV0LcG4yYNt7GC1xnbd2AYPLVu2dL+/2rVru5pYAAhGBK0A4syCQsuurly50gU91rVuY5eCgdVy/vnnn645yUoV8G+nTp3SrFmzNHr0aC1duvTc7WXLlnXBq2VibZwWAAQTglYAcbJ+/XrXpW47NWXKlEnvv/++6tWrF1SnxW027NatW93OUbjy7/O1115zGXM7br6pBFZaYB9EbAIBAAQDglYAsWbd6e3bt9exY8dc3arNAg22bKZlfm3HKKvVzJMnT6CXEzIOHTqkSZMmuQDWJhD43HLLLS772qhRIzelAAAChaAVwBVZ6bvN+3z88cfd9ZtvvlnTp09XlixZguro2TB9X03tH3/8oaxZswZ6SSHHAn4bV2alA5988sm52203M8u83nPPPa4EAwD8jaAVwBVHSNm81cmTJ7vv77//frcLU8qUKYPuyNkEA18t5pEjR5Q+ffpALymk/fLLL27nLRuXZXXCJm3atG7HswceeEDly5cP9BIBRBCCVgAx+v33313DlY1MslPDFqzaqeJgPsXty/7a6KtgDKxDkZWD2GzXUaNG6fvvvz93e61atdyfB5s+wLEGkNQIWgFc0g8//OAarmxXJWvMsXIA23Up2LeRzZ0797nT3IxvSlxWGrJs2TJXOvDBBx+4cgxjx9yy8TYCzXf8ASCxEbQC+JePPvrIDaM/evSoq2W070uUKBH0R8omGhQsWNDthmVzZJF0rNFt7NixGjNmjBuBZqyeuHXr1i77WqNGDT40AEhUBK0AomXShg0b5vaut+t16tTRjBkzQqah6eeff9a1116rjBkz6vDhw4FeTkSwMgzLulr21Xbb8rHtYy14tQ8/NoYMABKK+SUAzgUfXbt21SOPPOIC1nvvvVfz5s0LmYDV1zRmLNMK/7Dtci0wtbrntWvXuvmuadKk0bp169yfp3z58rkPQb/++iu/EgAJQqYVgBsP1apVKy1ZssQ1XFm29cEHHwy507sWNFWqVMkFSjt37gz0ciLWgQMH3MSB//3vf64m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AICwQnkA4CeWUb3ppptcwFqhQgWtWbOGgDUR+UoDDEErAIQfglbADw1Xjz76qO655x7XcNW6dWs34iovc2SSJGhNliyZUqTgJBJCx5EjRzR69GjVqFHDfaC1y4MPPqiff/450EsDggpzWoEk/s+oQ4cOmjt3rvveNguwpisLrJC4tm3bpsKFC7s64b9tY3YgxOzdu9ftgjdu3Dj3Ydd2wmvfvr27rUiRIoFeHhBw/M8JJJHt27erZs2aLmC109Vvv/22+8+HgDVpa1opDUCosjr3119/XT/99JNrzrTGQvt3o0SJEurVq5f2798f6CUCAUXQCiSBFStWqEqVKvr+++/dLk02f9UyJkg6jLtCuChevLgbgbd27Vo1bNjQlRVZ+UDRokX19NNPu5F5QCQiaAUS2dSpU1W3bl23nej111/vGq6qVq3KcU5iBK0IN1bb+tlnn2nhwoXuQ/CxY8f0/PPPu1KB4cOH68SJE4FeIuBXBK1AIjl79qyeeOIJ3X333e5UtY22shFX+fPn5xj7AUErwpV9CF61apU++OADXXfddTpw4IAefvhhd92mklj9KxAJCFqBRHD06FG1atVKL730kvv+ySef1IwZM3T11VdzfP1c08rGAghH1pTVsmVL/fDDDxo/frzy5cunHTt2uKkk5cqVczOffZtrAOGKoBVIIPuPo1atWpo9e7YLmKw8YNCgQTRc+RmZVkQCG+fWpUsXbd68Wf/973+VOXNmbdiwQS1atHAjs6x+HghXBK1AAqxcudLVmn333XfKkSOHFi9erDvvvJNjGgAErYgkadOm1SOPPKJff/3VndlJly6dKyGoU6eOGjdurHXr1gV6iUCiI2gF4slG0VitmY2hsdNzX331lapXr87xDBCCVkSiTJkyuTM7v/zyi3r06OEysZ9++qluuOEGNyN6y5YtgV4ikGgIWoF4NFz179/fZVQtUGrWrJmWL1+uggULciyDIGilphWROuP1tddeczNe27Vr525755133IzXnj17at++fYFeIpBgBK1AHNjImdtvv12DBw923z/22GOaNWuW0qdPz3EMMDYXAKRixYq5YPWbb75Ro0aNdPr0aRfM2oxX25Hv8OHDHCaELIJWIJZ27typ2rVra+bMmS6bZ6NmbFoAO1wFB8oDgPOsPMDKBBYtWuTmRB8/flwvvPCCm/H6yiuvMOMVIYmgFYgFq1e1hqtvv/1W2bNnd8O+O3bsyLELIgStwL9ZY5Y1jNoZoZIlS+rgwYOugct23ZowYYLLxAKhgqAVuILPP/9cvXv3djVjVhpgXbk1a9bkuAUZalqBmGe82kis9evXu0DVNjzZtWuXG51lTaQW0DLjFaGAoBW4Atv72zIVViM2ffp05cmTh2MWhKhpBS7PJgvYZgQ249VKBLJkyeIat2zTApt8YiP7gGBG0AogLFAeAMROmjRp3DawNuN1wIABbsbr6tWr3Qg/a96yMiggGBG0AggLBK1A3FxzzTV6/vnn3SzXBx54wGVirRyqQoUKbmyWzX4FgglBK4CwQNAKxE+uXLk0evRobdy4Ue3bt3e3TZs2zTVu2YYFe/fu5dAiKBC0AgirmlY2FwDix2a52k5/Vh5wyy23uMkCr7/+upv9ahuqMOMVgUbQCiAskGkFEsf111+vTz75xDVmVatWzc14tQ1VbMbr0KFD9ffff3OoERAErQhrdepIffp41wsVkkaM8N9rDxxo//j77/UiHUErkLhuvPFGrVixQrNnz1apUqXcjNd+/frp2muv1ZtvvsmMV/gdQSsixpo1Urdu/nu9Rx6RFixI2tewQPyqq6JfHn88+n127JBuvVW6+mopWzbpwQftVLrCDkErkDQzXps3b+5mvE6cOPHcjNeuXbuqbNmybodAZrzCXwhaETGyZ5fSpfPf66VPL2XNmvSv89xzkvVJ+C4DBpz/2ZkzUpMm0rFj0rJl1lwhffCB1Levwg6bCwBJJ3ny5OrUqZOb8Tps2DBlzZrVNW61atXKlRDYdrFAUiNoRcS4uDxg40apVi2bWSiVKiXNn+9lKmfPjt3z7d4ttW0rZc7sBafNm0vbtsVcHtCpk9SihTR4sJQzp5Qpk/Tss5Ltotivn5Qli5QvnzRhQtzeV4YM1v17/mLBss+8edKGDdJbb9le5FK9etIrr0jjxkl//aWwwuYCgH9mvD700ENuxutTTz2lq6++2m1zfdNNN7mNWGwTFiCpELQiIp096wWQlnldvVoaO1bq3z/2jz9+XKpb1wsQlyzxsph2vVGjy596X7hQ2rPHe8ywYV5g27SpF/jaOrp39y47d8Z+LS+/7AXNFiAPGhT99VeulMqUkS7cxKthQ8tKSmvXKqxQHgD4T8aMGfXcc8+5Ga89e/ZUypQpNW/ePFWsWFF33HGHfv75Z34dSHQErYhIloHcskWaMkUqX97LuFrAF1t2mj1ZMmn8eKlsWalkSWniRK9+9HI7IVo2deRI6brrpM6dva8WAD/5pFS8uPTEEzaySVq+PHbr6N3bW4udmevZ08sk9+hx/uf79nlZ3QtZgGyvYT8LJwStgP/lzJlTo0aNcqUCHTp0cDWw7733nmvcuv/++5nxikRF0IqItGmTlD+/dzrdp0qV2D/espS2WYydmrcMq10sID1xwguGY1K6tBfs+lhAaUGvT/LkXtb0t99it46HHrIOX6lcOalrV+mNN6Q335QOHDh/Hyt5uFhU1KVvD2XUtAKBY+Ow3nrrLTfjtXHjxm6ywBtvvOFmvz755JP6888/+fUgwQhaEZESGrRZeUHFitK6ddEvmzdL/7+hzCWlTBn9e1vDpW6z54+PatW8r77dFy0ovzijeuiQdOrUvzOwoY6aViDwypcvr48//lhffvmlatSo4Wa6vvjiiy6oHTJkCDNekSAErYhIJUp4p/L3748+Eiu2KlSQrGQrRw6pWLHol2uuUcB8+633NXdu72v16tIPP3hTBS4sjUid2gu6wwnlAUDw+M9//qNly5Zpzpw5Kl26tA4dOqTHHntMxYsX1/jx45nxinghaEVEql/ftiyUOnaU1q/3akh9jVixycB26ODNPLWJAUuXSlu3Sl9+6dWY7tolv7Amq+HDvQyvvf706dJ990nNmkkFCnj3adDAm4xw111eQGtzY21+7L33WiOFwgpBKxBcrL61WbNm+u677zRp0iQVKFBAu3fv1r333qsyZcpoxowZzHhFnBC0IiJZ7aiNtjp6VKpc2asH9c03tRFYV2JTB2wCgAWHLVt6jVjWWGW7G/orGLRs6Xvvebt+WWD69NNeMPruu9Hf58cfe++pZk2pTRtvasLQoQo7BK1A8M547dixo5vxOmLECGXLlk2bNm3S7bffripVqmhBUu/CgrBxVRRbWQCOZVttioDVg1oWNqFsEoBlYW0cFpLeNddco7/++sv9x2inIAEEJ/t7ahsUvPLKKzpqmQN39qu+q321kVlATMi0ImLNmiV98YW3IYBtLGBbvFo2MqEBqzV52QQBSx7YtAD4B5lWIHRmvA4cONDNeH3wwQfdjNcvvvhClSpVUtu2bd0HT+BSCFoRsY4c8WaaWlOW7VZlZQJz5ng/s12rfKOsLr7ccsvln/fwYe90vc1Ctfmr8ZWQNUQaO2FE0AqElhw5cujVV191pQJ33XWXq4GdPn26m/F63333aY/txAJcgPIA4BIOHvQul5I2rZQ3b2SsIZTGXaW2Il830uuQMtkeuQBCyvr169W/f3999NFH7vu0adO6TKxNHchsu6Ig4hG0Agh5VheXwXZ6kHTs2DGls045ACHJRmU9/vjjWv7/WwPah1D7vlevXvzdjnCUBwAIeb7SAOPLuAIITbVq1dLSpUv14YcfutFYtpuWBa3WYDl27Fidst1REJEIWgGETdBqo3XsAiC0WX3rrbfeqnXr1mnKlCkqWLCgq3G1WlcLZN9//31mvEYgglYAIY8mLCA82YdQa9KyZi1r2sqePbubLtCmTRtVrlxZ8230CyIGQSuAsAlaU9nIBgBhx8p+rCnLxmTZuKz06dNr7dq1br6rXb7++utALxF+QNAKICymBxjqWYHwZg2XzzzzjAtee/fu7T6oWrbVsq62w5ZlZBG+CFoBhDzKA4DIm/FqW8JakHr33Xe7GtgZM2aodOnS6tatm3bv3h3oJSIJELQCCHkErUBkKlSokCZPnuxmvFrj1pkzZzRu3DgVK1bMzXc9GNOwa4QkglYAIY+gFYhsNlHARmTZjFcbmXXixAkNGTJERYsW1UsvvaTjx48HeolIBAStAMKmppVGLCCy1axZU0uWLHG7apUtW9bNeH3iiSdc5nXMmDHMeA1xBK0AQh6ZVgA+Vt/apEkTffvtt5o6daorIdi7d6+6d+/ual6nT5+us2fPcsBCEEErgJBH0ArgUjNe77zzTm3cuFEjR450M15//vlntW3b1k0bmDdvHhsUhBiCVgAhj6AVQExsFF6vXr3cmKxnn33Wjc365ptv1LBhQ9WrV09r1qzh4IUIglYAIY+aVgBXYsHq008/7YLXPn36uBr4hQsXqkqVKmrdurXLyCK4EbQCCHlkWgHElpUJDB8+3G0H26lTJyVLlkwffPCBq3e99957tWvXLg5mkCJoBRDyCFoBxFXBggU1ceJEN+O1efPmrjlr/PjxKl68uB599FFmvAYhglYAIY+gFUB8WYZ19uzZWr58uWrXru1mvP73v/9VkSJF9OKLL+rYsWMJPrh16kh9+njXCxWSRozw3+9r4EDp+usVFghaAYRN0MqcVgDxVaNGDX355Zf6+OOPVa5cOR0+fFhPPvmkm/H6+uuvJ9qMV+v76tbNf7+nRx6RFizwz2vZP8UWIF91lbRu3fnbDxyQGjWS8uSxxjgpf36pZ0/pr7/i9vwErQDCphHLuoQBICEzXhs3buxmvL711lsqXLiw9u3bpx49eqhkyZKaNm1agme8Zs8upUvnv99R+vRS1qz+ea1HH/UC04slSyY1by59+KG0ebM0aZI0f77UvXvcnp+gFUDIozwAQGKy5qwOHTq4iQKjRo1Sjhw53NSBdu3aqVKlSvr888/jPeP14vIAG1pQq5aUJo1UqpQXzFmmcvbs2D3f7t1S27ZS5sxecGrB4bZtMZcHdOoktWghDR4s5cwpZcokPfusdPq01K+flCWLlC+fNGFC3N7Xp59K8+ZJQ4f++2e2tvvvlypVslpi6eabpR49pKVL4/YaBK0AQh5BK4CkYCVHPXv2dAHrc88958ZmWRa2UaNGuummm7R69eoEPb8lbS2AtMyrPdXYsVL//rF//PHjUt26XjZ1yRJp2TLvup2K//8TUJe0cKG0Z4/3mGHDvMC2aVMvuLR1WAbULjt3xm4d+/dL994rTZ0auyyyvfbMmdKNNypOCFoBhDyCVgBJKX369Hrqqaf066+/6uGHH3bB7OLFi1WtWjW1bNlSW7dujdfzWmZyyxZpyhSpfHkv4zpoUOwfP22ad+p9/HipbFmpZElp4kRpxw5p8eKYH2fZ1JEjpeuukzp39r5aAPzkk1Lx4tITT1jALi1ffuU1WMLZsrcW5Fom9XLatfOC2rx5pYwZvXXHBUErgJDH5gIA/CFbtmx65ZVX3Haw99xzjysjmDVrlm6//fZ4Pd+mTV5TUq5c52+rUiX2j1+7VvrlF9s4wcuw2sUC0hMnvGA4JqVLe8Guj5UJWNDrkzy5V2rw229XXsOoUV5DlQW6VzJ8uPTNN17pg63v4YcVJynidncACD5kWgH4U4ECBTRhwgT17dtXAwYM0Pbt2+P1PJaltPrVhJQXVKwovf32pRu+YpIyZfTvbQ2Xui02PWdWarBqlTcV4EKWde3QQZo8+fxtFpzbpUQJLyiuXVt66ikpd27FCkErgJBH0AogUDNeLdNqGxTEhwVvdirfakIt2+kbiRVbFSpI770n5cjhnW4PBCszeOGF6PWqDRt666paNebH+frY/n9iYawQtAIIeQStAALJ5rrGR/36UtGiUseO0pAh0pEj5xuxYpOB7dBB+u9/vYkBzz3ndf1bEGxNTjYJwL5PagUKRP/eShSMvS/f63/yiReYV67s/XzDBm88Vs2a3jSF2KKmFUDIo6YVQCiy2lGr7zx61AvounaVBgzwfmYjsK4kXTpvAoAFji1beo1Y1lj199+By7xeStq00rhxXqOZrdF2B7NpBR99FLfnIdMKIOSRaQUQzC7s5L9whqqvRMBGVfn4OvaLFYvdc+fKFb1u9GJ2+t2X/TQ22P9y64tpnbFlmdOLR9jaWK4VK5RgBK0AQh5BK4BQNWuWF1TaqCmbBNC7t3fa3E6vJ0RUlPTrr94WrjfcoLBAeQCAkEfQCiBUWR2r7Q5lGVebd2plAnPmeD+zXat8o6zSX3S55ZbLP+/hw94OWzZv1eavxldC1pDYroqK7z5kABAkSpQooU2bNrlh3zfGdYsVAAhSBw96l5jqRPPmjYw1+FAeACBsGrFSXzwoEABCmG0UYJdIX4MP5QEAQh7lAQAQ/ghaAYQ8glYACH8ErQBCHkErAIQ/aloBhLxSpUrp1KlTuvrqqwO9FABAEmF6AAAAAIIe5QEAAAAIegStAAAACHoErQAAAAh6BK0AAAAIegStAAAACHoErQDCRp06Up8+3vVChaQRI/z32gMHStdf77/XA4BIQ9AKICytWSN16+a/13vkEWnBAv+81smTXoB81VXSunXnb580ybvtUpfffvPP2gAgqbC5AICwlD27f18vfXrv4g+PPirlySN9913029u2lRo1in5bp07SiRNSjhz+WRsAJBUyrQDC0sXlARs3SrVqSWnS2A5a0vz5XgZy9uzYPd/u3V5QmDmzlDWr1Ly5tG1bzOUBFiy2aCENHizlzCllyiQ9+6x0+rTUr5+UJYuUL580YULc3tenn0rz5klDh/77Z2nTSrlynb8kTy4tXCh16RK31wCAYETQCiDsnT3rBZDp0kmrV0tjx0r9+8f+8cePS3XrepnUJUukZcu865bV/OefmB9nAeOePd5jhg3zAtumTb3A19bRvbt32bkzduvYv1+6915p6lTvvVzJlCne/Vq3jv17BYBgRdAKIOxZZnLLFi+IK1/ey7gOGhT7x0+bJiVLJo0fL5UtK5UsKU2cKO3YIS1eHPPjLJs6cqR03XVS587eVwuAn3xSKl5ceuIJKVUqafnyK68hKsrL3lqQW6lS7NZtWdz27b0MLACEOmpaAYS9TZuk/Pm9U+Y+VarE/vFr10q//CJlyBD9dqsVtWA4JqVLe8Guj5UJlClz/ns7fW+lBrFpkho1SvrrLy/QjY2VK6UNG7xAHQDCAUErgLBnWUqrX01IeUHFitLbb8et4Stlyujf2xoudZs9/5VYqcGqVVLq1NFvt6xrhw7S5MnRb7essNXY2roBIBwQtAIIeyVKeKfyrSbUsp2+kVixVaGC9N57Xgd+xowKCCszeOGF899brWzDht66qlaNft+jR6Xp06UXX/T7MgEgyVDTCiDs1a8vFS0qdeworV/v1ZD6GrFik4G1TGa2bN7EgKVLpa1bpS+/lHr3lnbtkl8UKOCVFvgu117r3W7vy6YQXMgCWZtSYOsGgHBB0Aog7FntqI22sgxk5cpS167SgAHez2wE1pVYB75NALDAsWVLrxHLGqv+/jtwmdfLefNNb502pQAAwsVVUVFW7QUAkcWyrTZFwBqsLFuZUNYgZVlYG4cFAEh81LQCiAizZnmzVW3UlAWqdmq/Zs2EB6z2sf/XX70tXG+4IbFWCwC4GOUBACLCkSNSjx5eU5bNO7UygTlzvJ/ZrlW+bVgvvtxyy+Wf9/Bhb4ctm7dq81fjKyFrAIBIQHkAgIh38KDc5VJsMH/evJGxBgAIZgStAAAACHqUBwAAACDoEbQCAAAg6BG0AgAAIOgRtAIAACDoEbQCAAAg6BG0AgAAIOgRtAIAACDoEbQCAAAg6BG0AgAAIOgRtAIAACDoEbQCAAAg6BG0AgAAIOgRtAIAACDoEbQCAAAg6BG0AgAAIOgRtAIAACDoEbQCAAAg6BG0AgAAIOgRtAIAACDoEbQCAAAg6BG0AgAAIOgRtAIAACDoEbQCAAAg6BG0AgAAIOgRtAIAACDoEbQCAAAg6BG0AgAAQMHu/wCrjNRQrXkNVQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from openfe.utils.atommapping_network_plotting import plot_atommapping_network\n", + "\n", + "plot_atommapping_network(planned)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "751f8ad5-225a-461c-8951-cf35b9cb822e", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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ABBmhFac8f777+vaa6/V8ePHdc011+i9995TqVKl+IYAAEDEEVoRmDt3rvr06aMTJ04EP99++22VsB1jAAAAHiiwc1qzy/ab2aVHbSj+qlWr9NNPPwX3lyxZUh07dgxOhde2S2TFoNmzZ2vAgAHBd3LjjTdqxowZKlKkSKSXBQAAENvTA7777ju99tprevnll7Vly5Yz91966aUaPny4fvGLX8RMlXHatGm69dZblZSUpF/96leaPHmyCheOmf+XAQAABURMhtYUFtSs8mrh1U6Pnz59Ori/fPnyuuWWW3T77bcHV4CKVvbZX3311aAK3aVLF912220qVIiOEQAA4J+YDq1p2RWfrMo4ceJEff3112fu//nPfx5UX/v27atixYpFdI0AAACxitB6FuvrtLmkVn213fNWjTWVKlXSoEGDNGzYMNWvXz8S/1YAAAAxi9B6Hrt27QpOn7/yyivavXv3mftt05ZVX3v37s2GJQAAgDAgtIbAel1thulf//pXffjhh0EPqKlatWrQBzp06FDVrVs3v/+tAAAAYhahNZu2b9+uSZMmBcfevXvdlxgXp+7duwfV1169erH7HgAAII8RWnPo1KlTevfdd4Pqq136NEVCQoKGDBkSHDVr1syrfycAAICYRmjNA5s3bw6mDkyZMkXff/99cJ+NjrJLotrYLKvCxsfHKz907iy1bCk995xkHQojR7ojHMaMsStpSevWhef9AABA7CK05iG7BKpd/tQmDyxevPjM/XXq1An6XgcPHqzq1avnW2j97jupVCm7ypfC4uhR+8xSxYr59x7XX+9C8b59Nj9Xuvpq6YknpBo1Uh8zYoS0bJn0+eeSjdUlRAMAEH2YJJ+HbI5r//79tWjRIn355ZcaOXJkcKECm/s6evTo4DKxN9xwgz766KMzo7TyUuXK4QuspnTp/A2spksX6Y03pI0bpbfekuwCZjfckP4xti9u8GCpX7/8XQsAAIgcQms+sStpPfvss8GorKlTp+qyyy4LphC89dZb6tatmxo0aKAnn3wyuKRsXrH2AKu4ptiwQerUSSpeXGrSRLLW27g4d0o/FDbly4KgVTgtnPbubRvR0rcHWJU3xaBBUp8+0vjxNllBKldOevRRm74g3X+/VKGCZG2+kyeH/pl+8xvpkkusWi1ddpn0+99LK1daT3HqY154QbrzTunCC0N/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", + "text/plain": [ + "
" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "plot_atommapping_network(LigandNetwork(nodes=planned.nodes, edges=completed.edges))" + ] + }, + { + "cell_type": "markdown", + "id": "b9b19391", + "metadata": {}, + "source": [ + "## 6. Repair — by ligand name\n", + "\n", + "When you know which ligands should bridge the gaps, name the edges explicitly.\n", + "Here we chain one representative ligand from each fragment; in practice you'd\n", + "choose these from the chemistry." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "73cea531", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "bridging by name: [('lig_ejm_46', 'lig_ejm_31'), ('lig_ejm_31', 'lig_ejm_48')]\n", + "connected: True\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/hannahbaumann/.local/share/mamba/envs/openfe/lib/python3.13/site-packages/konnektor/network_planners/generators/explicit_network_generator.py:85: UserWarning: Generated network is not connected as a single network.\n", + " warnings.warn(\"Generated network is not connected as a single network.\")\n" + ] + } + ], + "source": [ + "def repair_by_names(completed, ligands, mapper, names):\n", + " \"\"\"Reconnect a broken network with bridging edges specified by name.\n", + "\n", + " Parameters\n", + " ----------\n", + " completed : LigandNetwork\n", + " The disconnected network to repair.\n", + " ligands : list[SmallMoleculeComponent]\n", + " The pool the named edges are drawn from. Must include any missing\n", + " ligands that are absent from ``completed``.\n", + " mapper : AtomMapper\n", + " Builds the atom mapping for each new edge.\n", + " names : list[tuple[str, str]]\n", + " The bridging edges to add, as pairs of ligand names, e.g.\n", + " ``[(\"lig_ejm_31\", \"lig_ejm_46\"), ...]``.\n", + "\n", + " Returns\n", + " -------\n", + " LigandNetwork\n", + " ``completed`` with the named bridging edges merged in.\n", + " \"\"\"\n", + " patch = generate_network_from_names(ligands=ligands, mapper=mapper, names=names)\n", + " return merge_two_networks(completed, patch)\n", + "\n", + "\n", + "reps = [sorted(frag.nodes, key=lambda n: n.name)[0].name for frag in fragments]\n", + "bridge_names = list(zip(reps[:-1], reps[1:]))\n", + "print(\"bridging by name:\", bridge_names)\n", + "\n", + "mapper = KartografAtomMapper()\n", + "\n", + "# include the missing ligand(s) in the pool, since they aren't in `completed`\n", + "ligands = list(completed.nodes) + list(missing)\n", + "repaired_network_by_name = repair_by_names(completed, ligands, mapper, bridge_names)\n", + "print(\"connected:\", repaired_network_by_name.is_connected())" + ] + }, + { + "cell_type": "markdown", + "id": "287fc9e5", + "metadata": {}, + "source": [ + "## 7. Repair — by lomap score\n", + "\n", + "You can also let the scorer choose the bridges: the concatenator proposes candidate edges\n", + "between fragments, scores them with lomap, and keeps the best. \n", + "`n_connecting_edges` determines how many edges to connect the fragments with." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "d06afced", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "connected: True\n", + "edges added: [('lig_ejm_31', 'lig_ejm_48'), ('lig_jmc_28', 'lig_ejm_47'), ('lig_ejm_47', 'lig_ejm_48'), ('lig_ejm_46', 'lig_ejm_48'), ('lig_ejm_46', 'lig_ejm_47'), ('lig_jmc_28', 'lig_ejm_48')]\n" + ] + } + ], + "source": [ + "def repair_by_score(fragments, mapper, scorer, n_connecting_edges=1):\n", + " \"\"\"Reconnect broken fragments with bridging edges chosen by score.\n", + "\n", + " Parameters\n", + " ----------\n", + " fragments : list[LigandNetwork]\n", + " The connected pieces to join back together, including single-node\n", + " networks for any missing ligands.\n", + " mapper : AtomMapper\n", + " Builds the atom mapping for each candidate edge.\n", + " scorer : Callable\n", + " Scores a mapping by expected difficulty (e.g. a lomap scorer).\n", + " n_connecting_edges : int, optional\n", + " Number of bridges to add per join, by default 1.\n", + "\n", + " Returns\n", + " -------\n", + " LigandNetwork\n", + " A single connected network: the fragments' edges plus the chosen\n", + " bridging edges.\n", + " \"\"\"\n", + " concatenator = MstConcatenator(\n", + " mappers=mapper, scorer=scorer, n_connecting_edges=n_connecting_edges\n", + " )\n", + " return concatenator.concatenate_networks(ligand_networks=fragments)\n", + "\n", + "\n", + "def repair_edges(repaired, completed):\n", + " \"\"\"The newly added bridges, i.e. what still needs simulating.\"\"\"\n", + " return list(set(repaired.edges) - set(completed.edges))\n", + "\n", + "mapper = KartografAtomMapper()\n", + "scorer = lomap_scorers.default_lomap_score\n", + "\n", + "repaired_network_by_score = repair_by_score(fragments, mapper, scorer, n_connecting_edges=2)\n", + "print(\"connected:\", repaired_network_by_score.is_connected())\n", + "\n", + "new_edges = repair_edges(repaired_network_by_score, completed)\n", + "print(\"edges added:\", [(e.componentA.name, e.componentB.name) for e in new_edges])" + ] + }, + { + "cell_type": "markdown", + "id": "7c2fa5f7", + "metadata": {}, + "source": [ + "## 8. Rebuild the alchemical transformations\n", + "\n", + "Turn the new repair edges into runnable transformations — a solvent and a\n", + "complex leg each — and write them out. Protein, solvent and cofactors come from\n", + "the reference complex system, and the **protocol (with all its settings) is the\n", + "one recovered from the results**, so the repair edges match the original run.\n", + "\n", + "The only exception is a charge-changing edge: the completed run may contain no\n", + "charge-changing example to copy, so we take the recovered settings and add the\n", + "explicit charge correction on top." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "fbdc9724", + "metadata": {}, + "outputs": [], + "source": [ + "import copy\n", + "\n", + "\n", + "def _formal_charge_difference(mapping):\n", + " a = Chem.rdmolops.GetFormalCharge(mapping.componentA.to_rdkit())\n", + " b = Chem.rdmolops.GetFormalCharge(mapping.componentB.to_rdkit())\n", + " return a - b\n", + "\n", + "\n", + "def _protocol_for(mapping, reference_protocol):\n", + " \"\"\"Reuse the campaign's protocol; add charge correction for charge changes.\"\"\"\n", + " if abs(_formal_charge_difference(mapping)) < 1e-3:\n", + " return reference_protocol\n", + " from openff.units import unit\n", + " settings = copy.deepcopy(reference_protocol.settings)\n", + " settings.alchemical_settings.explicit_charge_correction = True\n", + " settings.simulation_settings.production_length = 20 * unit.nanosecond\n", + " settings.simulation_settings.n_replicas = 22\n", + " settings.lambda_settings.lambda_windows = 22\n", + " return RelativeHybridTopologyProtocol(settings=settings)\n", + "\n", + "\n", + "def _components_from_reference(reference_complex_system):\n", + " protein = next(c for c in reference_complex_system.components.values()\n", + " if isinstance(c, ProteinComponent))\n", + " solvent = next((c for c in reference_complex_system.components.values()\n", + " if isinstance(c, SolventComponent)), SolventComponent())\n", + " cofactors = {name: comp\n", + " for name, comp in reference_complex_system.components.items()\n", + " if name.startswith(\"cofactor\")}\n", + " return protein, solvent, cofactors\n", + "\n", + "\n", + "def build_alchemical_network(repair_network, reference_complex_system, reference_protocol):\n", + " protein, solvent, cofactors = _components_from_reference(reference_complex_system)\n", + " transformations = []\n", + " for mapping in repair_network.edges:\n", + " protocol = _protocol_for(mapping, reference_protocol)\n", + " if protocol is not reference_protocol:\n", + " warnings.warn(\n", + " f\"charge-changing edge {mapping.componentA.name} -> \"\n", + " f\"{mapping.componentB.name}; added explicit charge correction\"\n", + " )\n", + " for leg in (\"solvent\", \"complex\"):\n", + " sysA = {\"ligand\": mapping.componentA, \"solvent\": solvent}\n", + " sysB = {\"ligand\": mapping.componentB, \"solvent\": solvent}\n", + " if leg == \"complex\":\n", + " sysA[\"protein\"] = sysB[\"protein\"] = protein\n", + " sysA.update(cofactors)\n", + " sysB.update(cofactors)\n", + " transformations.append(Transformation(\n", + " stateA=ChemicalSystem(sysA),\n", + " stateB=ChemicalSystem(sysB),\n", + " mapping=mapping,\n", + " protocol=protocol,\n", + " name=f\"{leg}_{mapping.componentA.name}_{mapping.componentB.name}\",\n", + " ))\n", + " return AlchemicalNetwork(transformations)\n", + "\n", + "\n", + "def save_transformations(network, out_dir):\n", + " out_dir = pathlib.Path(out_dir)\n", + " (out_dir / \"transformations\").mkdir(parents=True, exist_ok=True)\n", + " with open(out_dir / \"alchemical_network.json\", \"w\") as f:\n", + " json.dump(network.to_dict(), f, cls=JSON_HANDLER.encoder)\n", + " for transform in network.edges:\n", + " transform.to_json(out_dir / \"transformations\" / f\"{transform.name}.json\")" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "42ac44ab", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "wrote 12 transformations\n" + ] + } + ], + "source": [ + "# use the repair produced by the score-based strategy\n", + "repair_network = LigandNetwork(edges=new_edges)\n", + "\n", + "alchemical_network = build_alchemical_network(\n", + " repair_network, reference_complex_system, reference_protocol\n", + ")\n", + "save_transformations(alchemical_network, \"repair_transformations\")\n", + "print(\"wrote\", len(alchemical_network.edges), \"transformations\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.11" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}