From 5cb5db0f162986733a0ad5489219e7566e1a3b9a Mon Sep 17 00:00:00 2001 From: Kamran Ahmed Date: Wed, 17 Jul 2024 00:30:33 +0100 Subject: [PATCH] Redraw server side game developer roadmap using our editor --- .../game-developer/game-developer.json | 77 +- .../content/100-roadmap-note.md | 3 - .../102-data-transfer/congestion-control.md | 3 - .../flow-control/error-detection.md | 3 - .../102-data-transfer/flow-control/index.md | 3 - .../reliable-transmission.md | 3 - .../content/101-tcp/102-operations/index.md | 3 - .../102-mutex/semaphore.md | 3 - .../104-future-promises/channel.md | 5 - .../104-future-promises/coroutine.md | 3 - .../content/110-databases/100-rdbms/index.md | 3 - .../content/110-databases/101-nosql/index.md | 3 - .../110-databases/104-key-value/index.md | 3 - .../100-proactor/iocp/index.md | 3 - .../100-proactor/iocp/io-uring.md | 3 - .../100-proactor/iocp/registered-io.md | 3 - .../101-asynchronous/101-reactor/epoll.md | 3 - .../101-asynchronous/101-reactor/kqueue.md | 3 - .../101-asynchronous/101-reactor/select.md | 3 - .../101-asynchronous/101-reactor/wsa-poll.md | 3 - ...d => actor-model@KUQEgHldZPOLwFoXqQ2vM.md} | 0 ...dress-conversion@SBA7pa9o0AM0ZEBepd7UM.md} | 0 .../index.md => ai@dkCVwuy8GKeEi3VJar_Zo.md} | 0 ....md => akka-java@eAEpEUVZcSKO9uCIlMN5y.md} | 0 ...t.md => akknet-c@SsOz9Pj6Jc_55PgpmziL6.md} | 0 ....md => amazon-ml@U0RlO_puezQPZP0-iBXgW.md} | 0 ... => apache-kafka@gL7hubTh3qiMyUWeAZNwI.md} | 0 ... => apache-spark@yrWiWJMSyTWxDakJbqacu.md} | 0 .../index.md => api@a2pcxVTGdAPw8aLvdr19M.md} | 0 ...00-arp.md => arp@JI_wUdT2hjsrvbIhLvHcT.md} | 0 ... => asnc-await-c@mAXMpUDmhGOncnCRrENJv.md} | 0 ... => asynchronous@ThBxS9xIMt9OrXfnto3rW.md} | 0 ...02-aws.md => aws@Rkx2A6oWsddlCTseZlpRU.md} | 0 ...l.md => azure-ml@vBqwmlzoT5XVEhV9IeGso.md} | 0 ...zure.md => azure@73uoFNGcCALxIuRNbebav.md} | 0 ...er.md => barrier@6k25amPkU9lnZ7FMNn_T6.md} | 0 ...md => bsd-socket@U_tZFM80W3xJx8jj4skCr.md} | 0 ...yte-manipulation@H21PanCggDfQt34-JzgfO.md} | 0 ...-c-sharp.md => c@DuyUc9a-47Uz03yr4aeyg.md} | 0 ...md => capability@5kF1fqr-mn5-15e3aMa9k.md} | 0 ....md => cassandra@1jqSxk1nwByiQa1De81F3.md} | 0 ...x.md => category@NH2eQ1_nij1icTgoO027b.md} | 0 ...0-c-cpp.md => cc@E4H3hniIW6hKpH3Qr--N5.md} | 0 .../content/channel@SXOEMkcVYBsRza6BPmmwy.md | 0 ...m.md => checksum@XxBl-zO7CF6DpOZ2bMDxJ.md} | 0 ...m.md => checksum@tBOvBpDi3SOKZjAmkxdM0.md} | 0 ...dex.md => cipher@1788KFqsQBkYARqA0T5GX.md} | 0 ...x.md => cloud-ml@XvvlvDKfYRCcYtTdWohsd.md} | 0 ...ndex.md => cloud@hhtqvFfTCuVPT0OPu4Y1a.md} | 0 ...concurrency-java@RT9XvlxvIM_hHTtNmbva3.md} | 0 ...ndition-variable@xR6pERldq4wPl9GVLHAhT.md} | 0 ...ongestion-control@1GML0Jsfdb1Fn-0PNryiQ.md | 0 ...ngestion-control@jsNsyrGzegVnjIF2l52vI.md} | 0 ...ection-hijacking@ubRiY3jdh3iS3diN482IU.md} | 0 ...md => connection@5sI3RHaLudq4TfpjoYeOp.md} | 0 ...containerization@k3FJY26SVxdZx4MLLE25h.md} | 0 .../coroutine@o0Y_hM0KXUApfsXG4PvOY.md | 0 ....md => couchbase@6KTj_giX2k9l2lPd_Fp-d.md} | 0 ...03-dal.md => dal@dt_SmZuwklLimhupvjxC1.md} | 0 ... data-clustering@XCJvgUSS7-oDR-XGdDY33.md} | 0 ...=> data-transfer@5bJUcx3v4dpdlIsx7bFvK.md} | 0 ....md => databases@FLFaGZDg2MSG6_YHnWETM.md} | 0 ...ram-construction@jnQAzUUnwpJgoRuRIFtSe.md} | 0 ...m.md => datagram@wD_HWc9YxPhlkilt585pg.md} | 0 ...=> deep-learning@jkWvfp4GqckYPQ48GtjlR.md} | 0 ...enial-of-service@TbXJO__4xSnzK1fvvJK86.md} | 0 ...ndency-injection@uTlxyDOtvt_Qp0gXLWO-j.md} | 0 ...md => descriptor@OAyMj6uLSv1yJ87YAjyZu.md} | 0 ... design-patterns@gB-TYpgUDV47bxznNJhYn.md} | 0 ...d => determinism@zFx1jjt1hKgCpYHFTzbZZ.md} | 0 ...-dhcp.md => dhcp@aTHJh-xw8soCxC1bIDdXm.md} | 0 ...01-dns.md => dns@yNytLrQAMKBw4t73YRL3J.md} | 0 ...> docker-compose@yAf7VDX7dyaT5AdlNnuKD.md} | 0 ...dex.md => docker@zW_7VLeEHQp8fp_f5N__0.md} | 0 ...=> dump-analysis@1c6EqGv1g-d8M1i0vKImb.md} | 0 ...b.md => dynamodb@9vc7sFE_XakYXtKRMxLXi.md} | 0 .../content/epoll@qaWv4gxnnj3uX8lEm9KQ4.md | 0 ...ang.md => erlang@QGtGx5LBEWa1DD3Y7ztUy.md} | 0 .../error-detection@vFM311xSa5OqNVove2f6j.md | 0 ...iber.md => fiber@TVJrlUsg30YIM1yjsZfJI.md} | 0 .../flow-control@lDVD-3i64Mk7-KPJrXmFH.md | 0 ...01-frp.md => frp@xDYOvIbXc-iJ2zOKqe0YL.md} | 0 ...x.md => function@YPvm8XD_FaFYCQ-b7-KsH.md} | 0 ...onal-programming@HXSWvhgT4L5w6xgOO-3kj.md} | 0 ...future--promises@zbIbPlqTNSbJUkqH9iLQv.md} | 0 ...01-gcp.md => gcp@wD6dUrS-tP2gpCHPghFp5.md} | 0 .../content/go@d5iQYn97vuoxJnCFGPdOa.md | 1 + ... => goroutine-go@f-L_eaZd0EjBW9-n9Pllt.md} | 0 ...-grpc.md => grpc@_uqTTBUYAzDHbEUkDzmzg.md} | 0 ...y-vs-lightweight@OYXKtl4A-vaK6yGO6hS6n.md} | 0 .../content/index.md | 1 - .../content/io_uring@YH7u1FKh85wz78J0stuzS.md | 0 .../content/iocp@7pgdOZomhGilBTwfJLMbm.md | 0 ...=> ip-addressing@3ZcJNDCHw2pFzewmoB-03.md} | 0 .../index.md => ip@tg94V7K0mgYhpkUMp_Scv.md} | 0 ...-ipv4.md => ipv4@pHVB0K8Vtk3ToD6n_f1wv.md} | 0 ...-ipv6.md => ipv6@TqBlAMfhARhlJed6xD7eg.md} | 0 ...-java.md => java@LG8JPL1po-gEs1V5JyC8F.md} | 0 ...md => javascript@ufufnULqsglE5VhEIAdSI.md} | 0 ...-json.md => json@y0ZJQQfi8Qx6sB4WnZlP5.md} | 0 .../content/kqueue@caK32NMMrn-3BGAXZoPPr.md | 0 ...md => kubernetes@lUBUUoETjfADmM4OPtwwX.md} | 0 ...=> link-capacity@OzY-LPcfj1sBm_0F0WbIJ.md} | 0 ...-segment-scaling@1l5dhQWYPhUSg-cy5pSlK.md} | 0 .../max-segment-size@w6ysmcsBn9jJ8xMvg7hcD.md | 1 + ....md => memcached@ayeezKxQkXAPJMTShsOBU.md} | 0 ...> message-queues@cw7WdFfL5HpeZ_n8wYk2t.md} | 0 ...db.md => mongodb@HYxtPW401-J6aYcTuiGnx.md} | 0 ...sql.md => ms-sql@QMNUAKAuRI9lyf2_jUPsj.md} | 0 ...> multithreading@3QSLUMKD0G08N3MIb1cG7.md} | 0 ...> multithreading@_jd91rrAXGbJI9RhXlSx8.md} | 0 ...ndex.md => mutex@G_BEJKkJ1_Nc43aosy_iS.md} | 0 ...ysql.md => mysql@HsBqd08Ro0VJnx0FlumMQ.md} | 0 ...-oorp.md => oorp@yWj70LpF4LKB8J6GbYvsq.md} | 0 ...red-vs-unordered@WMdCDmFsytsF2AWQXfzC8.md} | 0 ...02-orm.md => orm@OyxWMFy8s7Lxko_K89fjo.md} | 0 ...out-of-band-data@3OMu3RM-6pMjqY1jAmC2-.md} | 0 ...packet-structure@CCxVnrGDKa1EROXgF_OAm.md} | 0 ...cket-vs-datagram@JE3uZ5U6oe6dVzsmglTl2.md} | 0 ...md => postgresql@dAiEwN7phwMyaitvM5kRl.md} | 0 ...x.md => proactor@Tvxe2NemcH21y-eB4bosv.md} | 0 ...amming-languages@6ilqzjvI4J1pUCmTJ33PA.md} | 0 ...mming-techniques@tGQu18PWDatW7HvkTP-uh.md} | 0 ...f.md => protobuf@w2zbab_6Gxw6AWS0N759U.md} | 0 ...ad.md => pthread@HU0yUyl89WD8WnR9PJn7l.md} | 0 ...ch.md => pytorch@LTSIfq10qDJMTCnIIyqvb.md} | 0 ...q.md => rabbitmq@UESjGrFyUbNf4pQamaBoy.md} | 0 ...eactive-approach@LVwGXmZhMewGQy61qwNyu.md} | 0 ...reactive-approach@Vl-WW0LThrQTOO_tFl51B.md | 1 + ...> reactive-model@p0P3ZGq_QTCop0vMwe7P3.md} | 0 ...ex.md => reactor@7mYpgn2gr-5vAYW-UR7_x.md} | 0 ...edis.md => redis@7YNaELVcoV7DV1Fa06USi.md} | 0 .../registered-io@94hJX1iGifDzIuaU3zU5j.md | 0 ...d => reliability@2jDV-ovvrkBbTTLk5VbR9.md} | 0 ...d => reliability@Vh81GnOUOZvDOlOyI5PwT.md} | 0 ...able-transmission@X2KHWgQZDHSVDsTRMUwSj.md | 0 ...le-vs-unreliable@MoyBGT9bscUe8vMN4J0bG.md} | 0 ...> resource-usage@LkGI0VpJ3WkpPHkJhJgWk.md} | 0 ...-rest.md => rest@Oq3GQ5gBUxIl1Qe8NB3LB.md} | 0 ...ng.md => routing@bYb7nA-Vn9e6VtdbUT3tq.md} | 0 ....md => rpc--rest@YxaroYL_Az0vKRCeu2jsp.md} | 0 ...x.md => security@qkO0s9zR0sAnjTRWcrLQY.md} | 0 ...egment-structure@zTCmPUp9j5P1wpGgiboMa.md} | 0 .../content/select@5-5toy2CblZPCV9d5QPEo.md | 0 ...=> selective-ack@SPpOO25b7wpajWDIrKi1u.md} | 0 .../semaphore@DYvzGc_r0SlOArPPc1gNI.md | 0 ...=> serialization@TS6dz61rUSxm-SqmK6JKe.md} | 0 ...side-development@rQArtuVKGVgLn_fw9yO3b.md} | 0 ...md => serverless@DOmbRRK_RRPElOuTB7AAK.md} | 0 ...g.md => sharding@3use5vuLBJTk40wOg9S-X.md} | 0 ...cket-programming@HvpuFTCknHPhnFkhmhRc4.md} | 0 ...k.md => spinlock@lVXfA_oZr82mFfBvLnnRK.md} | 0 ...00-ssl.md => ssl@PSvPjaVtko71BeIA-hYqf.md} | 0 ...ing-vs-broadcast@pJw8fN1dt3BABtZVz7wGE.md} | 0 ... synchronization@idmrgKgVWVLZYANbXiZnS.md} | 0 ....md => synchrony@l5QTk408Ubagw8XzRAfoZ.md} | 0 ...md => task-based@LKPcEeqBOPhQOztD3cM3T.md} | 0 ...md => tcp-vs-udp@RfTcTUjaXyp49FnUf44MK.md} | 0 .../index.md => tcp@mUCidjOsVLMAVDf2jmV5F.md} | 0 ...01-tdd.md => tdd@FKOhe21PVlaKIoZI4hd49.md} | 0 ...md => tensorflow@iJE9RnKC8QjPnsFeZAbtl.md} | 0 ...building-block-c@tiG0mZpLJ2zUr2IPYyhnv.md} | 0 ...ad-local-storage@IeD-oQ1bkwlKNC-R0lJjZ.md} | 0 ....md => timestamp@6KAYNPLEFMp6Jha8FLMAU.md} | 0 ...00-tls.md => tls@FX8ASd-QzTUFDHzBB93WK.md} | 0 ...-toml.md => toml@l8iEC3g0ICSfmIE1MxcUl.md} | 0 ... => transactions@r2OeI7YC1BLLfctC8q69W.md} | 0 .../index.md => udp@IMyHwnXxJK6oFxzOMLxjS.md} | 0 ...> update-process@3Eat22rFjUl4eTtGz8u4N.md} | 0 ...-veto.md => veto@ZLTfpRZ0rF-mtd7Z0R2WF.md} | 0 ...=> vulnerability@MwLWDlciJOq_0n5S3GoF-.md} | 0 ...> window-scaling@zvBKjceXRSfEe_3MDCEL5.md} | 0 ...ws.md => windows@mW2L_9NckgPRH7g5W9NHq.md} | 0 ...ck.md => winsock@GfTXffisLyQgp66zcQ7Py.md} | 0 .../content/wsa-poll@D9Yeyn8phDhB1ohMWccgr.md | 0 ...01-xml.md => xml@v43K6srds7m5SQFqNaY0T.md} | 0 ...-yaml.md => yaml@uHcUSVLz_2-Usk6ckSvwr.md} | 0 .../migration-mapping.json | 155 + .../server-side-game-developer.json | 18086 +++++++--------- .../server-side-game-developer.md | 3 +- src/lib/resource-progress.ts | 1 + 181 files changed, 7717 insertions(+), 10668 deletions(-) delete mode 100644 src/data/roadmaps/server-side-game-developer/content/100-roadmap-note.md delete mode 100644 src/data/roadmaps/server-side-game-developer/content/101-tcp/102-operations/102-data-transfer/congestion-control.md delete mode 100644 src/data/roadmaps/server-side-game-developer/content/101-tcp/102-operations/102-data-transfer/flow-control/error-detection.md delete mode 100644 src/data/roadmaps/server-side-game-developer/content/101-tcp/102-operations/102-data-transfer/flow-control/index.md delete mode 100644 src/data/roadmaps/server-side-game-developer/content/101-tcp/102-operations/102-data-transfer/reliable-transmission.md delete mode 100644 src/data/roadmaps/server-side-game-developer/content/101-tcp/102-operations/index.md delete mode 100644 src/data/roadmaps/server-side-game-developer/content/108-multithreading/103-synchronization/102-mutex/semaphore.md delete mode 100644 src/data/roadmaps/server-side-game-developer/content/108-multithreading/103-synchronization/104-future-promises/channel.md delete mode 100644 src/data/roadmaps/server-side-game-developer/content/108-multithreading/103-synchronization/104-future-promises/coroutine.md delete mode 100644 src/data/roadmaps/server-side-game-developer/content/110-databases/100-rdbms/index.md delete mode 100644 src/data/roadmaps/server-side-game-developer/content/110-databases/101-nosql/index.md delete mode 100644 src/data/roadmaps/server-side-game-developer/content/110-databases/104-key-value/index.md delete mode 100644 src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/101-asynchronous/100-proactor/iocp/index.md delete mode 100644 src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/101-asynchronous/100-proactor/iocp/io-uring.md delete mode 100644 src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/101-asynchronous/100-proactor/iocp/registered-io.md delete mode 100644 src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/101-asynchronous/101-reactor/epoll.md delete mode 100644 src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/101-asynchronous/101-reactor/kqueue.md delete mode 100644 src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/101-asynchronous/101-reactor/select.md delete mode 100644 src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/101-asynchronous/101-reactor/wsa-poll.md rename src/data/roadmaps/server-side-game-developer/content/{114-mutlithreading-2/102-actor-model/index.md => actor-model@KUQEgHldZPOLwFoXqQ2vM.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{106-socket-programming/101-address-conversion.md => address-conversion@SBA7pa9o0AM0ZEBepd7UM.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{118-ai/index.md => ai@dkCVwuy8GKeEi3VJar_Zo.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{114-mutlithreading-2/102-actor-model/101-akka.md => akka-java@eAEpEUVZcSKO9uCIlMN5y.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{114-mutlithreading-2/102-actor-model/100-akka-net.md => akknet-c@SsOz9Pj6Jc_55PgpmziL6.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{118-ai/101-cloud-ml/100-amazon-ml.md => amazon-ml@U0RlO_puezQPZP0-iBXgW.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{113-message-queues/100-kafka.md => apache-kafka@gL7hubTh3qiMyUWeAZNwI.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{116-data-clustering/100-apache-spark.md => apache-spark@yrWiWJMSyTWxDakJbqacu.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{106-socket-programming/103-api/index.md => api@a2pcxVTGdAPw8aLvdr19M.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{104-ip/104-transactions/100-arp.md => arp@JI_wUdT2hjsrvbIhLvHcT.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{114-mutlithreading-2/100-task-based/101-async-await.md => asnc-await-c@mAXMpUDmhGOncnCRrENJv.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{114-mutlithreading-2/101-asynchronous/index.md => asynchronous@ThBxS9xIMt9OrXfnto3rW.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{115-cloud/102-aws.md => aws@Rkx2A6oWsddlCTseZlpRU.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{118-ai/101-cloud-ml/101-azure-ml.md => azure-ml@vBqwmlzoT5XVEhV9IeGso.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{115-cloud/100-azure.md => azure@73uoFNGcCALxIuRNbebav.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{108-multithreading/103-synchronization/100-barrier.md => barrier@6k25amPkU9lnZ7FMNn_T6.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{106-socket-programming/103-api/100-bsd-socket.md => bsd-socket@U_tZFM80W3xJx8jj4skCr.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{106-socket-programming/100-byte-manipulation.md => byte-manipulation@H21PanCggDfQt34-JzgfO.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{105-programming-languages/101-c-sharp.md => c@DuyUc9a-47Uz03yr4aeyg.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{104-ip/100-capability.md => capability@5kF1fqr-mn5-15e3aMa9k.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{110-databases/101-nosql/102-cassandra.md => cassandra@1jqSxk1nwByiQa1De81F3.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{104-ip/105-categories/index.md => category@NH2eQ1_nij1icTgoO027b.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{105-programming-languages/100-c-cpp.md => cc@E4H3hniIW6hKpH3Qr--N5.md} (100%) create mode 100644 src/data/roadmaps/server-side-game-developer/content/channel@SXOEMkcVYBsRza6BPmmwy.md rename src/data/roadmaps/server-side-game-developer/content/{101-tcp/100-checksum.md => checksum@XxBl-zO7CF6DpOZ2bMDxJ.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{102-udp/103-checksum.md => checksum@tBOvBpDi3SOKZjAmkxdM0.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{111-cipher/index.md => cipher@1788KFqsQBkYARqA0T5GX.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{118-ai/101-cloud-ml/index.md => cloud-ml@XvvlvDKfYRCcYtTdWohsd.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{115-cloud/index.md => cloud@hhtqvFfTCuVPT0OPu4Y1a.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{114-mutlithreading-2/100-task-based/102-concurrency.md => concurrency-java@RT9XvlxvIM_hHTtNmbva3.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{108-multithreading/103-synchronization/103-condition-variable.md => condition-variable@xR6pERldq4wPl9GVLHAhT.md} (100%) create mode 100644 src/data/roadmaps/server-side-game-developer/content/congestion-control@1GML0Jsfdb1Fn-0PNryiQ.md rename src/data/roadmaps/server-side-game-developer/content/{102-udp/102-congestion-control.md => congestion-control@jsNsyrGzegVnjIF2l52vI.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{101-tcp/103-vulnerability/101-connection-hijacking.md => connection-hijacking@ubRiY3jdh3iS3diN482IU.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{101-tcp/102-operations/100-connection.md => connection@5sI3RHaLudq4TfpjoYeOp.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{117-containerization/index.md => containerization@k3FJY26SVxdZx4MLLE25h.md} (100%) create mode 100644 src/data/roadmaps/server-side-game-developer/content/coroutine@o0Y_hM0KXUApfsXG4PvOY.md rename src/data/roadmaps/server-side-game-developer/content/{110-databases/101-nosql/103-couchbase.md => couchbase@6KTj_giX2k9l2lPd_Fp-d.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{110-databases/103-dal.md => dal@dt_SmZuwklLimhupvjxC1.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{116-data-clustering/index.md => data-clustering@XCJvgUSS7-oDR-XGdDY33.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{101-tcp/102-operations/102-data-transfer/index.md => data-transfer@5bJUcx3v4dpdlIsx7bFvK.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{110-databases/index.md => databases@FLFaGZDg2MSG6_YHnWETM.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{104-ip/103-functions/100-datagram-construction.md => datagram-construction@jnQAzUUnwpJgoRuRIFtSe.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{102-udp/101-datagram.md => datagram@wD_HWc9YxPhlkilt585pg.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{118-ai/100-deep-learning/index.md => deep-learning@jkWvfp4GqckYPQ48GtjlR.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{101-tcp/103-vulnerability/100-denial-of-service.md => denial-of-service@TbXJO__4xSnzK1fvvJK86.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{109-programming-techniques/102-dependency-injection.md => dependency-injection@uTlxyDOtvt_Qp0gXLWO-j.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{106-socket-programming/102-descriptor.md => descriptor@OAyMj6uLSv1yJ87YAjyZu.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{109-programming-techniques/100-design-patterns.md => design-patterns@gB-TYpgUDV47bxznNJhYn.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{114-mutlithreading-2/104-reactive-model/101-determinism.md => determinism@zFx1jjt1hKgCpYHFTzbZZ.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{104-ip/104-transactions/102-dhcp.md => dhcp@aTHJh-xw8soCxC1bIDdXm.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{104-ip/104-transactions/101-dns.md => dns@yNytLrQAMKBw4t73YRL3J.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{117-containerization/100-docker/100-docker-compose.md => docker-compose@yAf7VDX7dyaT5AdlNnuKD.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{117-containerization/100-docker/index.md => docker@zW_7VLeEHQp8fp_f5N__0.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{109-programming-techniques/103-dump-analysis.md => dump-analysis@1c6EqGv1g-d8M1i0vKImb.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{110-databases/101-nosql/100-dynamo-db.md => dynamodb@9vc7sFE_XakYXtKRMxLXi.md} (100%) create mode 100644 src/data/roadmaps/server-side-game-developer/content/epoll@qaWv4gxnnj3uX8lEm9KQ4.md rename src/data/roadmaps/server-side-game-developer/content/{105-programming-languages/103-erlang.md => erlang@QGtGx5LBEWa1DD3Y7ztUy.md} (100%) create mode 100644 src/data/roadmaps/server-side-game-developer/content/error-detection@vFM311xSa5OqNVove2f6j.md rename src/data/roadmaps/server-side-game-developer/content/{108-multithreading/102-fiber.md => fiber@TVJrlUsg30YIM1yjsZfJI.md} (100%) create mode 100644 src/data/roadmaps/server-side-game-developer/content/flow-control@lDVD-3i64Mk7-KPJrXmFH.md rename src/data/roadmaps/server-side-game-developer/content/{114-mutlithreading-2/103-reactive-approach/101-frp.md => frp@xDYOvIbXc-iJ2zOKqe0YL.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{104-ip/103-functions/index.md => function@YPvm8XD_FaFYCQ-b7-KsH.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{109-programming-techniques/104-functional-programming.md => functional-programming@HXSWvhgT4L5w6xgOO-3kj.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{108-multithreading/103-synchronization/104-future-promises/index.md => future--promises@zbIbPlqTNSbJUkqH9iLQv.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{115-cloud/101-gcp.md => gcp@wD6dUrS-tP2gpCHPghFp5.md} (100%) create mode 100644 src/data/roadmaps/server-side-game-developer/content/go@d5iQYn97vuoxJnCFGPdOa.md rename src/data/roadmaps/server-side-game-developer/content/{114-mutlithreading-2/100-task-based/103-goroutine.md => goroutine-go@f-L_eaZd0EjBW9-n9Pllt.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{112-rpc-rest/101-grpc.md => grpc@_uqTTBUYAzDHbEUkDzmzg.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{103-tcp-vs-udp/102-heavyweight-vs-lightweight.md => heavy-vs-lightweight@OYXKtl4A-vaK6yGO6hS6n.md} (100%) delete mode 100644 src/data/roadmaps/server-side-game-developer/content/index.md create mode 100644 src/data/roadmaps/server-side-game-developer/content/io_uring@YH7u1FKh85wz78J0stuzS.md create mode 100644 src/data/roadmaps/server-side-game-developer/content/iocp@7pgdOZomhGilBTwfJLMbm.md rename src/data/roadmaps/server-side-game-developer/content/{104-ip/103-functions/101-ip-addressing.md => ip-addressing@3ZcJNDCHw2pFzewmoB-03.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{104-ip/index.md => ip@tg94V7K0mgYhpkUMp_Scv.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{104-ip/105-categories/100-ipv4.md => ipv4@pHVB0K8Vtk3ToD6n_f1wv.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{104-ip/105-categories/101-ipv6.md => ipv6@TqBlAMfhARhlJed6xD7eg.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{105-programming-languages/102-java.md => java@LG8JPL1po-gEs1V5JyC8F.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{105-programming-languages/104-javascript.md => javascript@ufufnULqsglE5VhEIAdSI.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{107-serialization/100-json.md => json@y0ZJQQfi8Qx6sB4WnZlP5.md} (100%) create mode 100644 src/data/roadmaps/server-side-game-developer/content/kqueue@caK32NMMrn-3BGAXZoPPr.md rename src/data/roadmaps/server-side-game-developer/content/{117-containerization/100-docker/101-kubernetes.md => kubernetes@lUBUUoETjfADmM4OPtwwX.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{104-ip/102-link-capacity.md => link-capacity@OzY-LPcfj1sBm_0F0WbIJ.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{101-tcp/102-operations/103-max-segment-scaling.md => max-segment-scaling@1l5dhQWYPhUSg-cy5pSlK.md} (100%) create mode 100644 src/data/roadmaps/server-side-game-developer/content/max-segment-size@w6ysmcsBn9jJ8xMvg7hcD.md rename src/data/roadmaps/server-side-game-developer/content/{110-databases/104-key-value/101-memcached.md => memcached@ayeezKxQkXAPJMTShsOBU.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{113-message-queues/index.md => message-queues@cw7WdFfL5HpeZ_n8wYk2t.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{110-databases/101-nosql/101-mongodb.md => mongodb@HYxtPW401-J6aYcTuiGnx.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{110-databases/100-rdbms/100-mssql.md => ms-sql@QMNUAKAuRI9lyf2_jUPsj.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{108-multithreading/index.md => multithreading@3QSLUMKD0G08N3MIb1cG7.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{114-mutlithreading-2/index.md => multithreading@_jd91rrAXGbJI9RhXlSx8.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{108-multithreading/103-synchronization/102-mutex/index.md => mutex@G_BEJKkJ1_Nc43aosy_iS.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{110-databases/100-rdbms/101-mysql.md => mysql@HsBqd08Ro0VJnx0FlumMQ.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{114-mutlithreading-2/103-reactive-approach/100-oorp.md => oorp@yWj70LpF4LKB8J6GbYvsq.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{103-tcp-vs-udp/101-ordered-vs-not-ordered.md => ordered-vs-unordered@WMdCDmFsytsF2AWQXfzC8.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{110-databases/102-orm.md => orm@OyxWMFy8s7Lxko_K89fjo.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{101-tcp/102-operations/106-out-of-band-data.md => out-of-band-data@3OMu3RM-6pMjqY1jAmC2-.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{102-udp/104-packet-structure.md => packet-structure@CCxVnrGDKa1EROXgF_OAm.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{103-tcp-vs-udp/103-packet-vs-datagram.md => packet-vs-datagram@JE3uZ5U6oe6dVzsmglTl2.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{110-databases/100-rdbms/102-postgresql.md => postgresql@dAiEwN7phwMyaitvM5kRl.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{114-mutlithreading-2/101-asynchronous/100-proactor/index.md => proactor@Tvxe2NemcH21y-eB4bosv.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{105-programming-languages/index.md => programming-languages@6ilqzjvI4J1pUCmTJ33PA.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{109-programming-techniques/index.md => programming-techniques@tGQu18PWDatW7HvkTP-uh.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{107-serialization/104-protobuf.md => protobuf@w2zbab_6Gxw6AWS0N759U.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{108-multithreading/100-thread-localstorage/101-pthread.md => pthread@HU0yUyl89WD8WnR9PJn7l.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{118-ai/100-deep-learning/101-pytorch.md => pytorch@LTSIfq10qDJMTCnIIyqvb.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{113-message-queues/101-rabbitmq.md => rabbitmq@UESjGrFyUbNf4pQamaBoy.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{114-mutlithreading-2/103-reactive-approach/index.md => reactive-approach@LVwGXmZhMewGQy61qwNyu.md} (100%) create mode 100644 src/data/roadmaps/server-side-game-developer/content/reactive-approach@Vl-WW0LThrQTOO_tFl51B.md rename src/data/roadmaps/server-side-game-developer/content/{114-mutlithreading-2/104-reactive-model/index.md => reactive-model@p0P3ZGq_QTCop0vMwe7P3.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{114-mutlithreading-2/101-asynchronous/101-reactor/index.md => reactor@7mYpgn2gr-5vAYW-UR7_x.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{110-databases/104-key-value/100-redis.md => redis@7YNaELVcoV7DV1Fa06USi.md} (100%) create mode 100644 src/data/roadmaps/server-side-game-developer/content/registered-io@94hJX1iGifDzIuaU3zU5j.md rename src/data/roadmaps/server-side-game-developer/content/{104-ip/101-reliability.md => reliability@2jDV-ovvrkBbTTLk5VbR9.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{102-udp/100-reliability.md => reliability@Vh81GnOUOZvDOlOyI5PwT.md} (100%) create mode 100644 src/data/roadmaps/server-side-game-developer/content/reliable-transmission@X2KHWgQZDHSVDsTRMUwSj.md rename src/data/roadmaps/server-side-game-developer/content/{103-tcp-vs-udp/100-reliable-vs-unreliable.md => reliable-vs-unreliable@MoyBGT9bscUe8vMN4J0bG.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{101-tcp/102-operations/101-resource-usage.md => resource-usage@LkGI0VpJ3WkpPHkJhJgWk.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{112-rpc-rest/100-rest.md => rest@Oq3GQ5gBUxIl1Qe8NB3LB.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{104-ip/103-functions/102-routing.md => routing@bYb7nA-Vn9e6VtdbUT3tq.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{112-rpc-rest/index.md => rpc--rest@YxaroYL_Az0vKRCeu2jsp.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{104-ip/106-security/index.md => security@qkO0s9zR0sAnjTRWcrLQY.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{101-tcp/101-segment-structure.md => segment-structure@zTCmPUp9j5P1wpGgiboMa.md} (100%) create mode 100644 src/data/roadmaps/server-side-game-developer/content/select@5-5toy2CblZPCV9d5QPEo.md rename src/data/roadmaps/server-side-game-developer/content/{101-tcp/102-operations/107-selective-acknowledgement.md => selective-ack@SPpOO25b7wpajWDIrKi1u.md} (100%) create mode 100644 src/data/roadmaps/server-side-game-developer/content/semaphore@DYvzGc_r0SlOArPPc1gNI.md rename src/data/roadmaps/server-side-game-developer/content/{107-serialization/index.md => serialization@TS6dz61rUSxm-SqmK6JKe.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{100-server-side.md => server-side-development@rQArtuVKGVgLn_fw9yO3b.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{115-cloud/103-serverless.md => serverless@DOmbRRK_RRPElOuTB7AAK.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{108-multithreading/101-sharding.md => sharding@3use5vuLBJTk40wOg9S-X.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{106-socket-programming/index.md => socket-programming@HvpuFTCknHPhnFkhmhRc4.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{108-multithreading/103-synchronization/101-spinlock.md => spinlock@lVXfA_oZr82mFfBvLnnRK.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{111-cipher/100-ssl.md => ssl@PSvPjaVtko71BeIA-hYqf.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{103-tcp-vs-udp/104-streaming-vs-broadcast.md => streaming-vs-broadcast@pJw8fN1dt3BABtZVz7wGE.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{108-multithreading/103-synchronization/index.md => synchronization@idmrgKgVWVLZYANbXiZnS.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{114-mutlithreading-2/104-reactive-model/100-synchrony.md => synchrony@l5QTk408Ubagw8XzRAfoZ.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{114-mutlithreading-2/100-task-based/index.md => task-based@LKPcEeqBOPhQOztD3cM3T.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{103-tcp-vs-udp/index.md => tcp-vs-udp@RfTcTUjaXyp49FnUf44MK.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{101-tcp/index.md => tcp@mUCidjOsVLMAVDf2jmV5F.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{109-programming-techniques/101-tdd.md => tdd@FKOhe21PVlaKIoZI4hd49.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{118-ai/100-deep-learning/100-tensor-flow.md => tensorflow@iJE9RnKC8QjPnsFeZAbtl.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{114-mutlithreading-2/100-task-based/100-thread-building-block.md => thread-building-block-c@tiG0mZpLJ2zUr2IPYyhnv.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{108-multithreading/100-thread-localstorage/index.md => thread-local-storage@IeD-oQ1bkwlKNC-R0lJjZ.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{101-tcp/102-operations/105-timestamp.md => timestamp@6KAYNPLEFMp6Jha8FLMAU.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{104-ip/106-security/100-tls.md => tls@FX8ASd-QzTUFDHzBB93WK.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{107-serialization/103-toml.md => toml@l8iEC3g0ICSfmIE1MxcUl.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{104-ip/104-transactions/index.md => transactions@r2OeI7YC1BLLfctC8q69W.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{102-udp/index.md => udp@IMyHwnXxJK6oFxzOMLxjS.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{114-mutlithreading-2/104-reactive-model/102-update-process.md => update-process@3Eat22rFjUl4eTtGz8u4N.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{101-tcp/103-vulnerability/102-veto.md => veto@ZLTfpRZ0rF-mtd7Z0R2WF.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{101-tcp/103-vulnerability/index.md => vulnerability@MwLWDlciJOq_0n5S3GoF-.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{101-tcp/102-operations/104-window-scaling.md => window-scaling@zvBKjceXRSfEe_3MDCEL5.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{108-multithreading/100-thread-localstorage/100-windows.md => windows@mW2L_9NckgPRH7g5W9NHq.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{106-socket-programming/103-api/101-winsock.md => winsock@GfTXffisLyQgp66zcQ7Py.md} (100%) create mode 100644 src/data/roadmaps/server-side-game-developer/content/wsa-poll@D9Yeyn8phDhB1ohMWccgr.md rename src/data/roadmaps/server-side-game-developer/content/{107-serialization/101-xml.md => xml@v43K6srds7m5SQFqNaY0T.md} (100%) rename src/data/roadmaps/server-side-game-developer/content/{107-serialization/102-yaml.md => yaml@uHcUSVLz_2-Usk6ckSvwr.md} (100%) create mode 100644 src/data/roadmaps/server-side-game-developer/migration-mapping.json diff --git a/src/data/roadmaps/game-developer/game-developer.json b/src/data/roadmaps/game-developer/game-developer.json index 6cc9913e3..76eab2256 100644 --- a/src/data/roadmaps/game-developer/game-developer.json +++ b/src/data/roadmaps/game-developer/game-developer.json @@ -566,59 +566,31 @@ "id": "SIvQYH0q1H29NgbtLq3L8", "type": "button", "position": { - "x": 323.241338239984, - "y": -56.48985085377855 + "x": 267.11202169501337, + "y": -55.32399710033968 }, "selected": false, "data": { "label": "Server Side", "href": "https://roadmap.sh/server-side-game-developer", - "color": "#ffffff", - "backgroundColor": "#4036d6", + "color": "#000000", + "backgroundColor": "#DEDEDE", "style": { "fontSize": 17 }, - "borderColor": "#4036D6" + "borderColor": "#DEDEDE" }, "zIndex": 999, - "width": 212, + "width": 170, "height": 49, "style": { - "width": 212, + "width": 170, "height": 49 }, "resizing": false, "positionAbsolute": { - "x": 323.241338239984, - "y": -56.48985085377855 - }, - "dragging": false, - "selectable": true, - "focusable": true - }, - { - "id": "j46wg2LkFjjWj3hi3Q2mJ", - "type": "label", - "position": { - "x": 324.741338239984, - "y": -1.3239971003396818 - }, - "selected": false, - "data": { - "label": "Click to visit the roadmap", - "href": "", - "color": "#000000", - "style": { - "fontSize": 17 - } - }, - "zIndex": 999, - "width": 209, - "height": 36, - "style": {}, - "positionAbsolute": { - "x": 324.741338239984, - "y": -1.3239971003396818 + "x": 267.11202169501337, + "y": -55.32399710033968 }, "dragging": false, "selectable": true, @@ -5483,6 +5455,37 @@ "focusable": true, "resizing": false, "selectable": true + }, + { + "id": "3in61wmgTAqq7nSJm00p-", + "type": "horizontal", + "position": { + "x": 441.84147172248663, + "y": -40.82399710033968 + }, + "selected": false, + "data": { + "label": "horizontal node", + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2B78E4" + } + }, + "zIndex": 999, + "width": 92, + "height": 20, + "positionAbsolute": { + "x": 441.84147172248663, + "y": -40.82399710033968 + }, + "dragging": false, + "style": { + "width": 92, + "height": 20 + }, + "resizing": false } ], "edges": [ diff --git a/src/data/roadmaps/server-side-game-developer/content/100-roadmap-note.md b/src/data/roadmaps/server-side-game-developer/content/100-roadmap-note.md deleted file mode 100644 index 08cce0bcf..000000000 --- a/src/data/roadmaps/server-side-game-developer/content/100-roadmap-note.md +++ /dev/null @@ -1,3 +0,0 @@ -# Note - -These roadmaps cover everything that is there to learn for the paths listed below. Don't feel overwhelmed, you don't need to learn it all in the beginning if you are just getting started. \ No newline at end of file diff --git a/src/data/roadmaps/server-side-game-developer/content/101-tcp/102-operations/102-data-transfer/congestion-control.md b/src/data/roadmaps/server-side-game-developer/content/101-tcp/102-operations/102-data-transfer/congestion-control.md deleted file mode 100644 index 40cfa1d81..000000000 --- a/src/data/roadmaps/server-side-game-developer/content/101-tcp/102-operations/102-data-transfer/congestion-control.md +++ /dev/null @@ -1,3 +0,0 @@ -# Congestion Control - -`Congestion Control` is a critical aspect of any network, particularly in server-side game development where real-time data transfer is a must. It refers to techniques and mechanisms that can prevent too much data from filling the network. This excessive data, also known as network congestion, can lead to packet loss, delay in data transfer, and ultimately a poor gaming experience. Congestion control algorithms, such as TCP congestion control algorithms, are implemented to avoid such situations. They adjust the data packet transmission rate based on the perceived network congestion, reducing the rate when congestion is detected and increasing it when the network is less congested. \ No newline at end of file diff --git a/src/data/roadmaps/server-side-game-developer/content/101-tcp/102-operations/102-data-transfer/flow-control/error-detection.md b/src/data/roadmaps/server-side-game-developer/content/101-tcp/102-operations/102-data-transfer/flow-control/error-detection.md deleted file mode 100644 index e4036175b..000000000 --- a/src/data/roadmaps/server-side-game-developer/content/101-tcp/102-operations/102-data-transfer/flow-control/error-detection.md +++ /dev/null @@ -1,3 +0,0 @@ -# Error Detection - -Error detection is a mechanism that checks the integrity of data that is being delivered or stored. In the context of server-side game development, errors can occur due to reasons like network inconsistencies, corrupted data, or server overload. To ensure smooth operation, these errors need to be detected and handled. Some common types of error detection methods include parity check, checksum, and cyclic redundancy check (CRC). Parity check adds an extra bit to the data to make the number of 1’s either even or odd. Checksum involves the sender adding up all the bits in the data and sending the sum along with data. CRC is a more complex and robust method involving binary division. These methods help detect errors but can't fix them. Once detected, errors are typically dealt with through retransmission or by using forward error correction codes. \ No newline at end of file diff --git a/src/data/roadmaps/server-side-game-developer/content/101-tcp/102-operations/102-data-transfer/flow-control/index.md b/src/data/roadmaps/server-side-game-developer/content/101-tcp/102-operations/102-data-transfer/flow-control/index.md deleted file mode 100644 index 3f0111cac..000000000 --- a/src/data/roadmaps/server-side-game-developer/content/101-tcp/102-operations/102-data-transfer/flow-control/index.md +++ /dev/null @@ -1,3 +0,0 @@ -# Flow Control - -Flow control, often referred to as stream control transmission protocol (SCTP), is essential in server-side game development, particularly in data transfer. Flow control is basically a technique used to manage the rate of data transmission between two nodes to prevent a fast sender from overwhelming a slow receiver. It provides an effective way to manage the amount of data that can be sent before having to receive an acknowledgment. There are two main types of flow control: window-based and rate-based. Window-based flow control allows the receiver to process a fixed set of packets before sending the acknowledgement, whereas rate-based control allows for data transfer at a specified rate. These methods make flow control indispensable in network communications. \ No newline at end of file diff --git a/src/data/roadmaps/server-side-game-developer/content/101-tcp/102-operations/102-data-transfer/reliable-transmission.md b/src/data/roadmaps/server-side-game-developer/content/101-tcp/102-operations/102-data-transfer/reliable-transmission.md deleted file mode 100644 index 2641fd32c..000000000 --- a/src/data/roadmaps/server-side-game-developer/content/101-tcp/102-operations/102-data-transfer/reliable-transmission.md +++ /dev/null @@ -1,3 +0,0 @@ -# Reliable Transmission - -Reliable Transmission is a service that ensures data is delivered from the source to the destination without any errors. This includes mechanisms that provide accurate, on-time delivery of all packets while managing packet loss, duplication, or out-of-order delivery. In server-side game development, protocols like TCP (Transmission Control Protocol) are often used to accomplish reliable transmission. Reliable transmission is particularly necessary for critical data where all transmitted information must arrive at the destination correctly and in the right order. TCP accomplishes this by establishing a connection before data transfer begins and using sequence numbers to track delivery and reassemble pieces in the correct order. TCP also sends acknowledgements back to the source confirming packet delivery, and implements re-transmission of lost or corrupted data. Despite its overhead and slower speed compared to other methods, such as the User Datagram Protocol (UDP), reliable transmission is vital when data integrity is a priority over speed. \ No newline at end of file diff --git a/src/data/roadmaps/server-side-game-developer/content/101-tcp/102-operations/index.md b/src/data/roadmaps/server-side-game-developer/content/101-tcp/102-operations/index.md deleted file mode 100644 index d825cf607..000000000 --- a/src/data/roadmaps/server-side-game-developer/content/101-tcp/102-operations/index.md +++ /dev/null @@ -1,3 +0,0 @@ -# Operations - -TCP (Transmission Control Protocol) is a connection-oriented protocol that ensures reliable, ordered, and error-checked delivery of data between systems over an IP network. Some of the primary operations include "Connection Establishment" that initializes a connection using a 3-way handshake, "Data Transfer" where packets of data are sent from sender to receiver, "Connection Termination" that closes the connection when transmission is complete, and "Error Control" which handles retransmission of lost data or corrupted packets. Additionally, TCP handles "Flow Control" to prevent a sender from overwhelming a receiver with data, and "Congestion Control" to manage network congestion and avoid packet loss. \ No newline at end of file diff --git a/src/data/roadmaps/server-side-game-developer/content/108-multithreading/103-synchronization/102-mutex/semaphore.md b/src/data/roadmaps/server-side-game-developer/content/108-multithreading/103-synchronization/102-mutex/semaphore.md deleted file mode 100644 index 46a398e2c..000000000 --- a/src/data/roadmaps/server-side-game-developer/content/108-multithreading/103-synchronization/102-mutex/semaphore.md +++ /dev/null @@ -1,3 +0,0 @@ -# Semaphore - -A **semaphore** is a more advanced type of synchronization tool compared to mutexes. While a mutex is either locked or unlocked, a semaphore has a count associated with it and can allow multiple threads to access a resource up to a specified count. Semaphores can be used to control access to a pool of resources, not just a singular resource like a mutex. A semaphore count represents the number of resources available. Each time a thread acquires the semaphore, the count decreases. When the count hits zero, any further threads that attempt to acquire the semaphore are blocked until the count becomes positive again. Release operation increments the count, and possibly unblocks waiting threads. The key detail is that semaphores allow multiple threads to access a resource concurrently, but with a defined maximum number of concurrent threads. \ No newline at end of file diff --git a/src/data/roadmaps/server-side-game-developer/content/108-multithreading/103-synchronization/104-future-promises/channel.md b/src/data/roadmaps/server-side-game-developer/content/108-multithreading/103-synchronization/104-future-promises/channel.md deleted file mode 100644 index d1ed3cf10..000000000 --- a/src/data/roadmaps/server-side-game-developer/content/108-multithreading/103-synchronization/104-future-promises/channel.md +++ /dev/null @@ -1,5 +0,0 @@ -# Channel - -### Channel - -In server-side game development, a **Channel** is used to simplify network coding by providing an efficient and reusable way to send and receive data. Essentially, a channel is a communication pipeline between a client and a server. They are often used in real-time multiplayer games where fast and frequent data transfer is essential. These channels can be implemented using different protocols, the choice of which usually depends on specific game requirements and usage scenarios. For example, TCP channels may be used for reliable data transfer, while UDP channels may be more applicable for fast, unordered data delivery. \ No newline at end of file diff --git a/src/data/roadmaps/server-side-game-developer/content/108-multithreading/103-synchronization/104-future-promises/coroutine.md b/src/data/roadmaps/server-side-game-developer/content/108-multithreading/103-synchronization/104-future-promises/coroutine.md deleted file mode 100644 index 2237bc50a..000000000 --- a/src/data/roadmaps/server-side-game-developer/content/108-multithreading/103-synchronization/104-future-promises/coroutine.md +++ /dev/null @@ -1,3 +0,0 @@ -# Coroutine - -A **Coroutine** is a special kind of function that has the ability to pause its execution while saving its local state. Unlike standard functions which start at their beginning when called and run to completion, coroutine can start, pause at any point of its execution, and then resume from the same point later. This pause and resume functionality, makes coroutines a great tool for writing asynchronous code and managing activities that are typically difficult to deal with in procedural programming such as time-dependent or event-driven operations. Coroutines are commonly used in server-side development for tasks like handling concurrent requests without the need for creating multiple threads or processes. \ No newline at end of file diff --git a/src/data/roadmaps/server-side-game-developer/content/110-databases/100-rdbms/index.md b/src/data/roadmaps/server-side-game-developer/content/110-databases/100-rdbms/index.md deleted file mode 100644 index 7c0c87d5b..000000000 --- a/src/data/roadmaps/server-side-game-developer/content/110-databases/100-rdbms/index.md +++ /dev/null @@ -1,3 +0,0 @@ -# RDBMS - -**RDBMS** or **Relational Database Management System** is a type of database management system that stores data in the form of related tables. These tables are interconnected via relational operators. Each row in these tables has an unique identifier known as its **Primary Key**, and the data can be accessed or reorganized in many different ways without needing to reorganize the tables themselves. **Structured Query Language (SQL)** is the standard language used for interfacing with RDBMS. Notable RDBMS examples include Oracle Database, MySQL, Microsoft SQL Server, and PostgreSQL. \ No newline at end of file diff --git a/src/data/roadmaps/server-side-game-developer/content/110-databases/101-nosql/index.md b/src/data/roadmaps/server-side-game-developer/content/110-databases/101-nosql/index.md deleted file mode 100644 index 8f768df0c..000000000 --- a/src/data/roadmaps/server-side-game-developer/content/110-databases/101-nosql/index.md +++ /dev/null @@ -1,3 +0,0 @@ -# NoSQL - -**NoSQL** is a type of database that provides a mechanism for storage and retrieval of data which is modeled using means other than the tabular relations used in relational databases. NoSQL databases are ideal for big data and real-time web applications. They are flexible as they allow rapid development from changes. Some popular NoSQL databases include MongoDB, Apache Cassandra, Redis, Couchbase and HBase. While they may all be classified as NoSQL, they are all different in terms of their data model, with some being document-oriented, others key-value stores, wide-column stores, or graph databases. It's important to consider each one's data model when choosing a database for your application. \ No newline at end of file diff --git a/src/data/roadmaps/server-side-game-developer/content/110-databases/104-key-value/index.md b/src/data/roadmaps/server-side-game-developer/content/110-databases/104-key-value/index.md deleted file mode 100644 index 4654cb83d..000000000 --- a/src/data/roadmaps/server-side-game-developer/content/110-databases/104-key-value/index.md +++ /dev/null @@ -1,3 +0,0 @@ -# Key-Value - -In server-side game development, a **key-value** database is a type of non-relational database that uses a simple key-value method to store data. A key-value database stores data as a collection of key-value pairs in which a key serves as a unique identifier. Both keys and values can be anything, ranging from simple objects to complex compound objects. `Key` uniquely identifies a pair within the database; `Value` holds the data and is directly associated with its key. Different types of key-value databases offer different types of ways to deal with data, like handling data types, manipulating arrays, and more. Unlike relational databases, key-value databases do not require a fixed data model and are schema-free. \ No newline at end of file diff --git a/src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/101-asynchronous/100-proactor/iocp/index.md b/src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/101-asynchronous/100-proactor/iocp/index.md deleted file mode 100644 index 09c545037..000000000 --- a/src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/101-asynchronous/100-proactor/iocp/index.md +++ /dev/null @@ -1,3 +0,0 @@ -# IOCP - -The **IOCP**, which stands for **Input/Output Completion Ports**, is a mechanism provided by Microsoft Windows to handle asynchronous I/O operations. It effectively handles the incoming and outgoing operations from the server side utilizing a specific number of threads. Its operation works in a way that whenever an I/O request is initiated, the system will create a packet of information related to the I/O operation, then when the operation completes, it pushes the packet to an IOCP. A pool of threads waits for these operations to complete. As soon as an operation completes, one of the threads from the pool picks up the complete I/O operation from the IOCP and starts processing it. It acts as a multiplexer that routes completed I/O operations to the thread pool, which is an efficient way to handle server-side game development tasks. \ No newline at end of file diff --git a/src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/101-asynchronous/100-proactor/iocp/io-uring.md b/src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/101-asynchronous/100-proactor/iocp/io-uring.md deleted file mode 100644 index b74688494..000000000 --- a/src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/101-asynchronous/100-proactor/iocp/io-uring.md +++ /dev/null @@ -1,3 +0,0 @@ -# io_uring - -`IO_uring` is a high-performance I/O interface in the Linux kernel, which was introduced in version 5.1. It provides a scalable and efficient I/O submission and completion model, surpassing the traditional POSIX interfaces. Unlike the older mechanisms like `select`, `poll`, and `epoll`, or `IOCP` in Windows, `IO_uring` uses ring buffers that are shared between the application and the kernel. This minimizes the need for system calls, thus enhancing performance. The interface allows for queueing up I/O operations (reads, writes, syncs, and others), as well as submissions of multiple operations at once. Furthermore, `IO_uring` supports both buffered and direct I/O, and includes support for I/O priorities. \ No newline at end of file diff --git a/src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/101-asynchronous/100-proactor/iocp/registered-io.md b/src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/101-asynchronous/100-proactor/iocp/registered-io.md deleted file mode 100644 index be241e0ee..000000000 --- a/src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/101-asynchronous/100-proactor/iocp/registered-io.md +++ /dev/null @@ -1,3 +0,0 @@ -# Registered IO - -`Registered I/O (RIO)` is an advanced Windows technology which is used to increase the performance of network applications. It offers a registered I/O buffer design that is designed for high volume, low latency networking applications. This programming model allows more efficient buffer usage by restricting dynamism and enabling more driver and hardware offloads. RIO's API can be used with any Winsock supported protocol, although its efficiency is greatest with protocols that can leverage offloads (like TCP and UDP). It requires Windows Server 2012, Windows 8, or newer versions. It should be noted that it requires significant program modifications as well as in depth understanding of IOCP and how it’s used by Windows networking APIs usually involving complex, low level programming. \ No newline at end of file diff --git a/src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/101-asynchronous/101-reactor/epoll.md b/src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/101-asynchronous/101-reactor/epoll.md deleted file mode 100644 index de373ca80..000000000 --- a/src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/101-asynchronous/101-reactor/epoll.md +++ /dev/null @@ -1,3 +0,0 @@ -# epoll - -`epoll` is a Linux kernel system call introduced in version 2.5.44 that provides a scalable I/O event notification mechanism. It was designed to replace the less scalable `poll` and `select` system calls when handling a large number of file descriptors. `epoll` uses an event-driven programming approach. Instead of frequently asking the operating system to check every file descriptor, the application tells the operating system what to track and goes to sleep. Then, the operating system wakes up the app when an event occurs on one of the tracked descriptors. This mechanism significantly reduces resource usage and latency, which is critical for server-side game development that involves real-time communication and high-performance needs. \ No newline at end of file diff --git a/src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/101-asynchronous/101-reactor/kqueue.md b/src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/101-asynchronous/101-reactor/kqueue.md deleted file mode 100644 index 51803a51b..000000000 --- a/src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/101-asynchronous/101-reactor/kqueue.md +++ /dev/null @@ -1,3 +0,0 @@ -# kqueue - -`kqueue` is a scalable event notification interface introduced in FreeBSD 4.1 and later adopted in NetBSD, OpenBSD, and Mac OS X. It provides a mechanism that allows you to track many kernel events with a single system call. `kqueue` can detect changes to files and directories, handle signals, process termination, and network I/O. For a server-side game developer, getting notifications about network I/O can be essential, and `kqueue` provides a means to efficiently do this. However, not all Unix-based and POSIX-compliant operating systems support `kqueue`, so alternatives such as `epoll` might be necessary depending on your platform. For instance, `kqueue` is not natively supported in Linux but is available through certain libraries. \ No newline at end of file diff --git a/src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/101-asynchronous/101-reactor/select.md b/src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/101-asynchronous/101-reactor/select.md deleted file mode 100644 index cf53db355..000000000 --- a/src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/101-asynchronous/101-reactor/select.md +++ /dev/null @@ -1,3 +0,0 @@ -# select - -`Select` is an important system call that can handle multiple I/O operations concurrently. It comes in very handy when dealing with server-side programming due to its capacity to handle multiple connections at a time. `Select` resides in the operating system, awaiting for one or more of the I/O conditions it is monitoring to occur. Its main function is to monitor multiple file descriptors to see if they are ready for reading, writing or if an exceptional condition has occurred. It is ideally used in server-based games where the system has to deal with multiple clients simultaneously. It is quite crucial in applications where the extent of I/O activities is not determinable in advance. \ No newline at end of file diff --git a/src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/101-asynchronous/101-reactor/wsa-poll.md b/src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/101-asynchronous/101-reactor/wsa-poll.md deleted file mode 100644 index c4d19a38c..000000000 --- a/src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/101-asynchronous/101-reactor/wsa-poll.md +++ /dev/null @@ -1,3 +0,0 @@ -# WSA Poll - -`WSAPoll` is a method utilized in server side game development, specifically within the Windows Sockets 2 (Winsock) API. `WSAPoll` is designed to determine the status of one or more sockets, allowing the application to monitor multiple sockets in a single function call. Simply put, `WSAPoll` allows sockets to reside in collections, also known as Pollfd arrays. At runtime, the status of these sockets can be checked without blocking the application's execution. Therefore, it is commonly used in network applications where multiple sockets need to be monitored simultaneously. \ No newline at end of file diff --git a/src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/102-actor-model/index.md b/src/data/roadmaps/server-side-game-developer/content/actor-model@KUQEgHldZPOLwFoXqQ2vM.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/102-actor-model/index.md rename to src/data/roadmaps/server-side-game-developer/content/actor-model@KUQEgHldZPOLwFoXqQ2vM.md diff --git a/src/data/roadmaps/server-side-game-developer/content/106-socket-programming/101-address-conversion.md b/src/data/roadmaps/server-side-game-developer/content/address-conversion@SBA7pa9o0AM0ZEBepd7UM.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/106-socket-programming/101-address-conversion.md rename to src/data/roadmaps/server-side-game-developer/content/address-conversion@SBA7pa9o0AM0ZEBepd7UM.md diff --git a/src/data/roadmaps/server-side-game-developer/content/118-ai/index.md b/src/data/roadmaps/server-side-game-developer/content/ai@dkCVwuy8GKeEi3VJar_Zo.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/118-ai/index.md rename to src/data/roadmaps/server-side-game-developer/content/ai@dkCVwuy8GKeEi3VJar_Zo.md diff --git a/src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/102-actor-model/101-akka.md b/src/data/roadmaps/server-side-game-developer/content/akka-java@eAEpEUVZcSKO9uCIlMN5y.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/102-actor-model/101-akka.md rename to src/data/roadmaps/server-side-game-developer/content/akka-java@eAEpEUVZcSKO9uCIlMN5y.md diff --git a/src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/102-actor-model/100-akka-net.md b/src/data/roadmaps/server-side-game-developer/content/akknet-c@SsOz9Pj6Jc_55PgpmziL6.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/102-actor-model/100-akka-net.md rename to src/data/roadmaps/server-side-game-developer/content/akknet-c@SsOz9Pj6Jc_55PgpmziL6.md diff --git a/src/data/roadmaps/server-side-game-developer/content/118-ai/101-cloud-ml/100-amazon-ml.md b/src/data/roadmaps/server-side-game-developer/content/amazon-ml@U0RlO_puezQPZP0-iBXgW.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/118-ai/101-cloud-ml/100-amazon-ml.md rename to src/data/roadmaps/server-side-game-developer/content/amazon-ml@U0RlO_puezQPZP0-iBXgW.md diff --git a/src/data/roadmaps/server-side-game-developer/content/113-message-queues/100-kafka.md b/src/data/roadmaps/server-side-game-developer/content/apache-kafka@gL7hubTh3qiMyUWeAZNwI.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/113-message-queues/100-kafka.md rename to src/data/roadmaps/server-side-game-developer/content/apache-kafka@gL7hubTh3qiMyUWeAZNwI.md diff --git a/src/data/roadmaps/server-side-game-developer/content/116-data-clustering/100-apache-spark.md b/src/data/roadmaps/server-side-game-developer/content/apache-spark@yrWiWJMSyTWxDakJbqacu.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/116-data-clustering/100-apache-spark.md rename to src/data/roadmaps/server-side-game-developer/content/apache-spark@yrWiWJMSyTWxDakJbqacu.md diff --git a/src/data/roadmaps/server-side-game-developer/content/106-socket-programming/103-api/index.md b/src/data/roadmaps/server-side-game-developer/content/api@a2pcxVTGdAPw8aLvdr19M.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/106-socket-programming/103-api/index.md rename to src/data/roadmaps/server-side-game-developer/content/api@a2pcxVTGdAPw8aLvdr19M.md diff --git a/src/data/roadmaps/server-side-game-developer/content/104-ip/104-transactions/100-arp.md b/src/data/roadmaps/server-side-game-developer/content/arp@JI_wUdT2hjsrvbIhLvHcT.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/104-ip/104-transactions/100-arp.md rename to src/data/roadmaps/server-side-game-developer/content/arp@JI_wUdT2hjsrvbIhLvHcT.md diff --git a/src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/100-task-based/101-async-await.md b/src/data/roadmaps/server-side-game-developer/content/asnc-await-c@mAXMpUDmhGOncnCRrENJv.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/100-task-based/101-async-await.md rename to src/data/roadmaps/server-side-game-developer/content/asnc-await-c@mAXMpUDmhGOncnCRrENJv.md diff --git a/src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/101-asynchronous/index.md b/src/data/roadmaps/server-side-game-developer/content/asynchronous@ThBxS9xIMt9OrXfnto3rW.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/101-asynchronous/index.md rename to src/data/roadmaps/server-side-game-developer/content/asynchronous@ThBxS9xIMt9OrXfnto3rW.md diff --git a/src/data/roadmaps/server-side-game-developer/content/115-cloud/102-aws.md b/src/data/roadmaps/server-side-game-developer/content/aws@Rkx2A6oWsddlCTseZlpRU.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/115-cloud/102-aws.md rename to src/data/roadmaps/server-side-game-developer/content/aws@Rkx2A6oWsddlCTseZlpRU.md diff --git a/src/data/roadmaps/server-side-game-developer/content/118-ai/101-cloud-ml/101-azure-ml.md b/src/data/roadmaps/server-side-game-developer/content/azure-ml@vBqwmlzoT5XVEhV9IeGso.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/118-ai/101-cloud-ml/101-azure-ml.md rename to src/data/roadmaps/server-side-game-developer/content/azure-ml@vBqwmlzoT5XVEhV9IeGso.md diff --git a/src/data/roadmaps/server-side-game-developer/content/115-cloud/100-azure.md b/src/data/roadmaps/server-side-game-developer/content/azure@73uoFNGcCALxIuRNbebav.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/115-cloud/100-azure.md rename to src/data/roadmaps/server-side-game-developer/content/azure@73uoFNGcCALxIuRNbebav.md diff --git a/src/data/roadmaps/server-side-game-developer/content/108-multithreading/103-synchronization/100-barrier.md b/src/data/roadmaps/server-side-game-developer/content/barrier@6k25amPkU9lnZ7FMNn_T6.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/108-multithreading/103-synchronization/100-barrier.md rename to src/data/roadmaps/server-side-game-developer/content/barrier@6k25amPkU9lnZ7FMNn_T6.md diff --git a/src/data/roadmaps/server-side-game-developer/content/106-socket-programming/103-api/100-bsd-socket.md b/src/data/roadmaps/server-side-game-developer/content/bsd-socket@U_tZFM80W3xJx8jj4skCr.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/106-socket-programming/103-api/100-bsd-socket.md rename to src/data/roadmaps/server-side-game-developer/content/bsd-socket@U_tZFM80W3xJx8jj4skCr.md diff --git a/src/data/roadmaps/server-side-game-developer/content/106-socket-programming/100-byte-manipulation.md b/src/data/roadmaps/server-side-game-developer/content/byte-manipulation@H21PanCggDfQt34-JzgfO.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/106-socket-programming/100-byte-manipulation.md rename to src/data/roadmaps/server-side-game-developer/content/byte-manipulation@H21PanCggDfQt34-JzgfO.md diff --git a/src/data/roadmaps/server-side-game-developer/content/105-programming-languages/101-c-sharp.md b/src/data/roadmaps/server-side-game-developer/content/c@DuyUc9a-47Uz03yr4aeyg.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/105-programming-languages/101-c-sharp.md rename to src/data/roadmaps/server-side-game-developer/content/c@DuyUc9a-47Uz03yr4aeyg.md diff --git a/src/data/roadmaps/server-side-game-developer/content/104-ip/100-capability.md b/src/data/roadmaps/server-side-game-developer/content/capability@5kF1fqr-mn5-15e3aMa9k.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/104-ip/100-capability.md rename to src/data/roadmaps/server-side-game-developer/content/capability@5kF1fqr-mn5-15e3aMa9k.md diff --git a/src/data/roadmaps/server-side-game-developer/content/110-databases/101-nosql/102-cassandra.md b/src/data/roadmaps/server-side-game-developer/content/cassandra@1jqSxk1nwByiQa1De81F3.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/110-databases/101-nosql/102-cassandra.md rename to src/data/roadmaps/server-side-game-developer/content/cassandra@1jqSxk1nwByiQa1De81F3.md diff --git a/src/data/roadmaps/server-side-game-developer/content/104-ip/105-categories/index.md b/src/data/roadmaps/server-side-game-developer/content/category@NH2eQ1_nij1icTgoO027b.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/104-ip/105-categories/index.md rename to src/data/roadmaps/server-side-game-developer/content/category@NH2eQ1_nij1icTgoO027b.md diff --git a/src/data/roadmaps/server-side-game-developer/content/105-programming-languages/100-c-cpp.md b/src/data/roadmaps/server-side-game-developer/content/cc@E4H3hniIW6hKpH3Qr--N5.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/105-programming-languages/100-c-cpp.md rename to src/data/roadmaps/server-side-game-developer/content/cc@E4H3hniIW6hKpH3Qr--N5.md diff --git a/src/data/roadmaps/server-side-game-developer/content/channel@SXOEMkcVYBsRza6BPmmwy.md b/src/data/roadmaps/server-side-game-developer/content/channel@SXOEMkcVYBsRza6BPmmwy.md new file mode 100644 index 000000000..e69de29bb diff --git a/src/data/roadmaps/server-side-game-developer/content/101-tcp/100-checksum.md b/src/data/roadmaps/server-side-game-developer/content/checksum@XxBl-zO7CF6DpOZ2bMDxJ.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/101-tcp/100-checksum.md rename to src/data/roadmaps/server-side-game-developer/content/checksum@XxBl-zO7CF6DpOZ2bMDxJ.md diff --git a/src/data/roadmaps/server-side-game-developer/content/102-udp/103-checksum.md b/src/data/roadmaps/server-side-game-developer/content/checksum@tBOvBpDi3SOKZjAmkxdM0.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/102-udp/103-checksum.md rename to src/data/roadmaps/server-side-game-developer/content/checksum@tBOvBpDi3SOKZjAmkxdM0.md diff --git a/src/data/roadmaps/server-side-game-developer/content/111-cipher/index.md b/src/data/roadmaps/server-side-game-developer/content/cipher@1788KFqsQBkYARqA0T5GX.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/111-cipher/index.md rename to src/data/roadmaps/server-side-game-developer/content/cipher@1788KFqsQBkYARqA0T5GX.md diff --git a/src/data/roadmaps/server-side-game-developer/content/118-ai/101-cloud-ml/index.md b/src/data/roadmaps/server-side-game-developer/content/cloud-ml@XvvlvDKfYRCcYtTdWohsd.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/118-ai/101-cloud-ml/index.md rename to src/data/roadmaps/server-side-game-developer/content/cloud-ml@XvvlvDKfYRCcYtTdWohsd.md diff --git a/src/data/roadmaps/server-side-game-developer/content/115-cloud/index.md b/src/data/roadmaps/server-side-game-developer/content/cloud@hhtqvFfTCuVPT0OPu4Y1a.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/115-cloud/index.md rename to src/data/roadmaps/server-side-game-developer/content/cloud@hhtqvFfTCuVPT0OPu4Y1a.md diff --git a/src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/100-task-based/102-concurrency.md b/src/data/roadmaps/server-side-game-developer/content/concurrency-java@RT9XvlxvIM_hHTtNmbva3.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/100-task-based/102-concurrency.md rename to src/data/roadmaps/server-side-game-developer/content/concurrency-java@RT9XvlxvIM_hHTtNmbva3.md diff --git a/src/data/roadmaps/server-side-game-developer/content/108-multithreading/103-synchronization/103-condition-variable.md b/src/data/roadmaps/server-side-game-developer/content/condition-variable@xR6pERldq4wPl9GVLHAhT.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/108-multithreading/103-synchronization/103-condition-variable.md rename to src/data/roadmaps/server-side-game-developer/content/condition-variable@xR6pERldq4wPl9GVLHAhT.md diff --git a/src/data/roadmaps/server-side-game-developer/content/congestion-control@1GML0Jsfdb1Fn-0PNryiQ.md b/src/data/roadmaps/server-side-game-developer/content/congestion-control@1GML0Jsfdb1Fn-0PNryiQ.md new file mode 100644 index 000000000..e69de29bb diff --git a/src/data/roadmaps/server-side-game-developer/content/102-udp/102-congestion-control.md b/src/data/roadmaps/server-side-game-developer/content/congestion-control@jsNsyrGzegVnjIF2l52vI.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/102-udp/102-congestion-control.md rename to src/data/roadmaps/server-side-game-developer/content/congestion-control@jsNsyrGzegVnjIF2l52vI.md diff --git a/src/data/roadmaps/server-side-game-developer/content/101-tcp/103-vulnerability/101-connection-hijacking.md b/src/data/roadmaps/server-side-game-developer/content/connection-hijacking@ubRiY3jdh3iS3diN482IU.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/101-tcp/103-vulnerability/101-connection-hijacking.md rename to src/data/roadmaps/server-side-game-developer/content/connection-hijacking@ubRiY3jdh3iS3diN482IU.md diff --git a/src/data/roadmaps/server-side-game-developer/content/101-tcp/102-operations/100-connection.md b/src/data/roadmaps/server-side-game-developer/content/connection@5sI3RHaLudq4TfpjoYeOp.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/101-tcp/102-operations/100-connection.md rename to src/data/roadmaps/server-side-game-developer/content/connection@5sI3RHaLudq4TfpjoYeOp.md diff --git a/src/data/roadmaps/server-side-game-developer/content/117-containerization/index.md b/src/data/roadmaps/server-side-game-developer/content/containerization@k3FJY26SVxdZx4MLLE25h.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/117-containerization/index.md rename to src/data/roadmaps/server-side-game-developer/content/containerization@k3FJY26SVxdZx4MLLE25h.md diff --git a/src/data/roadmaps/server-side-game-developer/content/coroutine@o0Y_hM0KXUApfsXG4PvOY.md b/src/data/roadmaps/server-side-game-developer/content/coroutine@o0Y_hM0KXUApfsXG4PvOY.md new file mode 100644 index 000000000..e69de29bb diff --git a/src/data/roadmaps/server-side-game-developer/content/110-databases/101-nosql/103-couchbase.md b/src/data/roadmaps/server-side-game-developer/content/couchbase@6KTj_giX2k9l2lPd_Fp-d.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/110-databases/101-nosql/103-couchbase.md rename to src/data/roadmaps/server-side-game-developer/content/couchbase@6KTj_giX2k9l2lPd_Fp-d.md diff --git a/src/data/roadmaps/server-side-game-developer/content/110-databases/103-dal.md b/src/data/roadmaps/server-side-game-developer/content/dal@dt_SmZuwklLimhupvjxC1.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/110-databases/103-dal.md rename to src/data/roadmaps/server-side-game-developer/content/dal@dt_SmZuwklLimhupvjxC1.md diff --git a/src/data/roadmaps/server-side-game-developer/content/116-data-clustering/index.md b/src/data/roadmaps/server-side-game-developer/content/data-clustering@XCJvgUSS7-oDR-XGdDY33.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/116-data-clustering/index.md rename to src/data/roadmaps/server-side-game-developer/content/data-clustering@XCJvgUSS7-oDR-XGdDY33.md diff --git a/src/data/roadmaps/server-side-game-developer/content/101-tcp/102-operations/102-data-transfer/index.md b/src/data/roadmaps/server-side-game-developer/content/data-transfer@5bJUcx3v4dpdlIsx7bFvK.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/101-tcp/102-operations/102-data-transfer/index.md rename to src/data/roadmaps/server-side-game-developer/content/data-transfer@5bJUcx3v4dpdlIsx7bFvK.md diff --git a/src/data/roadmaps/server-side-game-developer/content/110-databases/index.md b/src/data/roadmaps/server-side-game-developer/content/databases@FLFaGZDg2MSG6_YHnWETM.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/110-databases/index.md rename to src/data/roadmaps/server-side-game-developer/content/databases@FLFaGZDg2MSG6_YHnWETM.md diff --git a/src/data/roadmaps/server-side-game-developer/content/104-ip/103-functions/100-datagram-construction.md b/src/data/roadmaps/server-side-game-developer/content/datagram-construction@jnQAzUUnwpJgoRuRIFtSe.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/104-ip/103-functions/100-datagram-construction.md rename to src/data/roadmaps/server-side-game-developer/content/datagram-construction@jnQAzUUnwpJgoRuRIFtSe.md diff --git a/src/data/roadmaps/server-side-game-developer/content/102-udp/101-datagram.md b/src/data/roadmaps/server-side-game-developer/content/datagram@wD_HWc9YxPhlkilt585pg.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/102-udp/101-datagram.md rename to src/data/roadmaps/server-side-game-developer/content/datagram@wD_HWc9YxPhlkilt585pg.md diff --git a/src/data/roadmaps/server-side-game-developer/content/118-ai/100-deep-learning/index.md b/src/data/roadmaps/server-side-game-developer/content/deep-learning@jkWvfp4GqckYPQ48GtjlR.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/118-ai/100-deep-learning/index.md rename to src/data/roadmaps/server-side-game-developer/content/deep-learning@jkWvfp4GqckYPQ48GtjlR.md diff --git a/src/data/roadmaps/server-side-game-developer/content/101-tcp/103-vulnerability/100-denial-of-service.md b/src/data/roadmaps/server-side-game-developer/content/denial-of-service@TbXJO__4xSnzK1fvvJK86.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/101-tcp/103-vulnerability/100-denial-of-service.md rename to src/data/roadmaps/server-side-game-developer/content/denial-of-service@TbXJO__4xSnzK1fvvJK86.md diff --git a/src/data/roadmaps/server-side-game-developer/content/109-programming-techniques/102-dependency-injection.md b/src/data/roadmaps/server-side-game-developer/content/dependency-injection@uTlxyDOtvt_Qp0gXLWO-j.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/109-programming-techniques/102-dependency-injection.md rename to src/data/roadmaps/server-side-game-developer/content/dependency-injection@uTlxyDOtvt_Qp0gXLWO-j.md diff --git a/src/data/roadmaps/server-side-game-developer/content/106-socket-programming/102-descriptor.md b/src/data/roadmaps/server-side-game-developer/content/descriptor@OAyMj6uLSv1yJ87YAjyZu.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/106-socket-programming/102-descriptor.md rename to src/data/roadmaps/server-side-game-developer/content/descriptor@OAyMj6uLSv1yJ87YAjyZu.md diff --git a/src/data/roadmaps/server-side-game-developer/content/109-programming-techniques/100-design-patterns.md b/src/data/roadmaps/server-side-game-developer/content/design-patterns@gB-TYpgUDV47bxznNJhYn.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/109-programming-techniques/100-design-patterns.md rename to src/data/roadmaps/server-side-game-developer/content/design-patterns@gB-TYpgUDV47bxznNJhYn.md diff --git a/src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/104-reactive-model/101-determinism.md b/src/data/roadmaps/server-side-game-developer/content/determinism@zFx1jjt1hKgCpYHFTzbZZ.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/104-reactive-model/101-determinism.md rename to src/data/roadmaps/server-side-game-developer/content/determinism@zFx1jjt1hKgCpYHFTzbZZ.md diff --git a/src/data/roadmaps/server-side-game-developer/content/104-ip/104-transactions/102-dhcp.md b/src/data/roadmaps/server-side-game-developer/content/dhcp@aTHJh-xw8soCxC1bIDdXm.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/104-ip/104-transactions/102-dhcp.md rename to src/data/roadmaps/server-side-game-developer/content/dhcp@aTHJh-xw8soCxC1bIDdXm.md diff --git a/src/data/roadmaps/server-side-game-developer/content/104-ip/104-transactions/101-dns.md b/src/data/roadmaps/server-side-game-developer/content/dns@yNytLrQAMKBw4t73YRL3J.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/104-ip/104-transactions/101-dns.md rename to src/data/roadmaps/server-side-game-developer/content/dns@yNytLrQAMKBw4t73YRL3J.md diff --git a/src/data/roadmaps/server-side-game-developer/content/117-containerization/100-docker/100-docker-compose.md b/src/data/roadmaps/server-side-game-developer/content/docker-compose@yAf7VDX7dyaT5AdlNnuKD.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/117-containerization/100-docker/100-docker-compose.md rename to src/data/roadmaps/server-side-game-developer/content/docker-compose@yAf7VDX7dyaT5AdlNnuKD.md diff --git a/src/data/roadmaps/server-side-game-developer/content/117-containerization/100-docker/index.md b/src/data/roadmaps/server-side-game-developer/content/docker@zW_7VLeEHQp8fp_f5N__0.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/117-containerization/100-docker/index.md rename to src/data/roadmaps/server-side-game-developer/content/docker@zW_7VLeEHQp8fp_f5N__0.md diff --git a/src/data/roadmaps/server-side-game-developer/content/109-programming-techniques/103-dump-analysis.md b/src/data/roadmaps/server-side-game-developer/content/dump-analysis@1c6EqGv1g-d8M1i0vKImb.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/109-programming-techniques/103-dump-analysis.md rename to src/data/roadmaps/server-side-game-developer/content/dump-analysis@1c6EqGv1g-d8M1i0vKImb.md diff --git a/src/data/roadmaps/server-side-game-developer/content/110-databases/101-nosql/100-dynamo-db.md b/src/data/roadmaps/server-side-game-developer/content/dynamodb@9vc7sFE_XakYXtKRMxLXi.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/110-databases/101-nosql/100-dynamo-db.md rename to src/data/roadmaps/server-side-game-developer/content/dynamodb@9vc7sFE_XakYXtKRMxLXi.md diff --git a/src/data/roadmaps/server-side-game-developer/content/epoll@qaWv4gxnnj3uX8lEm9KQ4.md b/src/data/roadmaps/server-side-game-developer/content/epoll@qaWv4gxnnj3uX8lEm9KQ4.md new file mode 100644 index 000000000..e69de29bb diff --git a/src/data/roadmaps/server-side-game-developer/content/105-programming-languages/103-erlang.md b/src/data/roadmaps/server-side-game-developer/content/erlang@QGtGx5LBEWa1DD3Y7ztUy.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/105-programming-languages/103-erlang.md rename to src/data/roadmaps/server-side-game-developer/content/erlang@QGtGx5LBEWa1DD3Y7ztUy.md diff --git a/src/data/roadmaps/server-side-game-developer/content/error-detection@vFM311xSa5OqNVove2f6j.md b/src/data/roadmaps/server-side-game-developer/content/error-detection@vFM311xSa5OqNVove2f6j.md new file mode 100644 index 000000000..e69de29bb diff --git a/src/data/roadmaps/server-side-game-developer/content/108-multithreading/102-fiber.md b/src/data/roadmaps/server-side-game-developer/content/fiber@TVJrlUsg30YIM1yjsZfJI.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/108-multithreading/102-fiber.md rename to src/data/roadmaps/server-side-game-developer/content/fiber@TVJrlUsg30YIM1yjsZfJI.md diff --git a/src/data/roadmaps/server-side-game-developer/content/flow-control@lDVD-3i64Mk7-KPJrXmFH.md b/src/data/roadmaps/server-side-game-developer/content/flow-control@lDVD-3i64Mk7-KPJrXmFH.md new file mode 100644 index 000000000..e69de29bb diff --git a/src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/103-reactive-approach/101-frp.md b/src/data/roadmaps/server-side-game-developer/content/frp@xDYOvIbXc-iJ2zOKqe0YL.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/103-reactive-approach/101-frp.md rename to src/data/roadmaps/server-side-game-developer/content/frp@xDYOvIbXc-iJ2zOKqe0YL.md diff --git a/src/data/roadmaps/server-side-game-developer/content/104-ip/103-functions/index.md b/src/data/roadmaps/server-side-game-developer/content/function@YPvm8XD_FaFYCQ-b7-KsH.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/104-ip/103-functions/index.md rename to src/data/roadmaps/server-side-game-developer/content/function@YPvm8XD_FaFYCQ-b7-KsH.md diff --git a/src/data/roadmaps/server-side-game-developer/content/109-programming-techniques/104-functional-programming.md b/src/data/roadmaps/server-side-game-developer/content/functional-programming@HXSWvhgT4L5w6xgOO-3kj.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/109-programming-techniques/104-functional-programming.md rename to src/data/roadmaps/server-side-game-developer/content/functional-programming@HXSWvhgT4L5w6xgOO-3kj.md diff --git a/src/data/roadmaps/server-side-game-developer/content/108-multithreading/103-synchronization/104-future-promises/index.md b/src/data/roadmaps/server-side-game-developer/content/future--promises@zbIbPlqTNSbJUkqH9iLQv.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/108-multithreading/103-synchronization/104-future-promises/index.md rename to src/data/roadmaps/server-side-game-developer/content/future--promises@zbIbPlqTNSbJUkqH9iLQv.md diff --git a/src/data/roadmaps/server-side-game-developer/content/115-cloud/101-gcp.md b/src/data/roadmaps/server-side-game-developer/content/gcp@wD6dUrS-tP2gpCHPghFp5.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/115-cloud/101-gcp.md rename to src/data/roadmaps/server-side-game-developer/content/gcp@wD6dUrS-tP2gpCHPghFp5.md diff --git a/src/data/roadmaps/server-side-game-developer/content/go@d5iQYn97vuoxJnCFGPdOa.md b/src/data/roadmaps/server-side-game-developer/content/go@d5iQYn97vuoxJnCFGPdOa.md new file mode 100644 index 000000000..59448b216 --- /dev/null +++ b/src/data/roadmaps/server-side-game-developer/content/go@d5iQYn97vuoxJnCFGPdOa.md @@ -0,0 +1 @@ +# Go \ No newline at end of file diff --git a/src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/100-task-based/103-goroutine.md b/src/data/roadmaps/server-side-game-developer/content/goroutine-go@f-L_eaZd0EjBW9-n9Pllt.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/100-task-based/103-goroutine.md rename to src/data/roadmaps/server-side-game-developer/content/goroutine-go@f-L_eaZd0EjBW9-n9Pllt.md diff --git a/src/data/roadmaps/server-side-game-developer/content/112-rpc-rest/101-grpc.md b/src/data/roadmaps/server-side-game-developer/content/grpc@_uqTTBUYAzDHbEUkDzmzg.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/112-rpc-rest/101-grpc.md rename to src/data/roadmaps/server-side-game-developer/content/grpc@_uqTTBUYAzDHbEUkDzmzg.md diff --git a/src/data/roadmaps/server-side-game-developer/content/103-tcp-vs-udp/102-heavyweight-vs-lightweight.md b/src/data/roadmaps/server-side-game-developer/content/heavy-vs-lightweight@OYXKtl4A-vaK6yGO6hS6n.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/103-tcp-vs-udp/102-heavyweight-vs-lightweight.md rename to src/data/roadmaps/server-side-game-developer/content/heavy-vs-lightweight@OYXKtl4A-vaK6yGO6hS6n.md diff --git a/src/data/roadmaps/server-side-game-developer/content/index.md b/src/data/roadmaps/server-side-game-developer/content/index.md deleted file mode 100644 index 4e768b56d..000000000 --- a/src/data/roadmaps/server-side-game-developer/content/index.md +++ /dev/null @@ -1 +0,0 @@ -# \ No newline at end of file diff --git a/src/data/roadmaps/server-side-game-developer/content/io_uring@YH7u1FKh85wz78J0stuzS.md b/src/data/roadmaps/server-side-game-developer/content/io_uring@YH7u1FKh85wz78J0stuzS.md new file mode 100644 index 000000000..e69de29bb diff --git a/src/data/roadmaps/server-side-game-developer/content/iocp@7pgdOZomhGilBTwfJLMbm.md b/src/data/roadmaps/server-side-game-developer/content/iocp@7pgdOZomhGilBTwfJLMbm.md new file mode 100644 index 000000000..e69de29bb diff --git a/src/data/roadmaps/server-side-game-developer/content/104-ip/103-functions/101-ip-addressing.md b/src/data/roadmaps/server-side-game-developer/content/ip-addressing@3ZcJNDCHw2pFzewmoB-03.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/104-ip/103-functions/101-ip-addressing.md rename to src/data/roadmaps/server-side-game-developer/content/ip-addressing@3ZcJNDCHw2pFzewmoB-03.md diff --git a/src/data/roadmaps/server-side-game-developer/content/104-ip/index.md b/src/data/roadmaps/server-side-game-developer/content/ip@tg94V7K0mgYhpkUMp_Scv.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/104-ip/index.md rename to src/data/roadmaps/server-side-game-developer/content/ip@tg94V7K0mgYhpkUMp_Scv.md diff --git a/src/data/roadmaps/server-side-game-developer/content/104-ip/105-categories/100-ipv4.md b/src/data/roadmaps/server-side-game-developer/content/ipv4@pHVB0K8Vtk3ToD6n_f1wv.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/104-ip/105-categories/100-ipv4.md rename to src/data/roadmaps/server-side-game-developer/content/ipv4@pHVB0K8Vtk3ToD6n_f1wv.md diff --git a/src/data/roadmaps/server-side-game-developer/content/104-ip/105-categories/101-ipv6.md b/src/data/roadmaps/server-side-game-developer/content/ipv6@TqBlAMfhARhlJed6xD7eg.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/104-ip/105-categories/101-ipv6.md rename to src/data/roadmaps/server-side-game-developer/content/ipv6@TqBlAMfhARhlJed6xD7eg.md diff --git a/src/data/roadmaps/server-side-game-developer/content/105-programming-languages/102-java.md b/src/data/roadmaps/server-side-game-developer/content/java@LG8JPL1po-gEs1V5JyC8F.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/105-programming-languages/102-java.md rename to src/data/roadmaps/server-side-game-developer/content/java@LG8JPL1po-gEs1V5JyC8F.md diff --git a/src/data/roadmaps/server-side-game-developer/content/105-programming-languages/104-javascript.md b/src/data/roadmaps/server-side-game-developer/content/javascript@ufufnULqsglE5VhEIAdSI.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/105-programming-languages/104-javascript.md rename to src/data/roadmaps/server-side-game-developer/content/javascript@ufufnULqsglE5VhEIAdSI.md diff --git a/src/data/roadmaps/server-side-game-developer/content/107-serialization/100-json.md b/src/data/roadmaps/server-side-game-developer/content/json@y0ZJQQfi8Qx6sB4WnZlP5.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/107-serialization/100-json.md rename to src/data/roadmaps/server-side-game-developer/content/json@y0ZJQQfi8Qx6sB4WnZlP5.md diff --git a/src/data/roadmaps/server-side-game-developer/content/kqueue@caK32NMMrn-3BGAXZoPPr.md b/src/data/roadmaps/server-side-game-developer/content/kqueue@caK32NMMrn-3BGAXZoPPr.md new file mode 100644 index 000000000..e69de29bb diff --git a/src/data/roadmaps/server-side-game-developer/content/117-containerization/100-docker/101-kubernetes.md b/src/data/roadmaps/server-side-game-developer/content/kubernetes@lUBUUoETjfADmM4OPtwwX.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/117-containerization/100-docker/101-kubernetes.md rename to src/data/roadmaps/server-side-game-developer/content/kubernetes@lUBUUoETjfADmM4OPtwwX.md diff --git a/src/data/roadmaps/server-side-game-developer/content/104-ip/102-link-capacity.md b/src/data/roadmaps/server-side-game-developer/content/link-capacity@OzY-LPcfj1sBm_0F0WbIJ.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/104-ip/102-link-capacity.md rename to src/data/roadmaps/server-side-game-developer/content/link-capacity@OzY-LPcfj1sBm_0F0WbIJ.md diff --git a/src/data/roadmaps/server-side-game-developer/content/101-tcp/102-operations/103-max-segment-scaling.md b/src/data/roadmaps/server-side-game-developer/content/max-segment-scaling@1l5dhQWYPhUSg-cy5pSlK.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/101-tcp/102-operations/103-max-segment-scaling.md rename to src/data/roadmaps/server-side-game-developer/content/max-segment-scaling@1l5dhQWYPhUSg-cy5pSlK.md diff --git a/src/data/roadmaps/server-side-game-developer/content/max-segment-size@w6ysmcsBn9jJ8xMvg7hcD.md b/src/data/roadmaps/server-side-game-developer/content/max-segment-size@w6ysmcsBn9jJ8xMvg7hcD.md new file mode 100644 index 000000000..d938409cd --- /dev/null +++ b/src/data/roadmaps/server-side-game-developer/content/max-segment-size@w6ysmcsBn9jJ8xMvg7hcD.md @@ -0,0 +1 @@ +# Max Segment Size \ No newline at end of file diff --git a/src/data/roadmaps/server-side-game-developer/content/110-databases/104-key-value/101-memcached.md b/src/data/roadmaps/server-side-game-developer/content/memcached@ayeezKxQkXAPJMTShsOBU.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/110-databases/104-key-value/101-memcached.md rename to src/data/roadmaps/server-side-game-developer/content/memcached@ayeezKxQkXAPJMTShsOBU.md diff --git a/src/data/roadmaps/server-side-game-developer/content/113-message-queues/index.md b/src/data/roadmaps/server-side-game-developer/content/message-queues@cw7WdFfL5HpeZ_n8wYk2t.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/113-message-queues/index.md rename to src/data/roadmaps/server-side-game-developer/content/message-queues@cw7WdFfL5HpeZ_n8wYk2t.md diff --git a/src/data/roadmaps/server-side-game-developer/content/110-databases/101-nosql/101-mongodb.md b/src/data/roadmaps/server-side-game-developer/content/mongodb@HYxtPW401-J6aYcTuiGnx.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/110-databases/101-nosql/101-mongodb.md rename to src/data/roadmaps/server-side-game-developer/content/mongodb@HYxtPW401-J6aYcTuiGnx.md diff --git a/src/data/roadmaps/server-side-game-developer/content/110-databases/100-rdbms/100-mssql.md b/src/data/roadmaps/server-side-game-developer/content/ms-sql@QMNUAKAuRI9lyf2_jUPsj.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/110-databases/100-rdbms/100-mssql.md rename to src/data/roadmaps/server-side-game-developer/content/ms-sql@QMNUAKAuRI9lyf2_jUPsj.md diff --git a/src/data/roadmaps/server-side-game-developer/content/108-multithreading/index.md b/src/data/roadmaps/server-side-game-developer/content/multithreading@3QSLUMKD0G08N3MIb1cG7.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/108-multithreading/index.md rename to src/data/roadmaps/server-side-game-developer/content/multithreading@3QSLUMKD0G08N3MIb1cG7.md diff --git a/src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/index.md b/src/data/roadmaps/server-side-game-developer/content/multithreading@_jd91rrAXGbJI9RhXlSx8.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/index.md rename to src/data/roadmaps/server-side-game-developer/content/multithreading@_jd91rrAXGbJI9RhXlSx8.md diff --git a/src/data/roadmaps/server-side-game-developer/content/108-multithreading/103-synchronization/102-mutex/index.md b/src/data/roadmaps/server-side-game-developer/content/mutex@G_BEJKkJ1_Nc43aosy_iS.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/108-multithreading/103-synchronization/102-mutex/index.md rename to src/data/roadmaps/server-side-game-developer/content/mutex@G_BEJKkJ1_Nc43aosy_iS.md diff --git a/src/data/roadmaps/server-side-game-developer/content/110-databases/100-rdbms/101-mysql.md b/src/data/roadmaps/server-side-game-developer/content/mysql@HsBqd08Ro0VJnx0FlumMQ.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/110-databases/100-rdbms/101-mysql.md rename to src/data/roadmaps/server-side-game-developer/content/mysql@HsBqd08Ro0VJnx0FlumMQ.md diff --git a/src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/103-reactive-approach/100-oorp.md b/src/data/roadmaps/server-side-game-developer/content/oorp@yWj70LpF4LKB8J6GbYvsq.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/103-reactive-approach/100-oorp.md rename to src/data/roadmaps/server-side-game-developer/content/oorp@yWj70LpF4LKB8J6GbYvsq.md diff --git a/src/data/roadmaps/server-side-game-developer/content/103-tcp-vs-udp/101-ordered-vs-not-ordered.md b/src/data/roadmaps/server-side-game-developer/content/ordered-vs-unordered@WMdCDmFsytsF2AWQXfzC8.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/103-tcp-vs-udp/101-ordered-vs-not-ordered.md rename to src/data/roadmaps/server-side-game-developer/content/ordered-vs-unordered@WMdCDmFsytsF2AWQXfzC8.md diff --git a/src/data/roadmaps/server-side-game-developer/content/110-databases/102-orm.md b/src/data/roadmaps/server-side-game-developer/content/orm@OyxWMFy8s7Lxko_K89fjo.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/110-databases/102-orm.md rename to src/data/roadmaps/server-side-game-developer/content/orm@OyxWMFy8s7Lxko_K89fjo.md diff --git a/src/data/roadmaps/server-side-game-developer/content/101-tcp/102-operations/106-out-of-band-data.md b/src/data/roadmaps/server-side-game-developer/content/out-of-band-data@3OMu3RM-6pMjqY1jAmC2-.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/101-tcp/102-operations/106-out-of-band-data.md rename to src/data/roadmaps/server-side-game-developer/content/out-of-band-data@3OMu3RM-6pMjqY1jAmC2-.md diff --git a/src/data/roadmaps/server-side-game-developer/content/102-udp/104-packet-structure.md b/src/data/roadmaps/server-side-game-developer/content/packet-structure@CCxVnrGDKa1EROXgF_OAm.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/102-udp/104-packet-structure.md rename to src/data/roadmaps/server-side-game-developer/content/packet-structure@CCxVnrGDKa1EROXgF_OAm.md diff --git a/src/data/roadmaps/server-side-game-developer/content/103-tcp-vs-udp/103-packet-vs-datagram.md b/src/data/roadmaps/server-side-game-developer/content/packet-vs-datagram@JE3uZ5U6oe6dVzsmglTl2.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/103-tcp-vs-udp/103-packet-vs-datagram.md rename to src/data/roadmaps/server-side-game-developer/content/packet-vs-datagram@JE3uZ5U6oe6dVzsmglTl2.md diff --git a/src/data/roadmaps/server-side-game-developer/content/110-databases/100-rdbms/102-postgresql.md b/src/data/roadmaps/server-side-game-developer/content/postgresql@dAiEwN7phwMyaitvM5kRl.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/110-databases/100-rdbms/102-postgresql.md rename to src/data/roadmaps/server-side-game-developer/content/postgresql@dAiEwN7phwMyaitvM5kRl.md diff --git a/src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/101-asynchronous/100-proactor/index.md b/src/data/roadmaps/server-side-game-developer/content/proactor@Tvxe2NemcH21y-eB4bosv.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/101-asynchronous/100-proactor/index.md rename to src/data/roadmaps/server-side-game-developer/content/proactor@Tvxe2NemcH21y-eB4bosv.md diff --git a/src/data/roadmaps/server-side-game-developer/content/105-programming-languages/index.md b/src/data/roadmaps/server-side-game-developer/content/programming-languages@6ilqzjvI4J1pUCmTJ33PA.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/105-programming-languages/index.md rename to src/data/roadmaps/server-side-game-developer/content/programming-languages@6ilqzjvI4J1pUCmTJ33PA.md diff --git a/src/data/roadmaps/server-side-game-developer/content/109-programming-techniques/index.md b/src/data/roadmaps/server-side-game-developer/content/programming-techniques@tGQu18PWDatW7HvkTP-uh.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/109-programming-techniques/index.md rename to src/data/roadmaps/server-side-game-developer/content/programming-techniques@tGQu18PWDatW7HvkTP-uh.md diff --git a/src/data/roadmaps/server-side-game-developer/content/107-serialization/104-protobuf.md b/src/data/roadmaps/server-side-game-developer/content/protobuf@w2zbab_6Gxw6AWS0N759U.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/107-serialization/104-protobuf.md rename to src/data/roadmaps/server-side-game-developer/content/protobuf@w2zbab_6Gxw6AWS0N759U.md diff --git a/src/data/roadmaps/server-side-game-developer/content/108-multithreading/100-thread-localstorage/101-pthread.md b/src/data/roadmaps/server-side-game-developer/content/pthread@HU0yUyl89WD8WnR9PJn7l.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/108-multithreading/100-thread-localstorage/101-pthread.md rename to src/data/roadmaps/server-side-game-developer/content/pthread@HU0yUyl89WD8WnR9PJn7l.md diff --git a/src/data/roadmaps/server-side-game-developer/content/118-ai/100-deep-learning/101-pytorch.md b/src/data/roadmaps/server-side-game-developer/content/pytorch@LTSIfq10qDJMTCnIIyqvb.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/118-ai/100-deep-learning/101-pytorch.md rename to src/data/roadmaps/server-side-game-developer/content/pytorch@LTSIfq10qDJMTCnIIyqvb.md diff --git a/src/data/roadmaps/server-side-game-developer/content/113-message-queues/101-rabbitmq.md b/src/data/roadmaps/server-side-game-developer/content/rabbitmq@UESjGrFyUbNf4pQamaBoy.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/113-message-queues/101-rabbitmq.md rename to src/data/roadmaps/server-side-game-developer/content/rabbitmq@UESjGrFyUbNf4pQamaBoy.md diff --git a/src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/103-reactive-approach/index.md b/src/data/roadmaps/server-side-game-developer/content/reactive-approach@LVwGXmZhMewGQy61qwNyu.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/103-reactive-approach/index.md rename to src/data/roadmaps/server-side-game-developer/content/reactive-approach@LVwGXmZhMewGQy61qwNyu.md diff --git a/src/data/roadmaps/server-side-game-developer/content/reactive-approach@Vl-WW0LThrQTOO_tFl51B.md b/src/data/roadmaps/server-side-game-developer/content/reactive-approach@Vl-WW0LThrQTOO_tFl51B.md new file mode 100644 index 000000000..19e971698 --- /dev/null +++ b/src/data/roadmaps/server-side-game-developer/content/reactive-approach@Vl-WW0LThrQTOO_tFl51B.md @@ -0,0 +1 @@ +# Reactive Approach \ No newline at end of file diff --git a/src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/104-reactive-model/index.md b/src/data/roadmaps/server-side-game-developer/content/reactive-model@p0P3ZGq_QTCop0vMwe7P3.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/104-reactive-model/index.md rename to src/data/roadmaps/server-side-game-developer/content/reactive-model@p0P3ZGq_QTCop0vMwe7P3.md diff --git a/src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/101-asynchronous/101-reactor/index.md b/src/data/roadmaps/server-side-game-developer/content/reactor@7mYpgn2gr-5vAYW-UR7_x.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/101-asynchronous/101-reactor/index.md rename to src/data/roadmaps/server-side-game-developer/content/reactor@7mYpgn2gr-5vAYW-UR7_x.md diff --git a/src/data/roadmaps/server-side-game-developer/content/110-databases/104-key-value/100-redis.md b/src/data/roadmaps/server-side-game-developer/content/redis@7YNaELVcoV7DV1Fa06USi.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/110-databases/104-key-value/100-redis.md rename to src/data/roadmaps/server-side-game-developer/content/redis@7YNaELVcoV7DV1Fa06USi.md diff --git a/src/data/roadmaps/server-side-game-developer/content/registered-io@94hJX1iGifDzIuaU3zU5j.md b/src/data/roadmaps/server-side-game-developer/content/registered-io@94hJX1iGifDzIuaU3zU5j.md new file mode 100644 index 000000000..e69de29bb diff --git a/src/data/roadmaps/server-side-game-developer/content/104-ip/101-reliability.md b/src/data/roadmaps/server-side-game-developer/content/reliability@2jDV-ovvrkBbTTLk5VbR9.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/104-ip/101-reliability.md rename to src/data/roadmaps/server-side-game-developer/content/reliability@2jDV-ovvrkBbTTLk5VbR9.md diff --git a/src/data/roadmaps/server-side-game-developer/content/102-udp/100-reliability.md b/src/data/roadmaps/server-side-game-developer/content/reliability@Vh81GnOUOZvDOlOyI5PwT.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/102-udp/100-reliability.md rename to src/data/roadmaps/server-side-game-developer/content/reliability@Vh81GnOUOZvDOlOyI5PwT.md diff --git a/src/data/roadmaps/server-side-game-developer/content/reliable-transmission@X2KHWgQZDHSVDsTRMUwSj.md b/src/data/roadmaps/server-side-game-developer/content/reliable-transmission@X2KHWgQZDHSVDsTRMUwSj.md new file mode 100644 index 000000000..e69de29bb diff --git a/src/data/roadmaps/server-side-game-developer/content/103-tcp-vs-udp/100-reliable-vs-unreliable.md b/src/data/roadmaps/server-side-game-developer/content/reliable-vs-unreliable@MoyBGT9bscUe8vMN4J0bG.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/103-tcp-vs-udp/100-reliable-vs-unreliable.md rename to src/data/roadmaps/server-side-game-developer/content/reliable-vs-unreliable@MoyBGT9bscUe8vMN4J0bG.md diff --git a/src/data/roadmaps/server-side-game-developer/content/101-tcp/102-operations/101-resource-usage.md b/src/data/roadmaps/server-side-game-developer/content/resource-usage@LkGI0VpJ3WkpPHkJhJgWk.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/101-tcp/102-operations/101-resource-usage.md rename to src/data/roadmaps/server-side-game-developer/content/resource-usage@LkGI0VpJ3WkpPHkJhJgWk.md diff --git a/src/data/roadmaps/server-side-game-developer/content/112-rpc-rest/100-rest.md b/src/data/roadmaps/server-side-game-developer/content/rest@Oq3GQ5gBUxIl1Qe8NB3LB.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/112-rpc-rest/100-rest.md rename to src/data/roadmaps/server-side-game-developer/content/rest@Oq3GQ5gBUxIl1Qe8NB3LB.md diff --git a/src/data/roadmaps/server-side-game-developer/content/104-ip/103-functions/102-routing.md b/src/data/roadmaps/server-side-game-developer/content/routing@bYb7nA-Vn9e6VtdbUT3tq.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/104-ip/103-functions/102-routing.md rename to src/data/roadmaps/server-side-game-developer/content/routing@bYb7nA-Vn9e6VtdbUT3tq.md diff --git a/src/data/roadmaps/server-side-game-developer/content/112-rpc-rest/index.md b/src/data/roadmaps/server-side-game-developer/content/rpc--rest@YxaroYL_Az0vKRCeu2jsp.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/112-rpc-rest/index.md rename to src/data/roadmaps/server-side-game-developer/content/rpc--rest@YxaroYL_Az0vKRCeu2jsp.md diff --git a/src/data/roadmaps/server-side-game-developer/content/104-ip/106-security/index.md b/src/data/roadmaps/server-side-game-developer/content/security@qkO0s9zR0sAnjTRWcrLQY.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/104-ip/106-security/index.md rename to src/data/roadmaps/server-side-game-developer/content/security@qkO0s9zR0sAnjTRWcrLQY.md diff --git a/src/data/roadmaps/server-side-game-developer/content/101-tcp/101-segment-structure.md b/src/data/roadmaps/server-side-game-developer/content/segment-structure@zTCmPUp9j5P1wpGgiboMa.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/101-tcp/101-segment-structure.md rename to src/data/roadmaps/server-side-game-developer/content/segment-structure@zTCmPUp9j5P1wpGgiboMa.md diff --git a/src/data/roadmaps/server-side-game-developer/content/select@5-5toy2CblZPCV9d5QPEo.md b/src/data/roadmaps/server-side-game-developer/content/select@5-5toy2CblZPCV9d5QPEo.md new file mode 100644 index 000000000..e69de29bb diff --git a/src/data/roadmaps/server-side-game-developer/content/101-tcp/102-operations/107-selective-acknowledgement.md b/src/data/roadmaps/server-side-game-developer/content/selective-ack@SPpOO25b7wpajWDIrKi1u.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/101-tcp/102-operations/107-selective-acknowledgement.md rename to src/data/roadmaps/server-side-game-developer/content/selective-ack@SPpOO25b7wpajWDIrKi1u.md diff --git a/src/data/roadmaps/server-side-game-developer/content/semaphore@DYvzGc_r0SlOArPPc1gNI.md b/src/data/roadmaps/server-side-game-developer/content/semaphore@DYvzGc_r0SlOArPPc1gNI.md new file mode 100644 index 000000000..e69de29bb diff --git a/src/data/roadmaps/server-side-game-developer/content/107-serialization/index.md b/src/data/roadmaps/server-side-game-developer/content/serialization@TS6dz61rUSxm-SqmK6JKe.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/107-serialization/index.md rename to src/data/roadmaps/server-side-game-developer/content/serialization@TS6dz61rUSxm-SqmK6JKe.md diff --git a/src/data/roadmaps/server-side-game-developer/content/100-server-side.md b/src/data/roadmaps/server-side-game-developer/content/server-side-development@rQArtuVKGVgLn_fw9yO3b.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/100-server-side.md rename to src/data/roadmaps/server-side-game-developer/content/server-side-development@rQArtuVKGVgLn_fw9yO3b.md diff --git a/src/data/roadmaps/server-side-game-developer/content/115-cloud/103-serverless.md b/src/data/roadmaps/server-side-game-developer/content/serverless@DOmbRRK_RRPElOuTB7AAK.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/115-cloud/103-serverless.md rename to src/data/roadmaps/server-side-game-developer/content/serverless@DOmbRRK_RRPElOuTB7AAK.md diff --git a/src/data/roadmaps/server-side-game-developer/content/108-multithreading/101-sharding.md b/src/data/roadmaps/server-side-game-developer/content/sharding@3use5vuLBJTk40wOg9S-X.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/108-multithreading/101-sharding.md rename to src/data/roadmaps/server-side-game-developer/content/sharding@3use5vuLBJTk40wOg9S-X.md diff --git a/src/data/roadmaps/server-side-game-developer/content/106-socket-programming/index.md b/src/data/roadmaps/server-side-game-developer/content/socket-programming@HvpuFTCknHPhnFkhmhRc4.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/106-socket-programming/index.md rename to src/data/roadmaps/server-side-game-developer/content/socket-programming@HvpuFTCknHPhnFkhmhRc4.md diff --git a/src/data/roadmaps/server-side-game-developer/content/108-multithreading/103-synchronization/101-spinlock.md b/src/data/roadmaps/server-side-game-developer/content/spinlock@lVXfA_oZr82mFfBvLnnRK.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/108-multithreading/103-synchronization/101-spinlock.md rename to src/data/roadmaps/server-side-game-developer/content/spinlock@lVXfA_oZr82mFfBvLnnRK.md diff --git a/src/data/roadmaps/server-side-game-developer/content/111-cipher/100-ssl.md b/src/data/roadmaps/server-side-game-developer/content/ssl@PSvPjaVtko71BeIA-hYqf.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/111-cipher/100-ssl.md rename to src/data/roadmaps/server-side-game-developer/content/ssl@PSvPjaVtko71BeIA-hYqf.md diff --git a/src/data/roadmaps/server-side-game-developer/content/103-tcp-vs-udp/104-streaming-vs-broadcast.md b/src/data/roadmaps/server-side-game-developer/content/streaming-vs-broadcast@pJw8fN1dt3BABtZVz7wGE.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/103-tcp-vs-udp/104-streaming-vs-broadcast.md rename to src/data/roadmaps/server-side-game-developer/content/streaming-vs-broadcast@pJw8fN1dt3BABtZVz7wGE.md diff --git a/src/data/roadmaps/server-side-game-developer/content/108-multithreading/103-synchronization/index.md b/src/data/roadmaps/server-side-game-developer/content/synchronization@idmrgKgVWVLZYANbXiZnS.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/108-multithreading/103-synchronization/index.md rename to src/data/roadmaps/server-side-game-developer/content/synchronization@idmrgKgVWVLZYANbXiZnS.md diff --git a/src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/104-reactive-model/100-synchrony.md b/src/data/roadmaps/server-side-game-developer/content/synchrony@l5QTk408Ubagw8XzRAfoZ.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/104-reactive-model/100-synchrony.md rename to src/data/roadmaps/server-side-game-developer/content/synchrony@l5QTk408Ubagw8XzRAfoZ.md diff --git a/src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/100-task-based/index.md b/src/data/roadmaps/server-side-game-developer/content/task-based@LKPcEeqBOPhQOztD3cM3T.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/100-task-based/index.md rename to src/data/roadmaps/server-side-game-developer/content/task-based@LKPcEeqBOPhQOztD3cM3T.md diff --git a/src/data/roadmaps/server-side-game-developer/content/103-tcp-vs-udp/index.md b/src/data/roadmaps/server-side-game-developer/content/tcp-vs-udp@RfTcTUjaXyp49FnUf44MK.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/103-tcp-vs-udp/index.md rename to src/data/roadmaps/server-side-game-developer/content/tcp-vs-udp@RfTcTUjaXyp49FnUf44MK.md diff --git a/src/data/roadmaps/server-side-game-developer/content/101-tcp/index.md b/src/data/roadmaps/server-side-game-developer/content/tcp@mUCidjOsVLMAVDf2jmV5F.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/101-tcp/index.md rename to src/data/roadmaps/server-side-game-developer/content/tcp@mUCidjOsVLMAVDf2jmV5F.md diff --git a/src/data/roadmaps/server-side-game-developer/content/109-programming-techniques/101-tdd.md b/src/data/roadmaps/server-side-game-developer/content/tdd@FKOhe21PVlaKIoZI4hd49.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/109-programming-techniques/101-tdd.md rename to src/data/roadmaps/server-side-game-developer/content/tdd@FKOhe21PVlaKIoZI4hd49.md diff --git a/src/data/roadmaps/server-side-game-developer/content/118-ai/100-deep-learning/100-tensor-flow.md b/src/data/roadmaps/server-side-game-developer/content/tensorflow@iJE9RnKC8QjPnsFeZAbtl.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/118-ai/100-deep-learning/100-tensor-flow.md rename to src/data/roadmaps/server-side-game-developer/content/tensorflow@iJE9RnKC8QjPnsFeZAbtl.md diff --git a/src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/100-task-based/100-thread-building-block.md b/src/data/roadmaps/server-side-game-developer/content/thread-building-block-c@tiG0mZpLJ2zUr2IPYyhnv.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/100-task-based/100-thread-building-block.md rename to src/data/roadmaps/server-side-game-developer/content/thread-building-block-c@tiG0mZpLJ2zUr2IPYyhnv.md diff --git a/src/data/roadmaps/server-side-game-developer/content/108-multithreading/100-thread-localstorage/index.md b/src/data/roadmaps/server-side-game-developer/content/thread-local-storage@IeD-oQ1bkwlKNC-R0lJjZ.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/108-multithreading/100-thread-localstorage/index.md rename to src/data/roadmaps/server-side-game-developer/content/thread-local-storage@IeD-oQ1bkwlKNC-R0lJjZ.md diff --git a/src/data/roadmaps/server-side-game-developer/content/101-tcp/102-operations/105-timestamp.md b/src/data/roadmaps/server-side-game-developer/content/timestamp@6KAYNPLEFMp6Jha8FLMAU.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/101-tcp/102-operations/105-timestamp.md rename to src/data/roadmaps/server-side-game-developer/content/timestamp@6KAYNPLEFMp6Jha8FLMAU.md diff --git a/src/data/roadmaps/server-side-game-developer/content/104-ip/106-security/100-tls.md b/src/data/roadmaps/server-side-game-developer/content/tls@FX8ASd-QzTUFDHzBB93WK.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/104-ip/106-security/100-tls.md rename to src/data/roadmaps/server-side-game-developer/content/tls@FX8ASd-QzTUFDHzBB93WK.md diff --git a/src/data/roadmaps/server-side-game-developer/content/107-serialization/103-toml.md b/src/data/roadmaps/server-side-game-developer/content/toml@l8iEC3g0ICSfmIE1MxcUl.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/107-serialization/103-toml.md rename to src/data/roadmaps/server-side-game-developer/content/toml@l8iEC3g0ICSfmIE1MxcUl.md diff --git a/src/data/roadmaps/server-side-game-developer/content/104-ip/104-transactions/index.md b/src/data/roadmaps/server-side-game-developer/content/transactions@r2OeI7YC1BLLfctC8q69W.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/104-ip/104-transactions/index.md rename to src/data/roadmaps/server-side-game-developer/content/transactions@r2OeI7YC1BLLfctC8q69W.md diff --git a/src/data/roadmaps/server-side-game-developer/content/102-udp/index.md b/src/data/roadmaps/server-side-game-developer/content/udp@IMyHwnXxJK6oFxzOMLxjS.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/102-udp/index.md rename to src/data/roadmaps/server-side-game-developer/content/udp@IMyHwnXxJK6oFxzOMLxjS.md diff --git a/src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/104-reactive-model/102-update-process.md b/src/data/roadmaps/server-side-game-developer/content/update-process@3Eat22rFjUl4eTtGz8u4N.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/114-mutlithreading-2/104-reactive-model/102-update-process.md rename to src/data/roadmaps/server-side-game-developer/content/update-process@3Eat22rFjUl4eTtGz8u4N.md diff --git a/src/data/roadmaps/server-side-game-developer/content/101-tcp/103-vulnerability/102-veto.md b/src/data/roadmaps/server-side-game-developer/content/veto@ZLTfpRZ0rF-mtd7Z0R2WF.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/101-tcp/103-vulnerability/102-veto.md rename to src/data/roadmaps/server-side-game-developer/content/veto@ZLTfpRZ0rF-mtd7Z0R2WF.md diff --git a/src/data/roadmaps/server-side-game-developer/content/101-tcp/103-vulnerability/index.md b/src/data/roadmaps/server-side-game-developer/content/vulnerability@MwLWDlciJOq_0n5S3GoF-.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/101-tcp/103-vulnerability/index.md rename to src/data/roadmaps/server-side-game-developer/content/vulnerability@MwLWDlciJOq_0n5S3GoF-.md diff --git a/src/data/roadmaps/server-side-game-developer/content/101-tcp/102-operations/104-window-scaling.md b/src/data/roadmaps/server-side-game-developer/content/window-scaling@zvBKjceXRSfEe_3MDCEL5.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/101-tcp/102-operations/104-window-scaling.md rename to src/data/roadmaps/server-side-game-developer/content/window-scaling@zvBKjceXRSfEe_3MDCEL5.md diff --git a/src/data/roadmaps/server-side-game-developer/content/108-multithreading/100-thread-localstorage/100-windows.md b/src/data/roadmaps/server-side-game-developer/content/windows@mW2L_9NckgPRH7g5W9NHq.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/108-multithreading/100-thread-localstorage/100-windows.md rename to src/data/roadmaps/server-side-game-developer/content/windows@mW2L_9NckgPRH7g5W9NHq.md diff --git a/src/data/roadmaps/server-side-game-developer/content/106-socket-programming/103-api/101-winsock.md b/src/data/roadmaps/server-side-game-developer/content/winsock@GfTXffisLyQgp66zcQ7Py.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/106-socket-programming/103-api/101-winsock.md rename to src/data/roadmaps/server-side-game-developer/content/winsock@GfTXffisLyQgp66zcQ7Py.md diff --git a/src/data/roadmaps/server-side-game-developer/content/wsa-poll@D9Yeyn8phDhB1ohMWccgr.md b/src/data/roadmaps/server-side-game-developer/content/wsa-poll@D9Yeyn8phDhB1ohMWccgr.md new file mode 100644 index 000000000..e69de29bb diff --git a/src/data/roadmaps/server-side-game-developer/content/107-serialization/101-xml.md b/src/data/roadmaps/server-side-game-developer/content/xml@v43K6srds7m5SQFqNaY0T.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/107-serialization/101-xml.md rename to src/data/roadmaps/server-side-game-developer/content/xml@v43K6srds7m5SQFqNaY0T.md diff --git a/src/data/roadmaps/server-side-game-developer/content/107-serialization/102-yaml.md b/src/data/roadmaps/server-side-game-developer/content/yaml@uHcUSVLz_2-Usk6ckSvwr.md similarity index 100% rename from src/data/roadmaps/server-side-game-developer/content/107-serialization/102-yaml.md rename to src/data/roadmaps/server-side-game-developer/content/yaml@uHcUSVLz_2-Usk6ckSvwr.md diff --git a/src/data/roadmaps/server-side-game-developer/migration-mapping.json b/src/data/roadmaps/server-side-game-developer/migration-mapping.json new file mode 100644 index 000000000..ded3b942e --- /dev/null +++ b/src/data/roadmaps/server-side-game-developer/migration-mapping.json @@ -0,0 +1,155 @@ +{ + "server-side": "rQArtuVKGVgLn_fw9yO3b", + "tcp": "mUCidjOsVLMAVDf2jmV5F", + "tcp:checksum": "XxBl-zO7CF6DpOZ2bMDxJ", + "tcp:segment-structure": "zTCmPUp9j5P1wpGgiboMa", + "tcp:operations:connection": "5sI3RHaLudq4TfpjoYeOp", + "tcp:operations:resource-usage": "LkGI0VpJ3WkpPHkJhJgWk", + "tcp:operations:data-transfer": "5bJUcx3v4dpdlIsx7bFvK", + "tcp:operations:max-segment-scaling": "1l5dhQWYPhUSg-cy5pSlK", + "tcp:operations:window-scaling": "zvBKjceXRSfEe_3MDCEL5", + "tcp:operations:timestamp": "6KAYNPLEFMp6Jha8FLMAU", + "tcp:operations:out-of-band-data": "3OMu3RM-6pMjqY1jAmC2-", + "tcp:operations:selective-acknowledgement": "SPpOO25b7wpajWDIrKi1u", + "tcp:operations:data-transfer:flow-control:error-detection": "vFM311xSa5OqNVove2f6j", + "tcp:operations:data-transfer:flow-control": "lDVD-3i64Mk7-KPJrXmFH", + "tcp:operations:data-transfer:congestion-control": "1GML0Jsfdb1Fn-0PNryiQ", + "tcp:operations:data-transfer:reliable-transmission": "X2KHWgQZDHSVDsTRMUwSj", + "tcp:vulnerability": "MwLWDlciJOq_0n5S3GoF-", + "tcp:vulnerability:denial-of-service": "TbXJO__4xSnzK1fvvJK86", + "tcp:vulnerability:connection-hijacking": "ubRiY3jdh3iS3diN482IU", + "tcp:vulnerability:veto": "ZLTfpRZ0rF-mtd7Z0R2WF", + "udp": "IMyHwnXxJK6oFxzOMLxjS", + "udp:reliability": "Vh81GnOUOZvDOlOyI5PwT", + "udp:datagram": "wD_HWc9YxPhlkilt585pg", + "udp:congestion-control": "jsNsyrGzegVnjIF2l52vI", + "udp:checksum": "tBOvBpDi3SOKZjAmkxdM0", + "udp:packet-structure": "CCxVnrGDKa1EROXgF_OAm", + "tcp-vs-udp": "RfTcTUjaXyp49FnUf44MK", + "tcp-vs-udp:reliable-vs-unreliable": "MoyBGT9bscUe8vMN4J0bG", + "tcp-vs-udp:ordered-vs-not-ordered": "WMdCDmFsytsF2AWQXfzC8", + "tcp-vs-udp:heavyweight-vs-lightweight": "OYXKtl4A-vaK6yGO6hS6n", + "tcp-vs-udp:packet-vs-datagram": "JE3uZ5U6oe6dVzsmglTl2", + "tcp-vs-udp:streaming-vs-broadcast": "pJw8fN1dt3BABtZVz7wGE", + "ip": "tg94V7K0mgYhpkUMp_Scv", + "ip:capability": "5kF1fqr-mn5-15e3aMa9k", + "ip:reliability": "2jDV-ovvrkBbTTLk5VbR9", + "ip:link-capacity": "OzY-LPcfj1sBm_0F0WbIJ", + "ip:functions": "YPvm8XD_FaFYCQ-b7-KsH", + "ip:functions:datagram-construction": "jnQAzUUnwpJgoRuRIFtSe", + "ip:functions:ip-addressing": "3ZcJNDCHw2pFzewmoB-03", + "ip:functions:routing": "bYb7nA-Vn9e6VtdbUT3tq", + "ip:transactions": "r2OeI7YC1BLLfctC8q69W", + "ip:categories": "NH2eQ1_nij1icTgoO027b", + "ip:security": "qkO0s9zR0sAnjTRWcrLQY", + "programming-languages": "6ilqzjvI4J1pUCmTJ33PA", + "programming-languages:javascript": "ufufnULqsglE5VhEIAdSI", + "programming-languages:java": "LG8JPL1po-gEs1V5JyC8F", + "programming-languages:c-cpp": "E4H3hniIW6hKpH3Qr--N5", + "programming-languages:c-sharp": "DuyUc9a-47Uz03yr4aeyg", + "programming-languages:erlang": "QGtGx5LBEWa1DD3Y7ztUy", + "socket-programming": "HvpuFTCknHPhnFkhmhRc4", + "socket-programming:byte-manipulation": "H21PanCggDfQt34-JzgfO", + "socket-programming:address-conversion": "SBA7pa9o0AM0ZEBepd7UM", + "socket-programming:descriptor": "OAyMj6uLSv1yJ87YAjyZu", + "socket-programming:api:bsd-socket": "U_tZFM80W3xJx8jj4skCr", + "socket-programming:api": "a2pcxVTGdAPw8aLvdr19M", + "socket-programming:api:winsock": "GfTXffisLyQgp66zcQ7Py", + "ip:transactions:arp": "JI_wUdT2hjsrvbIhLvHcT", + "ip:transactions:dns": "yNytLrQAMKBw4t73YRL3J", + "ip:transactions:dhcp": "aTHJh-xw8soCxC1bIDdXm", + "ip:categories:ipv4": "pHVB0K8Vtk3ToD6n_f1wv", + "ip:categories:ipv6": "TqBlAMfhARhlJed6xD7eg", + "ip:security:tls": "FX8ASd-QzTUFDHzBB93WK", + "serialization": "TS6dz61rUSxm-SqmK6JKe", + "serialization:json": "y0ZJQQfi8Qx6sB4WnZlP5", + "serialization:xml": "v43K6srds7m5SQFqNaY0T", + "serialization:yaml": "uHcUSVLz_2-Usk6ckSvwr", + "serialization:toml": "l8iEC3g0ICSfmIE1MxcUl", + "serialization:protobuf": "w2zbab_6Gxw6AWS0N759U", + "multithreading": "3QSLUMKD0G08N3MIb1cG7", + "multithreading:fiber": "TVJrlUsg30YIM1yjsZfJI", + "multithreading:sharding": "3use5vuLBJTk40wOg9S-X", + "multithreading:thread-localstorage": "IeD-oQ1bkwlKNC-R0lJjZ", + "multithreading:thread-localstorage:windows": "mW2L_9NckgPRH7g5W9NHq", + "multithreading:thread-localstorage:pthread": "HU0yUyl89WD8WnR9PJn7l", + "programming-techniques:design-patterns": "gB-TYpgUDV47bxznNJhYn", + "programming-techniques:tdd": "FKOhe21PVlaKIoZI4hd49", + "programming-techniques:dependency-injection": "uTlxyDOtvt_Qp0gXLWO-j", + "programming-techniques:dump-analysis": "1c6EqGv1g-d8M1i0vKImb", + "programming-techniques:functional-programming": "HXSWvhgT4L5w6xgOO-3kj", + "programming-techniques": "tGQu18PWDatW7HvkTP-uh", + "multithreading:synchronization:barrier": "6k25amPkU9lnZ7FMNn_T6", + "multithreading:synchronization:spinlock": "lVXfA_oZr82mFfBvLnnRK", + "multithreading:synchronization:condition-variable": "xR6pERldq4wPl9GVLHAhT", + "multithreading:synchronization": "idmrgKgVWVLZYANbXiZnS", + "multithreading:synchronization:mutex": "G_BEJKkJ1_Nc43aosy_iS", + "multithreading:synchronization:mutex:semaphore": "DYvzGc_r0SlOArPPc1gNI", + "multithreading:synchronization:future-promises:coroutine": "o0Y_hM0KXUApfsXG4PvOY", + "multithreading:synchronization:future-promises:channel": "SXOEMkcVYBsRza6BPmmwy", + "multithreading:synchronization:future-promises": "zbIbPlqTNSbJUkqH9iLQv", + "databases": "FLFaGZDg2MSG6_YHnWETM", + "databases:orm": "OyxWMFy8s7Lxko_K89fjo", + "databases:dal": "dt_SmZuwklLimhupvjxC1", + "databases:rdbms:mysql": "HsBqd08Ro0VJnx0FlumMQ", + "databases:rdbms:postgresql": "dAiEwN7phwMyaitvM5kRl", + "databases:rdbms:mssql": "QMNUAKAuRI9lyf2_jUPsj", + "databases:nosql:dynamo-db": "9vc7sFE_XakYXtKRMxLXi", + "databases:nosql:mongodb": "HYxtPW401-J6aYcTuiGnx", + "databases:nosql:cassandra": "1jqSxk1nwByiQa1De81F3", + "databases:nosql:couchbase": "6KTj_giX2k9l2lPd_Fp-d", + "cipher": "1788KFqsQBkYARqA0T5GX", + "cipher:ssl": "PSvPjaVtko71BeIA-hYqf", + "databases:key-value:redis": "7YNaELVcoV7DV1Fa06USi", + "databases:key-value:memcached": "ayeezKxQkXAPJMTShsOBU", + "rpc-rest": "YxaroYL_Az0vKRCeu2jsp", + "rpc-rest:grpc": "_uqTTBUYAzDHbEUkDzmzg", + "rpc-rest:rest": "Oq3GQ5gBUxIl1Qe8NB3LB", + "message-queues:kafka": "gL7hubTh3qiMyUWeAZNwI", + "message-queues:rabbitmq": "UESjGrFyUbNf4pQamaBoy", + "message-queues": "cw7WdFfL5HpeZ_n8wYk2t", + "mutlithreading-2": "_jd91rrAXGbJI9RhXlSx8", + "mutlithreading-2:reactive-approach:oorp": "yWj70LpF4LKB8J6GbYvsq", + "mutlithreading-2:reactive-approach:frp": "xDYOvIbXc-iJ2zOKqe0YL", + "mutlithreading-2:reactive-approach": "LVwGXmZhMewGQy61qwNyu", + "mutlithreading-2:reactive-model": "p0P3ZGq_QTCop0vMwe7P3", + "mutlithreading-2:reactive-model:synchrony": "l5QTk408Ubagw8XzRAfoZ", + "mutlithreading-2:reactive-model:determinism": "zFx1jjt1hKgCpYHFTzbZZ", + "mutlithreading-2:reactive-model:update-process": "3Eat22rFjUl4eTtGz8u4N", + "cloud": "hhtqvFfTCuVPT0OPu4Y1a", + "mutlithreading-2:task-based:goroutine": "f-L_eaZd0EjBW9-n9Pllt", + "mutlithreading-2:task-based:concurrency": "RT9XvlxvIM_hHTtNmbva3", + "mutlithreading-2:task-based:async-await": "mAXMpUDmhGOncnCRrENJv", + "mutlithreading-2:task-based:thread-building-block": "tiG0mZpLJ2zUr2IPYyhnv", + "mutlithreading-2:task-based": "LKPcEeqBOPhQOztD3cM3T", + "mutlithreading-2:asynchronous:proactor:iocp:registered-io": "94hJX1iGifDzIuaU3zU5j", + "mutlithreading-2:asynchronous:proactor:iocp:io-uring": "YH7u1FKh85wz78J0stuzS", + "mutlithreading-2:asynchronous:proactor:iocp": "7pgdOZomhGilBTwfJLMbm", + "mutlithreading-2:asynchronous:proactor": "Tvxe2NemcH21y-eB4bosv", + "mutlithreading-2:asynchronous": "ThBxS9xIMt9OrXfnto3rW", + "mutlithreading-2:asynchronous:reactor": "7mYpgn2gr-5vAYW-UR7_x", + "mutlithreading-2:asynchronous:reactor:select": "5-5toy2CblZPCV9d5QPEo", + "mutlithreading-2:asynchronous:reactor:wsa-poll": "D9Yeyn8phDhB1ohMWccgr", + "mutlithreading-2:asynchronous:reactor:epoll": "qaWv4gxnnj3uX8lEm9KQ4", + "mutlithreading-2:asynchronous:reactor:kqueue": "caK32NMMrn-3BGAXZoPPr", + "mutlithreading-2:actor-model": "KUQEgHldZPOLwFoXqQ2vM", + "mutlithreading-2:actor-model:akka-net": "SsOz9Pj6Jc_55PgpmziL6", + "mutlithreading-2:actor-model:akka": "eAEpEUVZcSKO9uCIlMN5y", + "cloud:azure": "73uoFNGcCALxIuRNbebav", + "cloud:gcp": "wD6dUrS-tP2gpCHPghFp5", + "cloud:aws": "Rkx2A6oWsddlCTseZlpRU", + "cloud:serverless": "DOmbRRK_RRPElOuTB7AAK", + "data-clustering": "XCJvgUSS7-oDR-XGdDY33", + "data-clustering:apache-spark": "yrWiWJMSyTWxDakJbqacu", + "containerization:docker": "zW_7VLeEHQp8fp_f5N__0", + "containerization": "k3FJY26SVxdZx4MLLE25h", + "containerization:docker:docker-compose": "yAf7VDX7dyaT5AdlNnuKD", + "containerization:docker:kubernetes": "lUBUUoETjfADmM4OPtwwX", + "ai": "dkCVwuy8GKeEi3VJar_Zo", + "ai:deep-learning": "jkWvfp4GqckYPQ48GtjlR", + "ai:deep-learning:tensor-flow": "iJE9RnKC8QjPnsFeZAbtl", + "ai:deep-learning:pytorch": "LTSIfq10qDJMTCnIIyqvb", + "ai:cloud-ml": "XvvlvDKfYRCcYtTdWohsd", + "ai:cloud-ml:amazon-ml": "U0RlO_puezQPZP0-iBXgW", + "ai:cloud-ml:azure-ml": "vBqwmlzoT5XVEhV9IeGso" +} \ No newline at end of file diff --git a/src/data/roadmaps/server-side-game-developer/server-side-game-developer.json b/src/data/roadmaps/server-side-game-developer/server-side-game-developer.json index 3d5cb6b8b..8a88971d4 100644 --- a/src/data/roadmaps/server-side-game-developer/server-side-game-developer.json +++ b/src/data/roadmaps/server-side-game-developer/server-side-game-developer.json @@ -1,10572 +1,7518 @@ { - "mockup": { - "controls": { - "control": [ - { - "ID": "3697", - "typeID": "Arrow", - "zOrder": "1", - "w": "1", - "h": "104", - "measuredW": "150", - "measuredH": "100", - "x": "654", - "y": "3263", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": -0.3998635160280628, - "y": 104 - }, - "p1": { - "x": 0.4438624012549723, - "y": -0.00008403832147458859 - }, - "p2": { - "x": -0.39986351602811965, - "y": 0.21840009892230228 - } - } - }, - { - "ID": "3698", - "typeID": "Arrow", - "zOrder": "2", - "w": "198", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "426", - "y": "3263", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": -0.5, - "y": 0.21840009892230228 - }, - "p1": { - "x": 0.4438624012549724, - "y": -0.0000840383214745883 - }, - "p2": { - "x": 197.60013648397188, - "y": 0.21840009892230228 - } - } - }, - { - "ID": "3699", - "typeID": "Arrow", - "zOrder": "3", - "w": "304", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "629", - "y": "3262", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 303.3181420669464, - "y": 0 - }, - "p1": { - "x": 0.4438624012549723, - "y": -0.00008403832147459161 - }, - "p2": { - "x": -0.3315520184180514, - "y": 0 - } - } - }, - { - "ID": "3700", - "typeID": "Arrow", - "zOrder": "4", - "w": "1", - "h": "76", - "measuredW": "150", - "measuredH": "100", - "x": "1221", - "y": "3272", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": -0.4513569068005836, - "y": 76.5417125339145 - }, - "p1": { - "x": 0.4438624012549722, - "y": -0.00008403832147458252 - }, - "p2": { - "x": -0.4513569068005836, - "y": 0.49126098040687793 - } - } - }, - { - "ID": "3701", - "typeID": "Arrow", - "zOrder": "5", - "w": "119", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "1029", - "y": "3262", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": -0.3288797498864824, - "y": 1.223219785578749 - }, - "p1": { - "x": 0.4438624012549724, - "y": -0.0000840383214745828 - }, - "p2": { - "x": 118.54864309319942, - "y": 0.49126098040687793 - } - } - }, - { - "ID": "3702", - "typeID": "Arrow", - "zOrder": "6", - "w": "119", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "1029", - "y": "3157", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": -0.3288797498864824, - "y": 1.223219785578749 - }, - "p1": { - "x": 0.4438624012549724, - "y": -0.0000840383214745828 - }, - "p2": { - "x": 118.54864309319942, - "y": 0.49126098040687793 - } - } - }, - { - "ID": "3703", - "typeID": "Arrow", - "zOrder": "7", - "w": "134", - "h": "95", - "measuredW": "150", - "measuredH": "100", - "x": "1013", - "y": "2957", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": -0.3288797498864824, - "y": 0.223219785578749 - }, - "p1": { - "x": 0.4605743877436221, - "y": 0.1408734452891088 - }, - "p2": { - "x": 133.2237422873834, - "y": 95.69045230275606 - } - } - }, - { - "ID": "3704", - "typeID": "Arrow", - "zOrder": "8", - "w": "134", - "h": "95", - "measuredW": "150", - "measuredH": "100", - "x": "997", - "y": "2830", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": -0.1881704452852091, - "y": 95.25087967783338 - }, - "p1": { - "x": 0.49308252005822, - "y": -0.07652602762453595 - }, - "p2": { - "x": 133.60013648397188, - "y": 0.21840009892230228 - } - } - }, - { - "ID": "3705", - "typeID": "Arrow", - "zOrder": "9", - "w": "120", - "h": "53", - "measuredW": "150", - "measuredH": "100", - "x": "1010", - "y": "2880", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": -0.004766380637988732, - "y": 52.574993047081534 - }, - "p1": { - "x": 0.4465354477217628, - "y": -0.07550685511576347 - }, - "p2": { - "x": 120.11069287503665, - "y": -0.15862321150734715 - } - } - }, - { - "ID": "3706", - "typeID": "Arrow", - "zOrder": "10", - "w": "122", - "h": "7", - "measuredW": "150", - "measuredH": "100", - "x": "1003", - "y": "2940", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": -0.3288797498864824, - "y": 7.223219785578749 - }, - "p1": { - "x": 0.4438624012549724, - "y": -0.00008403832147458286 - }, - "p2": { - "x": 121.60013648397188, - "y": 0.21840009892230228 - } - } - }, - { - "ID": "3707", - "typeID": "Arrow", - "zOrder": "11", - "w": "1", - "h": "738", - "measuredW": "150", - "measuredH": "100", - "x": "968", - "y": "2818", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 0, - "y": 0.20577507445932497 - }, - "p1": { - "x": 0.4438624012549725, - "y": -0.00008403832147459167 - }, - "p2": { - "x": 0, - "y": 738.6460139022329 - } - } - }, - { - "ID": "3708", - "typeID": "Arrow", - "zOrder": "12", - "w": "1", - "h": "120", - "measuredW": "150", - "measuredH": "100", - "x": "455", - "y": "2819", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 0, - "y": 0.20577507445932497 - }, - "p1": { - "x": 0.44386240125497234, - "y": -0.00008403832147459165 - }, - "p2": { - "x": 0, - "y": 120.09152074044869 - } - } - }, - { - "ID": "3709", - "typeID": "Arrow", - "zOrder": "13", - "w": "69", - "h": "17", - "measuredW": "150", - "measuredH": "100", - "x": "518", - "y": "2919", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": -0.46780832500070346, - "y": 16.504638394781068 - }, - "p1": { - "x": 0.5793581960104075, - "y": -0.11014744145706871 - }, - "p2": { - "x": 68.37885734593476, - "y": 0.39158898243431395 - } - } - }, - { - "ID": "3710", - "typeID": "Arrow", - "zOrder": "14", - "w": "57", - "h": "32", - "measuredW": "150", - "measuredH": "100", - "x": "523", - "y": "2951", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.3914823703980801, - "y": 0.6176878071278225 - }, - "p1": { - "x": 0.44277653439857434, - "y": 0.16511884196937845 - }, - "p2": { - "x": 57.519566650536035, - "y": 31.378963957971337 - } - } - }, - { - "ID": "3715", - "typeID": "Arrow", - "zOrder": "17", - "w": "1", - "h": "396", - "measuredW": "150", - "measuredH": "100", - "x": "327", - "y": "2644", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": -0.3158515046735033, - "y": 395.50704823810884 - }, - "p1": { - "x": 0.44386240125497217, - "y": -0.00008403832147458805 - }, - "p2": { - "x": -0.3158515046735033, - "y": 0.004926298692680575 - } - } - }, - { - "ID": "3722", - "typeID": "Arrow", - "zOrder": "21", - "w": "125", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "246", - "y": "2940", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.0902092067481135, - "y": 0.21840009892230228 - }, - "p1": { - "x": 0.44386240125497234, - "y": -0.00008403832147458827 - }, - "p2": { - "x": 124.60013648397188, - "y": 0.21840009892230228 - } - } - }, - { - "ID": "3737", - "typeID": "Arrow", - "zOrder": "29", - "w": "1", - "h": "182", - "measuredW": "150", - "measuredH": "100", - "x": "191", - "y": "2833", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": -0.3158515046735033, - "y": 181.2184000989223 - }, - "p1": { - "x": 0.4438624012549722, - "y": -0.00008403832147458817 - }, - "p2": { - "x": -0.3158515046735033, - "y": -0.34443711948233613 - } - } - }, - { - "ID": "3740", - "typeID": "Arrow", - "zOrder": "31", - "w": "1", - "h": "483", - "measuredW": "150", - "measuredH": "100", - "x": "421", - "y": "2445", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 0, - "y": 0 - }, - "p1": { - "x": 0.44386240125497245, - "y": -0.00008403832147459167 - }, - "p2": { - "x": 0, - "y": 483.18052502553246 - } - } - }, - { - "ID": "3741", - "typeID": "Arrow", - "zOrder": "32", - "w": "1", - "h": "290", - "measuredW": "150", - "measuredH": "100", - "x": "455", - "y": "2444", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 0, - "y": 0 - }, - "p1": { - "x": 0.4438624012549724, - "y": -0.00008403832147459167 - }, - "p2": { - "x": 0, - "y": 290.0915207404487 - } - } - }, - { - "ID": "3742", - "typeID": "Arrow", - "zOrder": "33", - "w": "80", - "h": "19", - "measuredW": "150", - "measuredH": "100", - "x": "530", - "y": "2440", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.26580793358823485, - "y": 0.3945746335853073 - }, - "p1": { - "x": 0.5278457059192934, - "y": 0.08797337450983438 - }, - "p2": { - "x": 80.36864216479955, - "y": 19.295101569663984 - } - } - }, - { - "ID": "3743", - "typeID": "Arrow", - "zOrder": "34", - "w": "80", - "h": "20", - "measuredW": "150", - "measuredH": "100", - "x": "530", - "y": "2403", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.26580793358823485, - "y": 15.42223452583994 - }, - "p1": { - "x": 0.3861716448730038, - "y": -0.11529813886095087 - }, - "p2": { - "x": 80.36864216479955, - "y": 0.29510156966398426 - } - } - }, - { - "ID": "3744", - "typeID": "Arrow", - "zOrder": "35", - "w": "1", - "h": "111", - "measuredW": "150", - "measuredH": "100", - "x": "595", - "y": "2628", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": -0.5, - "y": 111.29510156966398 - }, - "p1": { - "x": 0.44386240125497217, - "y": -0.00008403832147459117 - }, - "p2": { - "x": -0.5, - "y": -0.10812311365407368 - } - } - }, - { - "ID": "3745", - "typeID": "Arrow", - "zOrder": "36", - "w": "121", - "h": "77", - "measuredW": "150", - "measuredH": "100", - "x": "887", - "y": "2318", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 120.56298935443715, - "y": 0 - }, - "p1": { - "x": 0.47121626522371307, - "y": -0.14568179573641857 - }, - "p2": { - "x": -0.04987098401204548, - "y": 76.98507174424503 - } - } - }, - { - "ID": "3746", - "typeID": "Arrow", - "zOrder": "37", - "w": "83", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "1239", - "y": "2656", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 83.56298935443715, - "y": 0 - }, - "p1": { - "x": 0.44386240125497234, - "y": -0.0000840383214745917 - }, - "p2": { - "x": 0.13377730956335654, - "y": 0 - } - } - }, - { - "ID": "3747", - "typeID": "Arrow", - "zOrder": "38", - "w": "121", - "h": "156", - "measuredW": "150", - "measuredH": "100", - "x": "1063", - "y": "2416", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 121.53255369021213, - "y": 155.63047426858293 - }, - "p1": { - "x": 0.5637674628210914, - "y": -0.12663361874718426 - }, - "p2": { - "x": 0.4306756687176403, - "y": -0.28819368409085655 - } - } - }, - { - "ID": "3748", - "typeID": "Arrow", - "zOrder": "39", - "w": "105", - "h": "48", - "measuredW": "150", - "measuredH": "100", - "x": "1086", - "y": "2413", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 105.56298935443715, - "y": 48 - }, - "p1": { - "x": 0.42893560297283234, - "y": -0.1324860682349415 - }, - "p2": { - "x": 0.1372777977478563, - "y": -0.3157406346285825 - } - } - }, - { - "ID": "3749", - "typeID": "Arrow", - "zOrder": "40", - "w": "106", - "measuredW": "150", - "measuredH": "100", - "x": "1079", - "y": "2416", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 105.53255369021213, - "y": 99.62085568364182 - }, - "p1": { - "x": 0.5012106943431768, - "y": -0.13929419564160406 - }, - "p2": { - "x": -0.43158957859554903, - "y": -0.28819368409085655 - } - } - }, - { - "ID": "3750", - "typeID": "Arrow", - "zOrder": "41", - "w": "118", - "h": "3", - "measuredW": "150", - "measuredH": "100", - "x": "1086", - "y": "2402", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 118.56298935443715, - "y": 3 - }, - "p1": { - "x": 0.44386240125497234, - "y": -0.00008403832147459454 - }, - "p2": { - "x": 0.1372777977478563, - "y": 0.08784503849074099 - } - } - }, - { - "ID": "3751", - "typeID": "Arrow", - "zOrder": "42", - "w": "1", - "h": "358", - "measuredW": "150", - "measuredH": "100", - "x": "1062", - "y": "2149", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": -0.5, - "y": 358.295101569664 - }, - "p1": { - "x": 0.44386240125497217, - "y": -0.00008403832147459114 - }, - "p2": { - "x": -0.5, - "y": 0.28767466862154834 - } - } - }, - { - "ID": "3752", - "typeID": "Arrow", - "zOrder": "43", - "w": "118", - "h": "44", - "measuredW": "150", - "measuredH": "100", - "x": "1084", - "y": "2160", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 118.56298935443715, - "y": 44 - }, - "p1": { - "x": 0.47121626522371307, - "y": -0.1456817957364185 - }, - "p2": { - "x": 0.2282952147127162, - "y": 2.447857492994899 - } - } - }, - { - "ID": "3753", - "typeID": "Arrow", - "zOrder": "44", - "w": "111", - "h": "50", - "measuredW": "150", - "measuredH": "100", - "x": "1093", - "y": "2091", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 110.73367587076177, - "y": 0.45456205375830905 - }, - "p1": { - "x": 0.5037403745240178, - "y": 0.10492492495154662 - }, - "p2": { - "x": -0.48915365070956796, - "y": 50.14986886122415 - } - } - }, - { - "ID": "3754", - "typeID": "Arrow", - "zOrder": "45", - "w": "120", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "1084", - "y": "2148", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 120.56298935443715, - "y": 0 - }, - "p1": { - "x": 0.4438624012549723, - "y": -0.00008403832147459171 - }, - "p2": { - "x": 0.2282952147127162, - "y": 0 - } - } - }, - { - "ID": "3755", - "typeID": "Arrow", - "zOrder": "46", - "w": "782", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "580", - "y": "2304", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 782.3961277418114, - "y": 0 - }, - "p1": { - "x": 0.4438624012549723, - "y": -0.00008403832147459163 - }, - "p2": { - "x": 0.25448923561577885, - "y": 0 - } - } - }, - { - "ID": "3756", - "typeID": "Arrow", - "zOrder": "47", - "w": "86", - "h": "41", - "measuredW": "150", - "measuredH": "100", - "x": "328", - "y": "2252", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 85.66930318634473, - "y": 40.90985194716768 - }, - "p1": { - "x": 0.500943658722096, - "y": 0.13752886064943207 - }, - "p2": { - "x": -0.3158515046735033, - "y": -0.39176392982790276 - } - } - }, - { - "ID": "3757", - "typeID": "Arrow", - "zOrder": "48", - "w": "96", - "h": "85", - "measuredW": "150", - "measuredH": "100", - "x": "327", - "y": "2197", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 95.53364539748065, - "y": 84.09072899898638 - }, - "p1": { - "x": 0.41373730244684637, - "y": 0.19512115638640418 - }, - "p2": { - "x": -0.3158515046735033, - "y": -0.39176392982790276 - } - } - }, - { - "ID": "3758", - "typeID": "Arrow", - "zOrder": "49", - "w": "108", - "h": "151", - "measuredW": "150", - "measuredH": "100", - "x": "331", - "y": "2135", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 107.78493945122995, - "y": 150.52290010455454 - }, - "p1": { - "x": 0.41005529513603317, - "y": 0.12373818481375697 - }, - "p2": { - "x": -0.06455745092421239, - "y": -0.17091748475650093 - } - } - }, - { - "ID": "3759", - "typeID": "Arrow", - "zOrder": "50", - "w": "137", - "h": "202", - "measuredW": "150", - "measuredH": "100", - "x": "329", - "y": "2083", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 137.85535645316048, - "y": 202.52290010455454 - }, - "p1": { - "x": 0.4143829049095589, - "y": 0.10267659628073787 - }, - "p2": { - "x": 0.4580521805531248, - "y": 0.12041961695013015 - } - } - }, - { - "ID": "3760", - "typeID": "Arrow", - "zOrder": "51", - "w": "92", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "315", - "y": "2305", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 92.07627655293686, - "y": -0.39176392982790276 - }, - "p1": { - "x": 0.4438624012549723, - "y": -0.00008403832147458795 - }, - "p2": { - "x": -0.3158515046735033, - "y": -0.39176392982790276 - } - } - }, - { - "ID": "3761", - "typeID": "Arrow", - "zOrder": "52", - "w": "94", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "562", - "y": "1912", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 93.89220477541858, - "y": 0 - }, - "p1": { - "x": 0.44386240125497206, - "y": -0.00008403832147458896 - }, - "p2": { - "x": -0.337838768126403, - "y": 0 - } - } - }, - { - "ID": "3762", - "typeID": "Arrow", - "zOrder": "53", - "w": "198", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "307", - "y": "1911", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 197.89220477541858, - "y": 1 - }, - "p1": { - "x": 0.44386240125497217, - "y": -0.00008403832147458896 - }, - "p2": { - "x": 0.0013944911901830892, - "y": -0.3917639298276754 - } - } - }, - { - "ID": "3763", - "typeID": "Arrow", - "zOrder": "54", - "w": "72", - "h": "45", - "measuredW": "150", - "measuredH": "100", - "x": "785", - "y": "2155", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 72.11704309839502, - "y": 44.95025831186922 - }, - "p1": { - "x": 0.41841699551470907, - "y": -0.11902322903648196 - }, - "p2": { - "x": 0.12114085046107448, - "y": 0.12262106315574783 - } - } - }, - { - "ID": "3764", - "typeID": "Arrow", - "zOrder": "55", - "w": "78", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "791", - "y": "2145", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 77.56298935443715, - "y": 0 - }, - "p1": { - "x": 0.4438624012549723, - "y": -0.00008403832147459171 - }, - "p2": { - "x": -0.5, - "y": 0 - } - } - }, - { - "ID": "3771", - "typeID": "Arrow", - "zOrder": "59", - "w": "78", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "791", - "y": "2050", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 77.56298935443715, - "y": 0 - }, - "p1": { - "x": 0.4438624012549723, - "y": -0.00008403832147459171 - }, - "p2": { - "x": -0.5, - "y": 0 - } - } - }, - { - "ID": "3782", - "typeID": "Arrow", - "zOrder": "65", - "w": "96", - "h": "47", - "measuredW": "150", - "measuredH": "100", - "x": "542", - "y": "1744", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 96.41250985467104, - "y": 46.76486219803746 - }, - "p1": { - "x": 0.37769243613291037, - "y": -0.1648021372516285 - }, - "p2": { - "x": -0.0348308925612173, - "y": 0.2026129499477065 - } - } - }, - { - "ID": "3783", - "typeID": "Arrow", - "zOrder": "66", - "w": "91", - "h": "45", - "measuredW": "150", - "measuredH": "100", - "x": "550", - "y": "1678", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 91.12933635459308, - "y": 0.016562451272875478 - }, - "p1": { - "x": 0.4865402995652062, - "y": 0.18128439939384913 - }, - "p2": { - "x": 0.11564860720488923, - "y": 43.10958770061029 - } - } - }, - { - "ID": "3784", - "typeID": "Arrow", - "zOrder": "67", - "w": "78", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "569", - "y": "1735", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 77.56298935443715, - "y": 0 - }, - "p1": { - "x": 0.4438624012549723, - "y": -0.00008403832147459171 - }, - "p2": { - "x": -0.5, - "y": 0 - } - } - }, - { - "ID": "3785", - "typeID": "Arrow", - "zOrder": "68", - "w": "665", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "501", - "y": "1599", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 665.2844159686654, - "y": 0 - }, - "p1": { - "x": 0.4438624012549723, - "y": -0.00008403832147459164 - }, - "p2": { - "x": 0.25448923561577885, - "y": 0 - } - } - }, - { - "ID": "3786", - "typeID": "Arrow", - "zOrder": "69", - "w": "1", - "h": "84", - "measuredW": "150", - "measuredH": "100", - "x": "1293", - "y": "1608", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.25689465937102796, - "y": 83.83704029986916 - }, - "p1": { - "x": 0.44386240125497234, - "y": -0.00008403832147466577 - }, - "p2": { - "x": 0.25689465937102796, - "y": 0.2839543487633591 - } - } - }, - { - "ID": "3790", - "typeID": "Arrow", - "zOrder": "72", - "w": "1", - "h": "188", - "measuredW": "150", - "measuredH": "100", - "x": "1294", - "y": "1411", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 0, - "y": 0 - }, - "p1": { - "x": 0.4438624012549725, - "y": -0.00008403832147459165 - }, - "p2": { - "x": 0, - "y": 187.7783753239521 - } - } - }, - { - "ID": "3791", - "typeID": "Arrow", - "zOrder": "73", - "w": "1", - "h": "116", - "measuredW": "150", - "measuredH": "100", - "x": "1296", - "y": "1290", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.25689465937102796, - "y": 116.5588378327136 - }, - "p1": { - "x": 0.4438624012549724, - "y": -0.00008403832147466621 - }, - "p2": { - "x": 0.25689465937102796, - "y": 0.2839543487633591 - } - } - }, - { - "ID": "3792", - "typeID": "Arrow", - "zOrder": "74", - "w": "1", - "h": "83", - "measuredW": "150", - "measuredH": "100", - "x": "1263", - "y": "1425", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 0, - "y": -0.1345395490732244 - }, - "p1": { - "x": 0.44386240125497245, - "y": -0.00008403832147459165 - }, - "p2": { - "x": 0, - "y": 83.00803817531164 - } - } - }, - { - "ID": "3793", - "typeID": "Arrow", - "zOrder": "75", - "w": "1", - "h": "218", - "measuredW": "150", - "measuredH": "100", - "x": "574", - "y": "1290", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 0, - "y": 0 - }, - "p1": { - "x": 0.44386240125497245, - "y": -0.00008403832147459165 - }, - "p2": { - "x": 0, - "y": 218.00803817531164 - } - } - }, - { - "ID": "3794", - "typeID": "Arrow", - "zOrder": "76", - "w": "227", - "h": "386", - "measuredW": "150", - "measuredH": "100", - "x": "317", - "y": "1294", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 226.09647100699135, - "y": -0.3320016462678268 - }, - "p1": { - "x": 0.4395771553572771, - "y": -0.08966881744206251 - }, - "p2": { - "x": -0.5, - "y": 386 - } - } - }, - { - "ID": "3795", - "typeID": "Arrow", - "zOrder": "77", - "w": "212", - "h": "294", - "measuredW": "150", - "measuredH": "100", - "x": "316", - "y": "1286", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 211.84095215848038, - "y": 0.040238929476572594 - }, - "p1": { - "x": 0.4380698289987812, - "y": -0.08068988697953883 - }, - "p2": { - "x": -0.21075983582244362, - "y": 294.47175270573894 - } - } - }, - { - "ID": "3796", - "typeID": "Arrow", - "zOrder": "78", - "w": "186", - "h": "185", - "measuredW": "150", - "measuredH": "100", - "x": "320", - "y": "1291", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 186.48322577056496, - "y": -0.38310541597002157 - }, - "p1": { - "x": 0.45590994371482163, - "y": -0.08630393996247669 - }, - "p2": { - "x": 0.36589581873084853, - "y": 184.2086726510131 - } - } - }, - { - "ID": "3797", - "typeID": "Arrow", - "zOrder": "79", - "w": "118", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "315", - "y": "1277", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 117.89220477541858, - "y": 0 - }, - "p1": { - "x": 0.44386240125497234, - "y": -0.0000840383214745917 - }, - "p2": { - "x": -0.5, - "y": 0 - } - } - }, - { - "ID": "3798", - "typeID": "Arrow", - "zOrder": "80", - "w": "98", - "h": "45", - "measuredW": "150", - "measuredH": "100", - "x": "316", - "y": "1219", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 97.4245607946479, - "y": 44.156960656710226 - }, - "p1": { - "x": 0.4324812244734664, - "y": 0.12619913264492683 - }, - "p2": { - "x": -0.21075983582244362, - "y": -0.0840440039717123 - } - } - }, - { - "ID": "3799", - "typeID": "Arrow", - "zOrder": "81", - "w": "117", - "h": "93", - "measuredW": "150", - "measuredH": "100", - "x": "316", - "y": "1166", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 117.25673529771217, - "y": 92.58030500215682 - }, - "p1": { - "x": 0.44347842881508887, - "y": 0.10776507879035985 - }, - "p2": { - "x": -0.21075983582244362, - "y": -0.4783599737602344 - } - } - }, - { - "ID": "3800", - "typeID": "Arrow", - "zOrder": "82", - "w": "145", - "h": "150", - "measuredW": "150", - "measuredH": "100", - "x": "317", - "y": "1109", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 145.24222110988308, - "y": 149.58030500215682 - }, - "p1": { - "x": 0.4659812116631927, - "y": 0.1003288191202847 - }, - "p2": { - "x": 0.31479204902865376, - "y": 0.07622028674927606 - } - } - }, - { - "ID": "3807", - "typeID": "Arrow", - "zOrder": "86", - "w": "1", - "h": "204", - "measuredW": "150", - "measuredH": "100", - "x": "855", - "y": "1192", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.25689465937091427, - "y": 203.69724823368188 - }, - "p1": { - "x": 0.4438624012549724, - "y": -0.00008403832147459163 - }, - "p2": { - "x": 0.25689465937091427, - "y": -0.15337575277499127 - } - } - }, - { - "ID": "3808", - "typeID": "Arrow", - "zOrder": "87", - "w": "191", - "h": "291", - "measuredW": "150", - "measuredH": "100", - "x": "943", - "y": "992", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 0.02379596089883762, - "y": 291.130738766469 - }, - "p1": { - "x": 0.391284366953843, - "y": -0.20347946562546068 - }, - "p2": { - "x": 190.7599581747637, - "y": 0 - } - } - }, - { - "ID": "3809", - "typeID": "Arrow", - "zOrder": "88", - "w": "1", - "h": "84", - "measuredW": "150", - "measuredH": "100", - "x": "1232", - "y": "889", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.25689465937091427, - "y": 84.69724823368188 - }, - "p1": { - "x": 0.4438624012549724, - "y": -0.00008403832147459144 - }, - "p2": { - "x": 0.25689465937102796, - "y": 0.2839543487633591 - } - } - }, - { - "ID": "3810", - "typeID": "Arrow", - "zOrder": "89", - "w": "200", - "h": "225", - "measuredW": "150", - "measuredH": "100", - "x": "939", - "y": "739", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 199.10678263508953, - "y": 225.37250016298015 - }, - "p1": { - "x": 0.48624417241666074, - "y": -0.24026011966692973 - }, - "p2": { - "x": -0.2400418252362897, - "y": 0 - } - } - }, - { - "ID": "3811", - "typeID": "Arrow", - "zOrder": "90", - "w": "1", - "h": "110", - "measuredW": "150", - "measuredH": "100", - "x": "861", - "y": "740", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.25689465937091427, - "y": 110.69724823368188 - }, - "p1": { - "x": 0.4438624012549723, - "y": -0.00008403832147459171 - }, - "p2": { - "x": 0.25689465937091427, - "y": 0.2729161539513143 - } - } - }, - { - "ID": "3812", - "typeID": "Arrow", - "zOrder": "91", - "w": "127", - "h": "25", - "measuredW": "150", - "measuredH": "100", - "x": "635", - "y": "745", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 127.36514136643882, - "y": 1.1622138648702958 - }, - "p1": { - "x": 0.5189223328370163, - "y": -0.07415184285543132 - }, - "p2": { - "x": 0.25689465937091427, - "y": 25 - } - } - }, - { - "ID": "3813", - "typeID": "Arrow", - "zOrder": "92", - "w": "136", - "h": "23", - "measuredW": "150", - "measuredH": "100", - "x": "635", - "y": "709", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 136.19908793281718, - "y": 22.438969587572842 - }, - "p1": { - "x": 0.45684079135455363, - "y": 0.0537462843005 - }, - "p2": { - "x": 0.25689465937091427, - "y": 0 - } - } - }, - { - "ID": "3814", - "typeID": "Arrow", - "zOrder": "93", - "w": "130", - "h": "69", - "measuredW": "150", - "measuredH": "100", - "x": "639", - "y": "652", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 130.72676350508743, - "y": 69.13269859346474 - }, - "p1": { - "x": 0.4613284413495615, - "y": 0.1090289051526259 - }, - "p2": { - "x": 0.25689465937091427, - "y": 0 - } - } - }, - { - "ID": "3831", - "typeID": "Arrow", - "zOrder": "102", - "w": "111", - "h": "46", - "measuredW": "150", - "measuredH": "100", - "x": "328", - "y": "921", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 110.89220477541858, - "y": 0 - }, - "p1": { - "x": 0.5503615520865505, - "y": -0.11056995793209477 - }, - "p2": { - "x": -0.5, - "y": 46 - } - } - }, - { - "ID": "3832", - "typeID": "Arrow", - "zOrder": "103", - "w": "118", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "325", - "y": "911", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 117.89220477541858, - "y": 0 - }, - "p1": { - "x": 0.44386240125497234, - "y": -0.0000840383214745917 - }, - "p2": { - "x": -0.5, - "y": 0 - } - } - }, - { - "ID": "3833", - "typeID": "Arrow", - "zOrder": "104", - "w": "110", - "h": "50", - "measuredW": "150", - "measuredH": "100", - "x": "328", - "y": "849", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 109.5, - "y": 50 - }, - "p1": { - "x": 0.4997781798834965, - "y": 0.09863467964741622 - }, - "p2": { - "x": -0.5, - "y": 0 - } - } - }, - { - "ID": "3839", - "typeID": "Arrow", - "zOrder": "108", - "w": "238", - "h": "218", - "measuredW": "150", - "measuredH": "100", - "x": "931", - "y": "507", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 238, - "y": 0 - }, - "p1": { - "x": 0.4830716337108562, - "y": 0.27447343734126733 - }, - "p2": { - "x": 0.2452005390608747, - "y": 217.38361844303233 - } - } - }, - { - "ID": "3840", - "typeID": "Arrow", - "zOrder": "109", - "w": "331", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "192", - "y": "501", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 330.8922047754186, - "y": 0 - }, - "p1": { - "x": 0.4438624012549723, - "y": -0.0000840383214745917 - }, - "p2": { - "x": 0.25689465937091427, - "y": 0 - }, - "stroke": "dotted" - } - }, - { - "ID": "3841", - "typeID": "Label", - "zOrder": "110", - "measuredW": "247", - "measuredH": "40", - "x": "680", - "y": "324", - "properties": { - "size": "32", - "text": "Game Developer" - } - }, - { - "ID": "3842", - "typeID": "__group__", - "zOrder": "111", - "measuredW": "373", - "measuredH": "151", - "w": "373", - "h": "151", - "x": "1069", - "y": "216", - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "373", - "h": "151", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0" - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "333", - "measuredH": "26", - "x": "18", - "y": "19", - "properties": { - "text": "Find the detailed version of this roadmap", - "size": "18" - } - }, - { - "ID": "3", - "typeID": "__group__", - "zOrder": "2", - "measuredW": "339", - "measuredH": "47", - "w": "339", - "h": "47", - "x": "18", - "y": "88", - "properties": { - "controlName": "ext_link:roadmap.sh" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "339", - "h": "47", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "borderColor": "4273622", - "color": "4273622" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "155", - "measuredH": "26", - "x": "92", - "y": "11", - "properties": { - "color": "16777215", - "text": "https://roadmap.sh", - "size": "18" - } - } - ] - } - } - }, - { - "ID": "5", - "typeID": "Label", - "zOrder": "3", - "measuredW": "337", - "measuredH": "26", - "x": "18", - "y": "48", - "properties": { - "size": "18", - "text": "Along with resources and more roadmaps" - } - } - ] - } - } - }, - { - "ID": "3843", - "typeID": "Arrow", - "zOrder": "112", - "w": "1", - "h": "74", - "measuredW": "150", - "measuredH": "100", - "x": "805", - "y": "233", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 0, - "y": 0 - }, - "p1": { - "x": 0.4438624012549725, - "y": -0.00008403832147459165 - }, - "p2": { - "x": 0, - "y": 74.15918378573792 - }, - "stroke": "dotted" - } - }, - { - "ID": "3844", - "typeID": "Arrow", - "zOrder": "113", - "w": "1", - "h": "115", - "measuredW": "150", - "measuredH": "100", - "x": "805", - "y": "385", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 0, - "y": 0 - }, - "p1": { - "x": 0.44386240125497245, - "y": -0.00008403832147459165 - }, - "p2": { - "x": 0, - "y": 114.87761494930675 - } - } - }, - { - "ID": "3845", - "typeID": "__group__", - "zOrder": "114", - "measuredW": "394", - "measuredH": "198", - "w": "394", - "h": "198", - "x": "131", - "y": "211", - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "394", - "h": "198", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0" - }, - { - "ID": "5", - "typeID": "Label", - "zOrder": "1", - "measuredW": "338", - "measuredH": "26", - "x": "26", - "y": "72", - "properties": { - "size": "18", - "text": "Original roadmap was made by Chris Ohk." - } - }, - { - "ID": "7", - "typeID": "Label", - "zOrder": "2", - "measuredW": "308", - "measuredH": "26", - "x": "26", - "y": "102", - "properties": { - "size": "18", - "text": "You can find him using the links below:" - } - }, - { - "ID": "11", - "typeID": "Label", - "zOrder": "3", - "measuredW": "169", - "measuredH": "32", - "x": "26", - "y": "29", - "properties": { - "size": "24", - "text": "Special Thanks!" - } - }, - { - "ID": "16", - "typeID": "Label", - "zOrder": "5", - "measuredW": "13", - "measuredH": "26", - "x": "148", - "y": "144", - "properties": { - "size": "18", - "text": "+" - } - }, - { - "ID": "18", - "typeID": "__group__", - "zOrder": "4", - "measuredW": "113", - "measuredH": "26", - "w": "113", - "h": "26", - "x": "26", - "y": "144", - "properties": { - "controlName": "ext_link:github.com/utilForever" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Label", - "zOrder": "0", - "measuredW": "113", - "measuredH": "26", - "x": "0", - "y": "0", - "properties": { - "size": "18", - "text": "GitHub Profile", - "color": "10027263" - } - } - ] - } - } - }, - { - "ID": "19", - "typeID": "__group__", - "zOrder": "6", - "measuredW": "110", - "measuredH": "26", - "w": "110", - "h": "26", - "x": "176", - "y": "144", - "properties": { - "controlName": "ext_link:twitter.com/utilForever" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Label", - "zOrder": "0", - "measuredW": "110", - "measuredH": "26", - "x": "0", - "y": "0", - "properties": { - "size": "18", - "text": "Twitter Profile", - "color": "10027263" - } - } - ] - } - } - } - ] - } - } - }, - { - "ID": "3846", - "typeID": "Arrow", - "zOrder": "115", - "w": "101", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "754", - "y": "204", - "properties": { - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "16777215", - "p0": { - "x": 100.57841492806233, - "y": 0.15918378573792324 - }, - "p1": { - "x": 0.4438624012549726, - "y": -0.00008403832147459165 - }, - "p2": { - "x": 0, - "y": 0.15918378573792324 - } - } - }, - { - "ID": "3847", - "typeID": "Arrow", - "zOrder": "116", - "w": "594", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "539", - "y": "502", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 594.0697673807772, - "y": 0 - }, - "p1": { - "x": 0.4438624012549723, - "y": -0.00008403832147459167 - }, - "p2": { - "x": 0.25689465937091427, - "y": 0 - } - } - }, - { - "ID": "3848", - "typeID": "__group__", - "zOrder": "117", - "measuredW": "375", - "measuredH": "54", - "w": "375", - "h": "54", - "x": "1068", - "y": "387", - "properties": { - "controlName": "100-roadmap-note" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "375", - "h": "54", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0" - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "224", - "measuredH": "26", - "x": "50", - "y": "14", - "properties": { - "size": "18", - "text": "Important Note / Click here" - } - }, - { - "ID": "2", - "typeID": "__group__", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "w": "24", - "h": "24", - "x": "18", - "y": "18", - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Icon", - "zOrder": "0", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "1", - "typeID": "Icon", - "zOrder": "1", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "icon": { - "ID": "check-circle", - "size": "small" - }, - "color": "13576743" - } - } - ] - } - } - } - ] - } - } - }, - { - "ID": "3849", - "typeID": "__group__", - "zOrder": "118", - "measuredW": "305", - "measuredH": "50", - "w": "305", - "h": "50", - "x": "341", - "y": "477", - "properties": { - "controlName": "ext_link:roadmap.sh/game-developer" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "305", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0" - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "84", - "measuredH": "25", - "x": "114", - "y": "13", - "properties": { - "size": "17", - "text": "Client Side" - } - } - ] - } - } - }, - { - "ID": "3850", - "typeID": "Label", - "zOrder": "119", - "measuredW": "303", - "measuredH": "25", - "x": "339", - "y": "540", - "properties": { - "size": "17", - "text": "Click to navigate to client side roadmap" - } - }, - { - "ID": "3851", - "typeID": "__group__", - "zOrder": "120", - "measuredW": "204", - "measuredH": "50", - "w": "204", - "h": "50", - "x": "1068", - "y": "478", - "properties": { - "controlName": "100-server-side" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "204", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "90", - "measuredH": "25", - "x": "57", - "y": "13", - "properties": { - "size": "17", - "text": "Server Side" - } - } - ] - } - } - }, - { - "ID": "3893", - "typeID": "Arrow", - "zOrder": "141", - "w": "270", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "508", - "y": "1281", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 270.0697673807772, - "y": 0 - }, - "p1": { - "x": 0.4438624012549724, - "y": -0.0000840383214745917 - }, - "p2": { - "x": 0.008777655416054131, - "y": 0 - } - } - }, - { - "ID": "3924", - "typeID": "Arrow", - "zOrder": "157", - "w": "688", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "575", - "y": "1507", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 687.3941847142846, - "y": 0 - }, - "p1": { - "x": 0.4438624012549723, - "y": -0.00008403832147459165 - }, - "p2": { - "x": -0.1520948599053895, - "y": 0 - } - } - }, - { - "ID": "3948", - "typeID": "Arrow", - "zOrder": "169", - "w": "1", - "h": "206", - "measuredW": "150", - "measuredH": "100", - "x": "945", - "y": "1583", - "properties": { - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 0, - "y": 206.01221488520832 - }, - "p1": { - "x": 0.4438624012549725, - "y": -0.00008403832147455508 - }, - "p2": { - "x": 0, - "y": 0.11860965287360159 - } - } - }, - { - "ID": "3949", - "typeID": "Arrow", - "zOrder": "170", - "w": "1", - "h": "27", - "measuredW": "150", - "measuredH": "100", - "x": "949", - "y": "1583", - "properties": { - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 0, - "y": 27.012214885208323 - }, - "p1": { - "x": 0.44386240125497256, - "y": -0.0000840383214745551 - }, - "p2": { - "x": 0, - "y": -0.3404268200670231 - } - } - }, - { - "ID": "3950", - "typeID": "Arrow", - "zOrder": "171", - "w": "1", - "h": "27", - "measuredW": "150", - "measuredH": "100", - "x": "953", - "y": "1583", - "properties": { - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 0, - "y": 27.012214885208323 - }, - "p1": { - "x": 0.44386240125497256, - "y": -0.0000840383214745551 - }, - "p2": { - "x": 0, - "y": -0.3404268200670231 - } - } - }, - { - "ID": "3951", - "typeID": "Label", - "zOrder": "172", - "measuredW": "141", - "measuredH": "28", - "x": "978", - "y": "1693", - "properties": { - "size": "20", - "text": "Getting Deeper" - } - }, - { - "ID": "3952", - "typeID": "Arrow", - "zOrder": "173", - "w": "1", - "h": "707", - "measuredW": "150", - "measuredH": "100", - "x": "501", - "y": "1599", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 0, - "y": 0 - }, - "p1": { - "x": 0.44386240125497256, - "y": -0.00008403832147459164 - }, - "p2": { - "x": 0, - "y": 707.2063652638717 - } - } - }, - { - "ID": "4017", - "typeID": "Arrow", - "zOrder": "206", - "w": "1", - "h": "431", - "measuredW": "150", - "measuredH": "100", - "x": "1362", - "y": "2303", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 0, - "y": 0 - }, - "p1": { - "x": 0.4438624012549725, - "y": -0.00008403832147459165 - }, - "p2": { - "x": 0, - "y": 430.87489633523455 - } - } - }, - { - "ID": "4022", - "typeID": "Arrow", - "zOrder": "209", - "w": "907", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "456", - "y": "2733", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 906.3961277418114, - "y": 0 - }, - "p1": { - "x": 0.44386240125497234, - "y": -0.00008403832147459163 - }, - "p2": { - "x": -0.44014843274607074, - "y": 0 - } - } - }, - { - "ID": "4027", - "typeID": "Arrow", - "zOrder": "212", - "w": "1", - "h": "206", - "measuredW": "150", - "measuredH": "100", - "x": "761", - "y": "2540", - "properties": { - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 0, - "y": 206.01221488520832 - }, - "p1": { - "x": 0.4438624012549725, - "y": -0.00008403832147455508 - }, - "p2": { - "x": 0, - "y": 0.11860965287360159 - } - } - }, - { - "ID": "4028", - "typeID": "Arrow", - "zOrder": "213", - "w": "1", - "h": "27", - "measuredW": "150", - "measuredH": "100", - "x": "765", - "y": "2718", - "properties": { - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 0, - "y": 27.012214885208323 - }, - "p1": { - "x": 0.44386240125497256, - "y": -0.0000840383214745551 - }, - "p2": { - "x": 0, - "y": -0.3404268200670231 - } - } - }, - { - "ID": "4029", - "typeID": "Arrow", - "zOrder": "214", - "w": "1", - "h": "27", - "measuredW": "150", - "measuredH": "100", - "x": "769", - "y": "2718", - "properties": { - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 0, - "y": 27.012214885208323 - }, - "p1": { - "x": 0.44386240125497256, - "y": -0.0000840383214745551 - }, - "p2": { - "x": 0, - "y": -0.3404268200670231 - } - } - }, - { - "ID": "4030", - "typeID": "Label", - "zOrder": "215", - "measuredW": "179", - "measuredH": "28", - "x": "783", - "y": "2616", - "properties": { - "size": "20", - "text": "Maximise your Skills" - } - }, - { - "ID": "4069", - "typeID": "Arrow", - "zOrder": "235", - "w": "511", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "455", - "y": "2817", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 510.3181420669464, - "y": 0 - }, - "p1": { - "x": 0.4438624012549723, - "y": -0.00008403832147459163 - }, - "p2": { - "x": -0.44014843274607074, - "y": 0 - } - } - }, - { - "ID": "4104", - "typeID": "Arrow", - "zOrder": "253", - "w": "306", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "661", - "y": "3561", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 306.3181420669464, - "y": 0 - }, - "p1": { - "x": 0.44386240125497217, - "y": -0.00008403832147459163 - }, - "p2": { - "x": 0.0807426500193742, - "y": 0 - } - } - }, - { - "ID": "4105", - "typeID": "Arrow", - "zOrder": "254", - "w": "1", - "h": "107", - "measuredW": "150", - "measuredH": "100", - "x": "661", - "y": "3562", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 0, - "y": 0.20577507445932497 - }, - "p1": { - "x": 0.4438624012549724, - "y": -0.00008403832147459167 - }, - "p2": { - "x": 0, - "y": 106.8764086870865 - } - } - }, - { - "ID": "4106", - "typeID": "Label", - "zOrder": "255", - "measuredW": "161", - "measuredH": "32", - "x": "583", - "y": "3685", - "properties": { - "size": "24", - "text": "Keep Learning" - } - }, - { - "ID": "4107", - "typeID": "Arrow", - "zOrder": "256", - "w": "1", - "h": "77", - "measuredW": "150", - "measuredH": "100", - "x": "661", - "y": "3733", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 0, - "y": 0.20577507445932497 - }, - "p1": { - "x": 0.4438624012549724, - "y": -0.00008403832147459167 - }, - "p2": { - "x": 0, - "y": 77.12930368014167 - }, - "stroke": "dotted" - } - }, - { - "ID": "4108", - "typeID": "__group__", - "zOrder": "121", - "measuredW": "204", - "measuredH": "50", - "w": "204", - "h": "50", - "x": "759", - "y": "709", - "properties": { - "controlName": "101-tcp" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "204", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "32", - "measuredH": "25", - "x": "87", - "y": "13", - "properties": { - "size": "17", - "text": "TCP" - } - } - ] - } - } - }, - { - "ID": "4109", - "typeID": "__group__", - "zOrder": "130", - "measuredW": "204", - "measuredH": "50", - "w": "204", - "h": "50", - "x": "1048", - "y": "954", - "properties": { - "controlName": "102-udp" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "204", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "36", - "measuredH": "25", - "x": "87", - "y": "13", - "properties": { - "size": "17", - "text": "UDP" - } - } - ] - } - } - }, - { - "ID": "4110", - "typeID": "__group__", - "zOrder": "142", - "measuredW": "204", - "measuredH": "50", - "w": "204", - "h": "50", - "x": "759", - "y": "1256", - "properties": { - "controlName": "103-tcp-vs-udp" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "204", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "94", - "measuredH": "25", - "x": "55", - "y": "13", - "properties": { - "size": "17", - "text": "TCP vs UDP" - } - } - ] - } - } - }, - { - "ID": "4111", - "typeID": "__group__", - "zOrder": "143", - "measuredW": "204", - "measuredH": "50", - "w": "204", - "h": "50", - "x": "403", - "y": "1253", - "properties": { - "controlName": "104-ip" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "204", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "16", - "measuredH": "25", - "x": "94", - "y": "13", - "properties": { - "size": "17", - "text": "IP" - } - } - ] - } - } - }, - { - "ID": "4112", - "typeID": "__group__", - "zOrder": "158", - "measuredW": "244", - "measuredH": "50", - "w": "244", - "h": "50", - "x": "1124", - "y": "1373", - "properties": { - "controlName": "105-programming-languages" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "244", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "194", - "measuredH": "25", - "x": "25", - "y": "12", - "properties": { - "size": "17", - "text": "Programming Languages" - } - } - ] - } - } - }, - { - "ID": "4113", - "typeID": "__group__", - "zOrder": "164", - "measuredW": "244", - "measuredH": "50", - "w": "244", - "h": "50", - "x": "1136", - "y": "1574", - "properties": { - "controlName": "106-socket-programming" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "244", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "160", - "measuredH": "25", - "x": "39", - "y": "12", - "properties": { - "size": "17", - "text": "Socket Programming" - } - } - ] - } - } - }, - { - "ID": "4114", - "typeID": "__group__", - "zOrder": "174", - "measuredW": "182", - "measuredH": "50", - "w": "182", - "h": "50", - "x": "395", - "y": "1710", - "properties": { - "controlName": "107-serialization" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "182", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "94", - "measuredH": "25", - "x": "44", - "y": "13", - "properties": { - "size": "17", - "text": "Serialization" - } - } - ] - } - } - }, - { - "ID": "4115", - "typeID": "__group__", - "zOrder": "180", - "measuredW": "182", - "measuredH": "50", - "w": "182", - "h": "50", - "x": "395", - "y": "1887", - "properties": { - "controlName": "108-multithreading" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "182", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "111", - "measuredH": "25", - "x": "35", - "y": "13", - "properties": { - "size": "17", - "text": "Multithreading" - } - } - ] - } - } - }, - { - "ID": "4116", - "typeID": "__group__", - "zOrder": "187", - "measuredW": "260", - "measuredH": "50", - "w": "260", - "h": "50", - "x": "395", - "y": "2278", - "properties": { - "controlName": "109-programming-techniques" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "260", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "196", - "measuredH": "25", - "x": "32", - "y": "13", - "properties": { - "size": "17", - "text": "Programming Techniques" - } - } - ] - } - } - }, - { - "ID": "4117", - "typeID": "__group__", - "zOrder": "193", - "measuredW": "128", - "measuredH": "50", - "w": "128", - "h": "50", - "x": "999", - "y": "2281", - "properties": { - "controlName": "110-databases" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "128", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "83", - "measuredH": "25", - "x": "22", - "y": "13", - "properties": { - "size": "17", - "text": "Databases" - } - } - ] - } - } - }, - { - "ID": "4118", - "typeID": "__group__", - "zOrder": "207", - "measuredW": "128", - "measuredH": "50", - "w": "128", - "h": "50", - "x": "1301", - "y": "2632", - "properties": { - "controlName": "111-cipher" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "128", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "52", - "measuredH": "25", - "x": "35", - "y": "12", - "properties": { - "size": "17", - "text": "Cipher" - } - } - ] - } - } - }, - { - "ID": "4119", - "typeID": "__group__", - "zOrder": "216", - "measuredW": "169", - "measuredH": "50", - "w": "169", - "h": "50", - "x": "511", - "y": "2707", - "properties": { - "controlName": "112-rpc-rest" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "169", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "96", - "measuredH": "25", - "x": "39", - "y": "13", - "properties": { - "size": "17", - "text": "RPC / REST" - } - } - ] - } - } - }, - { - "ID": "4120", - "typeID": "__group__", - "zOrder": "219", - "measuredW": "185", - "measuredH": "50", - "w": "185", - "h": "50", - "x": "358", - "y": "2405", - "properties": { - "controlName": "113-message-queues" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "185", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "137", - "measuredH": "25", - "x": "24", - "y": "13", - "properties": { - "size": "17", - "text": "Message Queues" - } - } - ] - } - } - }, - { - "ID": "4121", - "typeID": "__group__", - "zOrder": "222", - "measuredW": "229", - "measuredH": "50", - "w": "229", - "h": "50", - "x": "304", - "y": "2915", - "properties": { - "controlName": "114-mutlithreading-2" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "229", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "111", - "measuredH": "25", - "x": "59", - "y": "13", - "properties": { - "size": "17", - "text": "Multithreading" - } - } - ] - } - } - }, - { - "ID": "4122", - "typeID": "__group__", - "zOrder": "236", - "measuredW": "123", - "measuredH": "50", - "w": "123", - "h": "50", - "x": "907", - "y": "2916", - "properties": { - "controlName": "115-cloud" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "123", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "45", - "measuredH": "25", - "x": "38", - "y": "13", - "properties": { - "size": "17", - "text": "Cloud" - } - } - ] - } - } - }, - { - "ID": "4123", - "typeID": "__group__", - "zOrder": "241", - "measuredW": "175", - "measuredH": "50", - "w": "175", - "h": "50", - "x": "881", - "y": "3132", - "properties": { - "controlName": "116-data-clustering" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "175", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "120", - "measuredH": "25", - "x": "28", - "y": "13", - "properties": { - "size": "17", - "text": "Data Clustering" - } - } - ] - } - } - }, - { - "ID": "4124", - "typeID": "__group__", - "zOrder": "243", - "measuredW": "175", - "measuredH": "50", - "w": "175", - "h": "50", - "x": "881", - "y": "3236", - "properties": { - "controlName": "117-containerization" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "175", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "126", - "measuredH": "25", - "x": "26", - "y": "13", - "properties": { - "size": "17", - "text": "Containerization" - } - } - ] - } - } - }, - { - "ID": "4125", - "typeID": "__group__", - "zOrder": "247", - "measuredW": "95", - "measuredH": "50", - "w": "95", - "h": "50", - "x": "607", - "y": "3237", - "properties": { - "controlName": "118-ai" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "95", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "16", - "measuredH": "25", - "x": "40", - "y": "13", - "properties": { - "size": "17", - "text": "AI" - } - } - ] - } - } - }, - { - "ID": "4126", - "typeID": "__group__", - "zOrder": "124", - "measuredW": "241", - "measuredH": "50", - "w": "241", - "h": "50", - "x": "403", - "y": "628", - "properties": { - "controlName": "100-tcp:checksum" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "241", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "81", - "measuredW": "81", - "measuredH": "25", - "x": "80", - "y": "12", - "properties": { - "text": "Checksum", - "size": "17" - } - } - ] - } - } - }, - { - "ID": "4127", - "typeID": "__group__", - "zOrder": "122", - "measuredW": "239", - "measuredH": "50", - "w": "239", - "h": "50", - "x": "404", - "y": "684", - "properties": { - "controlName": "101-tcp:segment-structure" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "239", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "144", - "measuredW": "144", - "measuredH": "25", - "x": "48", - "y": "12", - "properties": { - "text": "Segment Structure", - "size": "17" - } - } - ] - } - } - }, - { - "ID": "4128", - "typeID": "__group__", - "zOrder": "123", - "measuredW": "240", - "measuredH": "50", - "w": "240", - "h": "50", - "x": "403", - "y": "745", - "properties": { - "controlName": "102-tcp:operations" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "240", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0" - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "86", - "measuredH": "25", - "x": "77", - "y": "12", - "properties": { - "size": "17", - "text": "Operations" - } - } - ] - } - } - }, - { - "ID": "4129", - "typeID": "__group__", - "zOrder": "125", - "measuredW": "204", - "measuredH": "50", - "w": "204", - "h": "50", - "x": "760", - "y": "813", - "properties": { - "controlName": "103-tcp:vulnerability" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "204", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0" - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "93", - "measuredH": "25", - "x": "55", - "y": "12", - "properties": { - "size": "17", - "text": "Vulnerability" - } - } - ] - } - } - }, - { - "ID": "4130", - "typeID": "__group__", - "zOrder": "107", - "measuredW": "240", - "measuredH": "50", - "w": "240", - "h": "50", - "x": "403", - "y": "791", - "properties": { - "controlName": "100-tcp:operations:connection" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "240", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "89", - "measuredH": "25", - "x": "75", - "y": "12", - "properties": { - "size": "17", - "text": "Connection" - } - } - ] - } - } - }, - { - "ID": "4131", - "typeID": "__group__", - "zOrder": "106", - "measuredW": "240", - "measuredH": "50", - "w": "240", - "h": "50", - "x": "403", - "y": "838", - "properties": { - "controlName": "101-tcp:operations:resource-usage" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "240", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "130", - "measuredH": "25", - "x": "55", - "y": "12", - "properties": { - "size": "17", - "text": "Resource Usage" - } - } - ] - } - } - }, - { - "ID": "4132", - "typeID": "__group__", - "zOrder": "105", - "measuredW": "240", - "measuredH": "50", - "w": "240", - "h": "50", - "x": "403", - "y": "884", - "properties": { - "controlName": "102-tcp:operations:data-transfer" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "240", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0" - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "105", - "measuredH": "25", - "x": "67", - "y": "12", - "properties": { - "size": "17", - "text": "Data Transfer" - } - } - ] - } - } - }, - { - "ID": "4133", - "typeID": "__group__", - "zOrder": "101", - "measuredW": "240", - "measuredH": "50", - "w": "240", - "h": "50", - "x": "403", - "y": "930", - "properties": { - "controlName": "103-tcp:operations:max-segment-scaling" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "240", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "166", - "measuredH": "25", - "x": "37", - "y": "12", - "properties": { - "size": "17", - "text": "Max Segment Scaling" - } - } - ] - } - } - }, - { - "ID": "4134", - "typeID": "__group__", - "zOrder": "100", - "measuredW": "240", - "measuredH": "50", - "w": "240", - "h": "50", - "x": "403", - "y": "977", - "properties": { - "controlName": "104-tcp:operations:window-scaling" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "240", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "120", - "measuredH": "25", - "x": "60", - "y": "12", - "properties": { - "size": "17", - "text": "Window Scaling" - } - } - ] - } - } - }, - { - "ID": "4135", - "typeID": "__group__", - "zOrder": "99", - "measuredW": "240", - "measuredH": "50", - "w": "240", - "h": "50", - "x": "403", - "y": "1024", - "properties": { - "controlName": "105-tcp:operations:timestamp" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "240", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "85", - "measuredH": "25", - "x": "77", - "y": "12", - "properties": { - "size": "17", - "text": "Timestamp" - } - } - ] - } - } - }, - { - "ID": "4136", - "typeID": "__group__", - "zOrder": "98", - "measuredW": "240", - "measuredH": "50", - "w": "240", - "h": "50", - "x": "403", - "y": "1070", - "properties": { - "controlName": "106-tcp:operations:out-of-band-data" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "240", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "137", - "measuredH": "25", - "x": "51", - "y": "12", - "properties": { - "size": "17", - "text": "Out-of-Band Data" - } - } - ] - } - } - }, - { - "ID": "4137", - "typeID": "__group__", - "zOrder": "97", - "measuredW": "242", - "measuredH": "50", - "w": "242", - "h": "50", - "x": "402", - "y": "1116", - "properties": { - "controlName": "107-tcp:operations:selective-acknowledgement" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "242", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "215", - "measuredH": "25", - "x": "13", - "y": "12", - "properties": { - "size": "17", - "text": "Selective Acknowledgement" - } - } - ] - } - } - }, - { - "ID": "4138", - "typeID": "__group__", - "zOrder": "126", - "measuredW": "202", - "measuredH": "50", - "w": "202", - "h": "50", - "x": "131", - "y": "828", - "properties": { - "controlName": "100-tcp:operations:data-transfer:flow-control" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "202", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0" - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "96", - "measuredH": "25", - "x": "53", - "y": "12", - "properties": { - "size": "17", - "text": "Flow Control" - } - } - ] - } - } - }, - { - "ID": "4139", - "typeID": "__group__", - "zOrder": "127", - "measuredW": "202", - "measuredH": "50", - "w": "202", - "h": "50", - "x": "131", - "y": "883", - "properties": { - "controlName": "101-tcp:operations:data-transfer:congestion-control" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "202", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "149", - "measuredH": "25", - "x": "33", - "y": "12", - "properties": { - "size": "17", - "text": "Congestion Control" - } - } - ] - } - } - }, - { - "ID": "4140", - "typeID": "__group__", - "zOrder": "128", - "measuredW": "202", - "measuredH": "50", - "w": "202", - "h": "50", - "x": "131", - "y": "936", - "properties": { - "controlName": "102-tcp:operations:data-transfer:reliable-transmission" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "202", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "168", - "measuredH": "25", - "x": "21", - "y": "12", - "properties": { - "size": "17", - "text": "Reliable Transmission" - } - } - ] - } - } - }, - { - "ID": "4141", - "typeID": "__group__", - "zOrder": "129", - "measuredW": "202", - "measuredH": "50", - "w": "202", - "h": "50", - "x": "131", - "y": "781", - "properties": { - "controlName": "100-tcp:operations:data-transfer:flow-control:error-detection" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "202", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "119", - "measuredH": "25", - "x": "41", - "y": "12", - "properties": { - "size": "17", - "text": "Error Detection" - } - } - ] - } - } - }, - { - "ID": "4142", - "typeID": "__group__", - "zOrder": "96", - "measuredW": "204", - "measuredH": "50", - "w": "204", - "h": "50", - "x": "760", - "y": "860", - "properties": { - "controlName": "100-tcp:vulnerability:denial-of-service" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "204", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "131", - "measuredH": "25", - "x": "36", - "y": "12", - "properties": { - "size": "17", - "text": "Denial of Service" - } - } - ] - } - } - }, - { - "ID": "4143", - "typeID": "__group__", - "zOrder": "95", - "measuredW": "204", - "measuredH": "50", - "w": "204", - "h": "50", - "x": "760", - "y": "906", - "properties": { - "controlName": "101-tcp:vulnerability:connection-hijacking" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "204", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "164", - "measuredH": "25", - "x": "22", - "y": "12", - "properties": { - "size": "17", - "text": "Connection Hijacking" - } - } - ] - } - } - }, - { - "ID": "4144", - "typeID": "__group__", - "zOrder": "94", - "measuredW": "204", - "measuredH": "50", - "w": "204", - "h": "50", - "x": "760", - "y": "951", - "properties": { - "controlName": "102-tcp:vulnerability:veto" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "204", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "34", - "measuredH": "25", - "x": "85", - "y": "12", - "properties": { - "size": "17", - "text": "Veto" - } - } - ] - } - } - }, - { - "ID": "4145", - "typeID": "__group__", - "zOrder": "135", - "measuredW": "196", - "measuredH": "50", - "w": "196", - "h": "50", - "x": "1186", - "y": "655", - "properties": { - "controlName": "100-udp:reliability" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "196", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "74", - "measuredH": "25", - "x": "61", - "y": "12", - "properties": { - "size": "17", - "text": "Reliability" - } - } - ] - } - } - }, - { - "ID": "4146", - "typeID": "__group__", - "zOrder": "134", - "measuredW": "196", - "measuredH": "50", - "w": "196", - "h": "50", - "x": "1186", - "y": "708", - "properties": { - "controlName": "101-udp:datagram" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "196", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "76", - "measuredH": "25", - "x": "60", - "y": "12", - "properties": { - "size": "17", - "text": "Datagram" - } - } - ] - } - } - }, - { - "ID": "4147", - "typeID": "__group__", - "zOrder": "133", - "measuredW": "196", - "measuredH": "50", - "w": "196", - "h": "50", - "x": "1186", - "y": "762", - "properties": { - "controlName": "102-udp:congestion-control" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "196", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "149", - "measuredH": "25", - "x": "23", - "y": "12", - "properties": { - "size": "17", - "text": "Congestion Control" - } - } - ] - } - } - }, - { - "ID": "4148", - "typeID": "__group__", - "zOrder": "132", - "measuredW": "196", - "measuredH": "50", - "w": "196", - "h": "50", - "x": "1186", - "y": "816", - "properties": { - "controlName": "103-udp:checksum" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "196", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "81", - "measuredH": "25", - "x": "57", - "y": "12", - "properties": { - "size": "17", - "text": "Checksum" - } - } - ] - } - } - }, - { - "ID": "4149", - "typeID": "__group__", - "zOrder": "131", - "measuredW": "196", - "measuredH": "50", - "w": "196", - "h": "50", - "x": "1186", - "y": "870", - "properties": { - "controlName": "104-udp:packet-structure" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "196", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "127", - "measuredH": "25", - "x": "34", - "y": "12", - "properties": { - "text": "Packet Structure", - "size": "17" - } - } - ] - } - } - }, - { - "ID": "4150", - "typeID": "__group__", - "zOrder": "138", - "measuredW": "244", - "measuredH": "50", - "w": "244", - "h": "50", - "x": "720", - "y": "1055", - "properties": { - "controlName": "100-tcp-vs-udp:reliable-vs-unreliable" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "244", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "168", - "measuredH": "25", - "x": "38", - "y": "12", - "properties": { - "size": "17", - "text": "Reliable vs Unreliable" - } - } - ] - } - } - }, - { - "ID": "4151", - "typeID": "__group__", - "zOrder": "137", - "measuredW": "244", - "measuredH": "50", - "w": "244", - "h": "50", - "x": "720", - "y": "1110", - "properties": { - "controlName": "101-tcp-vs-udp:ordered-vs-not-ordered" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "244", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "187", - "measuredH": "25", - "x": "28", - "y": "12", - "properties": { - "size": "17", - "text": "Ordered vs Not Ordered" - } - } - ] - } - } - }, - { - "ID": "4152", - "typeID": "__group__", - "zOrder": "136", - "measuredW": "244", - "measuredH": "50", - "w": "244", - "h": "50", - "x": "720", - "y": "1164", - "properties": { - "controlName": "102-tcp-vs-udp:heavyweight-vs-lightweight" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "244", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "212", - "measuredH": "25", - "x": "16", - "y": "12", - "properties": { - "size": "17", - "text": "Heavyweight vs Lightweight" - } - } - ] - } - } - }, - { - "ID": "4153", - "typeID": "__group__", - "zOrder": "139", - "measuredW": "244", - "measuredH": "50", - "w": "244", - "h": "50", - "x": "720", - "y": "1349", - "properties": { - "controlName": "103-tcp-vs-udp:packet-vs-datagram" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "244", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "154", - "measuredH": "25", - "x": "36", - "y": "12", - "properties": { - "size": "17", - "text": "Packet vs Datagram" - } - } - ] - } - } - }, - { - "ID": "4154", - "typeID": "__group__", - "zOrder": "140", - "measuredW": "244", - "measuredH": "50", - "w": "244", - "h": "50", - "x": "720", - "y": "1403", - "properties": { - "controlName": "104-tcp-vs-udp:streaming-vs-broadcast" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "244", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "183", - "measuredH": "25", - "x": "30", - "y": "12", - "properties": { - "size": "17", - "text": "Streaming vs Broadcast" - } - } - ] - } - } - }, - { - "ID": "4155", - "typeID": "__group__", - "zOrder": "144", - "measuredW": "207", - "measuredH": "50", - "w": "207", - "h": "50", - "x": "118", - "y": "1090", - "properties": { - "controlName": "100-ip:capability" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "207", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "76", - "measuredH": "25", - "x": "66", - "y": "12", - "properties": { - "size": "17", - "text": "Capability" - } - } - ] - } - } - }, - { - "ID": "4156", - "typeID": "__group__", - "zOrder": "145", - "measuredW": "207", - "measuredH": "50", - "w": "207", - "h": "50", - "x": "118", - "y": "1144", - "properties": { - "controlName": "101-ip:reliability" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "207", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "74", - "measuredH": "25", - "x": "67", - "y": "12", - "properties": { - "size": "17", - "text": "Reliability" - } - } - ] - } - } - }, - { - "ID": "4157", - "typeID": "__group__", - "zOrder": "147", - "measuredW": "207", - "measuredH": "50", - "w": "207", - "h": "50", - "x": "118", - "y": "1198", - "properties": { - "controlName": "102-ip:link-capacity" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "207", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "104", - "measuredH": "25", - "x": "52", - "y": "12", - "properties": { - "size": "17", - "text": "Link Capacity" - } - } - ] - } - } - }, - { - "ID": "4158", - "typeID": "__group__", - "zOrder": "146", - "measuredW": "207", - "measuredH": "50", - "w": "207", - "h": "50", - "x": "118", - "y": "1253", - "properties": { - "controlName": "103-ip:functions" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "207", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0" - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "67", - "measuredH": "25", - "x": "70", - "y": "12", - "properties": { - "size": "17", - "text": "Function" - } - } - ] - } - } - }, - { - "ID": "4159", - "typeID": "__group__", - "zOrder": "149", - "measuredW": "207", - "measuredH": "50", - "w": "207", - "h": "50", - "x": "118", - "y": "1449", - "properties": { - "controlName": "104-ip:transactions" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "207", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0" - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "99", - "measuredH": "25", - "x": "54", - "y": "12", - "properties": { - "size": "17", - "text": "Transactions" - } - } - ] - } - } - }, - { - "ID": "4160", - "typeID": "__group__", - "zOrder": "153", - "measuredW": "207", - "measuredH": "50", - "w": "207", - "h": "50", - "x": "118", - "y": "1550", - "properties": { - "controlName": "105-ip:categories" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "207", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0" - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "71", - "measuredH": "25", - "x": "54", - "y": "12", - "properties": { - "size": "17", - "text": "Category" - } - } - ] - } - } - }, - { - "ID": "4161", - "typeID": "__group__", - "zOrder": "156", - "measuredW": "207", - "measuredH": "50", - "w": "207", - "h": "50", - "x": "118", - "y": "1654", - "properties": { - "controlName": "106-ip:security" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "207", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0" - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "62", - "measuredH": "25", - "x": "73", - "y": "12", - "properties": { - "size": "17", - "text": "Security" - } - } - ] - } - } - }, - { - "ID": "4162", - "typeID": "__group__", - "zOrder": "85", - "measuredW": "207", - "measuredH": "50", - "w": "207", - "h": "50", - "x": "118", - "y": "1299", - "properties": { - "controlName": "100-ip:functions:datagram-construction" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "207", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "179", - "measuredH": "25", - "x": "14", - "y": "12", - "properties": { - "size": "17", - "text": "Datagram Construction" - } - } - ] - } - } - }, - { - "ID": "4163", - "typeID": "__group__", - "zOrder": "84", - "measuredW": "207", - "measuredH": "50", - "w": "207", - "h": "50", - "x": "118", - "y": "1346", - "properties": { - "controlName": "101-ip:functions:ip-addressing" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "207", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "107", - "measuredH": "25", - "x": "50", - "y": "12", - "properties": { - "size": "17", - "text": "IP Addressing" - } - } - ] - } - } - }, - { - "ID": "4164", - "typeID": "__group__", - "zOrder": "83", - "measuredW": "207", - "measuredH": "50", - "w": "207", - "h": "50", - "x": "118", - "y": "1392", - "properties": { - "controlName": "102-ip:functions:routing" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "207", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "60", - "measuredH": "25", - "x": "74", - "y": "12", - "properties": { - "size": "17", - "text": "Routing" - } - } - ] - } - } - }, - { - "ID": "4165", - "typeID": "__group__", - "zOrder": "148", - "measuredW": "67", - "measuredH": "50", - "w": "67", - "h": "50", - "x": "118", - "y": "1495", - "properties": { - "controlName": "100-ip:transactions:arp" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "67", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "34", - "measuredH": "25", - "x": "17", - "y": "12", - "properties": { - "size": "17", - "text": "ARP" - } - } - ] - } - } - }, - { - "ID": "4166", - "typeID": "__group__", - "zOrder": "150", - "measuredW": "67", - "measuredH": "50", - "w": "67", - "h": "50", - "x": "182", - "y": "1495", - "properties": { - "controlName": "101-ip:transactions:dns" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "67", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "36", - "measuredH": "25", - "x": "14", - "y": "12", - "properties": { - "size": "17", - "text": "DNS" - } - } - ] - } - } - }, - { - "ID": "4167", - "typeID": "__group__", - "zOrder": "151", - "measuredW": "80", - "measuredH": "50", - "w": "80", - "h": "50", - "x": "245", - "y": "1495", - "properties": { - "controlName": "102-ip:transactions:dhcp" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "80", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "48", - "measuredH": "25", - "x": "16", - "y": "12", - "properties": { - "size": "17", - "text": "DHCP" - } - } - ] - } - } - }, - { - "ID": "4168", - "typeID": "__group__", - "zOrder": "152", - "measuredW": "111", - "measuredH": "50", - "w": "111", - "h": "50", - "x": "118", - "y": "1596", - "properties": { - "controlName": "100-ip:categories:ipv4" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "111", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "35", - "measuredH": "25", - "x": "38", - "y": "12", - "properties": { - "size": "17", - "text": "IPv4" - } - } - ] - } - } - }, - { - "ID": "4170", - "typeID": "__group__", - "zOrder": "154", - "measuredW": "102", - "measuredH": "50", - "w": "102", - "h": "50", - "x": "223", - "y": "1596", - "properties": { - "controlName": "101-ip:categories:ipv6" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "102", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "35", - "measuredH": "25", - "x": "33", - "y": "12", - "properties": { - "size": "17", - "text": "IPv6" - } - } - ] - } - } - }, - { - "ID": "4171", - "typeID": "__group__", - "zOrder": "155", - "measuredW": "207", - "measuredH": "50", - "w": "207", - "h": "50", - "x": "118", - "y": "1700", - "properties": { - "controlName": "100-ip:security:tls" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "207", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "31", - "measuredH": "25", - "x": "88", - "y": "12", - "properties": { - "size": "17", - "text": "TLS" - } - } - ] - } - } - }, - { - "ID": "4172", - "typeID": "__group__", - "zOrder": "159", - "measuredW": "104", - "measuredH": "50", - "w": "104", - "h": "50", - "x": "1186", - "y": "1166", - "properties": { - "controlName": "100-programming-languages:c-cpp" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "104", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "64", - "measuredH": "25", - "x": "21", - "y": "12", - "properties": { - "size": "17", - "text": "C / C++" - } - } - ] - } - } - }, - { - "ID": "4173", - "typeID": "__group__", - "zOrder": "160", - "measuredW": "87", - "measuredH": "50", - "w": "87", - "h": "50", - "x": "1295", - "y": "1166", - "properties": { - "controlName": "101-programming-languages:c-sharp" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "87", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "24", - "measuredH": "25", - "x": "32", - "y": "12", - "properties": { - "size": "17", - "text": "C#" - } - } - ] - } - } - }, - { - "ID": "4174", - "typeID": "__group__", - "zOrder": "161", - "measuredW": "104", - "measuredH": "50", - "w": "104", - "h": "50", - "x": "1186", - "y": "1220", - "properties": { - "controlName": "102-programming-languages:java" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "104", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "36", - "measuredH": "25", - "x": "34", - "y": "12", - "properties": { - "size": "17", - "text": "Java" - } - } - ] - } - } - }, - { - "ID": "4175", - "typeID": "__group__", - "zOrder": "162", - "measuredW": "88", - "measuredH": "50", - "w": "88", - "h": "50", - "x": "1294", - "y": "1221", - "properties": { - "controlName": "103-programming-languages:erlang" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "88", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "51", - "measuredH": "25", - "x": "19", - "y": "12", - "properties": { - "size": "17", - "text": "Erlang" - } - } - ] - } - } - }, - { - "ID": "4176", - "typeID": "__group__", - "zOrder": "163", - "measuredW": "196", - "measuredH": "50", - "w": "196", - "h": "50", - "x": "1186", - "y": "1274", - "properties": { - "controlName": "104-programming-languages:javascript" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "196", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "81", - "measuredH": "25", - "x": "57", - "y": "12", - "properties": { - "size": "17", - "text": "JavaScript" - } - } - ] - } - } - }, - { - "ID": "4177", - "typeID": "__group__", - "zOrder": "165", - "measuredW": "196", - "measuredH": "50", - "w": "196", - "h": "50", - "x": "1186", - "y": "1664", - "properties": { - "controlName": "100-socket-programming:byte-manipulation" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "196", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "138", - "measuredH": "25", - "x": "29", - "y": "12", - "properties": { - "size": "17", - "text": "Byte Manipulation" - } - } - ] - } - } - }, - { - "ID": "4178", - "typeID": "__group__", - "zOrder": "166", - "measuredW": "196", - "measuredH": "50", - "w": "196", - "h": "50", - "x": "1186", - "y": "1717", - "properties": { - "controlName": "101-socket-programming:address-conversion" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "196", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "154", - "measuredH": "25", - "x": "21", - "y": "12", - "properties": { - "size": "17", - "text": "Address Conversion" - } - } - ] - } - } - }, - { - "ID": "4179", - "typeID": "__group__", - "zOrder": "167", - "measuredW": "196", - "measuredH": "50", - "w": "196", - "h": "50", - "x": "1186", - "y": "1770", - "properties": { - "controlName": "102-socket-programming:descriptor" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "196", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "81", - "measuredH": "25", - "x": "57", - "y": "12", - "properties": { - "size": "17", - "text": "Descriptor" - } - } - ] - } - } - }, - { - "ID": "4180", - "typeID": "__group__", - "zOrder": "70", - "measuredW": "196", - "measuredH": "50", - "w": "196", - "h": "50", - "x": "1187", - "y": "1829", - "properties": { - "controlName": "103-socket-programming:api" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "196", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0" - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "27", - "measuredH": "25", - "x": "84", - "y": "12", - "properties": { - "size": "17", - "text": "API" - } - } - ] - } - } - }, - { - "ID": "4181", - "typeID": "__group__", - "zOrder": "168", - "measuredW": "196", - "measuredH": "50", - "w": "196", - "h": "50", - "x": "1187", - "y": "1876", - "properties": { - "controlName": "100-socket-programming:api:bsd-socket" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "196", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "91", - "measuredH": "25", - "x": "52", - "y": "12", - "properties": { - "size": "17", - "text": "BSD Socket" - } - } - ] - } - } - }, - { - "ID": "4182", - "typeID": "__group__", - "zOrder": "71", - "measuredW": "196", - "measuredH": "50", - "w": "196", - "h": "50", - "x": "1187", - "y": "1922", - "properties": { - "controlName": "101-socket-programming:api:winsock" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "196", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "64", - "measuredH": "25", - "x": "66", - "y": "12", - "properties": { - "size": "17", - "text": "Winsock" - } - } - ] - } - } - }, - { - "ID": "4184", - "typeID": "__group__", - "zOrder": "175", - "measuredW": "79", - "measuredH": "50", - "w": "79", - "h": "50", - "x": "633", - "y": "1658", - "properties": { - "controlName": "100-serialization:json" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "79", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "46", - "measuredH": "25", - "x": "17", - "y": "12", - "properties": { - "size": "17", - "text": "JSON" - } - } - ] - } - } - }, - { - "ID": "4185", - "typeID": "__group__", - "zOrder": "177", - "measuredW": "79", - "measuredH": "50", - "w": "79", - "h": "50", - "x": "715", - "y": "1658", - "properties": { - "controlName": "101-serialization:xml" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "79", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "35", - "measuredH": "25", - "x": "22", - "y": "12", - "properties": { - "size": "17", - "text": "XML" - } - } - ] - } - } - }, - { - "ID": "4186", - "typeID": "__group__", - "zOrder": "176", - "measuredW": "77", - "measuredH": "50", - "w": "77", - "h": "50", - "x": "634", - "y": "1711", - "properties": { - "controlName": "102-serialization:yaml" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "77", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "44", - "measuredH": "25", - "x": "17", - "y": "12", - "properties": { - "size": "17", - "text": "YAML" - } - } - ] - } - } - }, - { - "ID": "4187", - "typeID": "__group__", - "zOrder": "178", - "measuredW": "79", - "measuredH": "50", - "w": "79", - "h": "50", - "x": "715", - "y": "1711", - "properties": { - "controlName": "103-serialization:toml" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "79", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "47", - "measuredH": "25", - "x": "16", - "y": "12", - "properties": { - "size": "17", - "text": "TOML" - } - } - ] - } - } - }, - { - "ID": "4188", - "typeID": "__group__", - "zOrder": "179", - "measuredW": "161", - "measuredH": "50", - "w": "161", - "h": "50", - "x": "634", - "y": "1765", - "properties": { - "controlName": "104-serialization:protobuf" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "161", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "65", - "measuredH": "25", - "x": "48", - "y": "12", - "properties": { - "size": "17", - "text": "Protobuf" - } - } - ] - } - } - }, - { - "ID": "4189", - "typeID": "__group__", - "zOrder": "181", - "measuredW": "207", - "measuredH": "50", - "w": "207", - "h": "50", - "x": "116", - "y": "1891", - "properties": { - "controlName": "100-multithreading:thread-localstorage" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "207", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0" - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "165", - "measuredH": "25", - "x": "24", - "y": "12", - "properties": { - "size": "17", - "text": "Thread Local Storage" - } - } - ] - } - } - }, - { - "ID": "4190", - "typeID": "__group__", - "zOrder": "182", - "measuredW": "101", - "measuredH": "50", - "w": "101", - "h": "50", - "x": "116", - "y": "1946", - "properties": { - "controlName": "101-multithreading:sharding" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "101", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "69", - "measuredH": "25", - "x": "16", - "y": "12", - "properties": { - "size": "17", - "text": "Sharding" - } - } - ] - } - } - }, - { - "ID": "4191", - "typeID": "__group__", - "zOrder": "183", - "measuredW": "102", - "measuredH": "50", - "w": "102", - "h": "50", - "x": "221", - "y": "1946", - "properties": { - "controlName": "102-multithreading:fiber" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "102", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "40", - "measuredH": "25", - "x": "31", - "y": "12", - "properties": { - "size": "17", - "text": "Fiber" - } - } - ] - } - } - }, - { - "ID": "4192", - "typeID": "__group__", - "zOrder": "184", - "measuredW": "165", - "measuredH": "50", - "w": "165", - "h": "50", - "x": "634", - "y": "1887", - "properties": { - "controlName": "103-multithreading:synchronization" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "165", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0" - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "122", - "measuredH": "25", - "x": "23", - "y": "12", - "properties": { - "size": "17", - "text": "Synchronization" - } - } - ] - } - } - }, - { - "ID": "4193", - "typeID": "__group__", - "zOrder": "64", - "measuredW": "101", - "measuredH": "50", - "w": "101", - "h": "50", - "x": "116", - "y": "1845", - "properties": { - "controlName": "100-multithreading:thread-localstorage:windows" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "101", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "68", - "measuredH": "25", - "x": "16", - "y": "12", - "properties": { - "size": "17", - "text": "Windows" - } - } - ] - } - } - }, - { - "ID": "4194", - "typeID": "__group__", - "zOrder": "63", - "measuredW": "111", - "measuredH": "50", - "w": "111", - "h": "50", - "x": "212", - "y": "1845", - "properties": { - "controlName": "101-multithreading:thread-localstorage:pthread" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "111", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "60", - "measuredH": "25", - "x": "30", - "y": "12", - "properties": { - "size": "17", - "text": "pthread" - } - } - ] - } - } - }, - { - "ID": "4195", - "typeID": "__group__", - "zOrder": "62", - "measuredW": "165", - "measuredH": "50", - "w": "165", - "h": "50", - "x": "634", - "y": "1933", - "properties": { - "controlName": "100-multithreading:synchronization:barrier" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "165", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "54", - "measuredH": "25", - "x": "53", - "y": "12", - "properties": { - "size": "17", - "text": "Barrier" - } - } - ] - } - } - }, - { - "ID": "4196", - "typeID": "__group__", - "zOrder": "61", - "measuredW": "165", - "measuredH": "50", - "w": "165", - "h": "50", - "x": "634", - "y": "1979", - "properties": { - "controlName": "101-multithreading:synchronization:spinlock" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "165", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "65", - "measuredH": "25", - "x": "54", - "y": "12", - "properties": { - "size": "17", - "text": "Spinlock" - } - } - ] - } - } - }, - { - "ID": "4197", - "typeID": "__group__", - "zOrder": "60", - "measuredW": "165", - "measuredH": "50", - "w": "165", - "h": "50", - "x": "634", - "y": "2026", - "properties": { - "controlName": "102-multithreading:synchronization:mutex" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "165", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0" - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "48", - "measuredH": "25", - "x": "55", - "y": "12", - "properties": { - "size": "17", - "text": "Mutex" - } - } - ] - } - } - }, - { - "ID": "4198", - "typeID": "__group__", - "zOrder": "58", - "measuredW": "165", - "measuredH": "50", - "w": "165", - "h": "50", - "x": "634", - "y": "2072", - "properties": { - "controlName": "103-multithreading:synchronization:condition-variable" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "165", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "140", - "measuredH": "25", - "x": "14", - "y": "12", - "properties": { - "size": "17", - "text": "Condition Variable" - } - } - ] - } - } - }, - { - "ID": "4199", - "typeID": "__group__", - "zOrder": "57", - "measuredW": "165", - "measuredH": "50", - "w": "165", - "h": "50", - "x": "634", - "y": "2118", - "properties": { - "controlName": "104-multithreading:synchronization:future-promises" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "165", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0" - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "142", - "measuredH": "25", - "x": "12", - "y": "12", - "properties": { - "size": "17", - "text": "Future & Promises" - } - } - ] - } - } - }, - { - "ID": "4200", - "typeID": "__group__", - "zOrder": "185", - "measuredW": "117", - "measuredH": "50", - "w": "117", - "h": "50", - "x": "850", - "y": "2026", - "properties": { - "controlName": "100-multithreading:synchronization:mutex:semaphore" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "117", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "89", - "measuredH": "25", - "x": "14", - "y": "12", - "properties": { - "size": "17", - "text": "Semaphore" - } - } - ] - } - } - }, - { - "ID": "4201", - "typeID": "__group__", - "zOrder": "56", - "measuredW": "117", - "measuredH": "50", - "w": "117", - "h": "50", - "x": "850", - "y": "2121", - "properties": { - "controlName": "100-multithreading:synchronization:future-promises:coroutine" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "117", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "76", - "measuredH": "25", - "x": "21", - "y": "12", - "properties": { - "size": "17", - "text": "Coroutine" - } - } - ] - } - } - }, - { - "ID": "4202", - "typeID": "__group__", - "zOrder": "186", - "measuredW": "117", - "measuredH": "50", - "w": "117", - "h": "50", - "x": "850", - "y": "2174", - "properties": { - "controlName": "101-multithreading:synchronization:future-promises:channel" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "117", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "65", - "measuredH": "25", - "x": "26", - "y": "12", - "properties": { - "size": "17", - "text": "Channel" - } - } - ] - } - } - }, - { - "ID": "4203", - "typeID": "__group__", - "zOrder": "188", - "measuredW": "218", - "measuredH": "50", - "w": "218", - "h": "50", - "x": "117", - "y": "2066", - "properties": { - "controlName": "100-programming-techniques:design-patterns" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "218", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "123", - "measuredH": "25", - "x": "47", - "y": "12", - "properties": { - "size": "17", - "text": "Design Patterns" - } - } - ] - } - } - }, - { - "ID": "4204", - "typeID": "__group__", - "zOrder": "189", - "measuredW": "218", - "measuredH": "50", - "w": "218", - "h": "50", - "x": "117", - "y": "2119", - "properties": { - "controlName": "101-programming-techniques:tdd" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "218", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "36", - "measuredH": "25", - "x": "91", - "y": "12", - "properties": { - "size": "17", - "text": "TDD" - } - } - ] - } - } - }, - { - "ID": "4205", - "typeID": "__group__", - "zOrder": "190", - "measuredW": "218", - "measuredH": "50", - "w": "218", - "h": "50", - "x": "117", - "y": "2172", - "properties": { - "controlName": "102-programming-techniques:dependency-injection" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "218", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "168", - "measuredH": "25", - "x": "25", - "y": "12", - "properties": { - "size": "17", - "text": "Dependency Injection" - } - } - ] - } - } - }, - { - "ID": "4206", - "typeID": "__group__", - "zOrder": "191", - "measuredW": "218", - "measuredH": "50", - "w": "218", - "h": "50", - "x": "117", - "y": "2225", - "properties": { - "controlName": "103-programming-techniques:dump-analysis" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "218", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "113", - "measuredW": "113", - "measuredH": "25", - "x": "52", - "y": "12", - "properties": { - "size": "17", - "text": "Dump Analysis" - } - } - ] - } - } - }, - { - "ID": "4207", - "typeID": "__group__", - "zOrder": "192", - "measuredW": "218", - "measuredH": "50", - "w": "218", - "h": "50", - "x": "117", - "y": "2279", - "properties": { - "controlName": "104-programming-techniques:functional-programming" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "218", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "188", - "measuredH": "25", - "x": "15", - "y": "12", - "properties": { - "size": "17", - "text": "Functional Programming" - } - } - ] - } - } - }, - { - "ID": "4208", - "typeID": "__group__", - "zOrder": "194", - "measuredW": "104", - "measuredH": "50", - "w": "104", - "h": "50", - "x": "1011", - "y": "2125", - "properties": { - "controlName": "100-databases:rdbms" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "104", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0" - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "62", - "measuredH": "25", - "x": "21", - "y": "12", - "properties": { - "size": "17", - "text": "RDBMS" - } - } - ] - } - } - }, - { - "ID": "4209", - "typeID": "__group__", - "zOrder": "198", - "measuredW": "120", - "measuredH": "50", - "w": "120", - "h": "50", - "x": "1001", - "y": "2380", - "properties": { - "controlName": "101-databases:nosql" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "120", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0" - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "56", - "measuredH": "25", - "x": "32", - "y": "12", - "properties": { - "size": "17", - "text": "NoSQL" - } - } - ] - } - } - }, - { - "ID": "4210", - "typeID": "__group__", - "zOrder": "210", - "measuredW": "98", - "measuredH": "50", - "w": "98", - "h": "50", - "x": "831", - "y": "2381", - "properties": { - "controlName": "102-databases:orm" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "98", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "40", - "measuredH": "25", - "x": "31", - "y": "12", - "properties": { - "size": "17", - "text": "ORM" - } - } - ] - } - } - }, - { - "ID": "4211", - "typeID": "__group__", - "zOrder": "211", - "measuredW": "98", - "measuredH": "50", - "w": "98", - "h": "50", - "x": "831", - "y": "2435", - "properties": { - "controlName": "103-databases:dal" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "98", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "33", - "measuredH": "25", - "x": "34", - "y": "12", - "properties": { - "size": "17", - "text": "DAL" - } - } - ] - } - } - }, - { - "ID": "4212", - "typeID": "__group__", - "zOrder": "195", - "measuredW": "158", - "measuredH": "50", - "w": "158", - "h": "50", - "x": "1195", - "y": "2071", - "properties": { - "controlName": "100-databases:rdbms:mssql" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "158", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "118", - "measuredH": "25", - "x": "20", - "y": "12", - "properties": { - "size": "17", - "text": "MS SQL Server" - } - } - ] - } - } - }, - { - "ID": "4213", - "typeID": "__group__", - "zOrder": "196", - "measuredW": "158", - "measuredH": "50", - "w": "158", - "h": "50", - "x": "1195", - "y": "2124", - "properties": { - "controlName": "101-databases:rdbms:mysql" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "158", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "56", - "measuredH": "25", - "x": "51", - "y": "12", - "properties": { - "size": "17", - "text": "MySQL" - } - } - ] - } - } - }, - { - "ID": "4214", - "typeID": "__group__", - "zOrder": "197", - "measuredW": "158", - "measuredH": "50", - "w": "158", - "h": "50", - "x": "1195", - "y": "2177", - "properties": { - "controlName": "102-databases:rdbms:postgresql" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "158", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "93", - "measuredH": "25", - "x": "32", - "y": "12", - "properties": { - "size": "17", - "text": "PostgreSQL" - } - } - ] - } - } - }, - { - "ID": "4215", - "typeID": "__group__", - "zOrder": "199", - "measuredW": "135", - "measuredH": "50", - "w": "135", - "h": "50", - "x": "1178", - "y": "2381", - "properties": { - "controlName": "100-databases:nosql:dynamo-db" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "135", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "92", - "measuredH": "25", - "x": "22", - "y": "12", - "properties": { - "size": "17", - "text": "Dynamo DB" - } - } - ] - } - } - }, - { - "ID": "4216", - "typeID": "__group__", - "zOrder": "200", - "measuredW": "135", - "measuredH": "50", - "w": "135", - "h": "50", - "x": "1178", - "y": "2434", - "properties": { - "controlName": "101-databases:nosql:mongodb" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "135", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "78", - "measuredH": "25", - "x": "29", - "y": "12", - "properties": { - "size": "17", - "text": "MongoDB" - } - } - ] - } - } - }, - { - "ID": "4217", - "typeID": "__group__", - "zOrder": "201", - "measuredW": "135", - "measuredH": "50", - "w": "135", - "h": "50", - "x": "1178", - "y": "2487", - "properties": { - "controlName": "102-databases:nosql:cassandra" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "135", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "83", - "measuredH": "25", - "x": "26", - "y": "12", - "properties": { - "size": "17", - "text": "Cassandra" - } - } - ] - } - } - }, - { - "ID": "4218", - "typeID": "__group__", - "zOrder": "202", - "measuredW": "135", - "measuredH": "50", - "w": "135", - "h": "50", - "x": "1178", - "y": "2540", - "properties": { - "controlName": "103-databases:nosql:couchbase" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "135", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "88", - "measuredH": "25", - "x": "24", - "y": "12", - "properties": { - "size": "17", - "text": "Couchbase" - } - } - ] - } - } - }, - { - "ID": "4219", - "typeID": "__group__", - "zOrder": "203", - "measuredW": "120", - "measuredH": "50", - "w": "120", - "h": "50", - "x": "1001", - "y": "2499", - "properties": { - "controlName": "104-databases:key-value" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "120", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0" - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "76", - "measuredH": "25", - "x": "22", - "y": "12", - "properties": { - "size": "17", - "text": "Key-Value" - } - } - ] - } - } - }, - { - "ID": "4220", - "typeID": "__group__", - "zOrder": "204", - "measuredW": "120", - "measuredH": "50", - "w": "120", - "h": "50", - "x": "1001", - "y": "2552", - "properties": { - "controlName": "100-databases:key-value:redis" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "120", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "45", - "measuredH": "25", - "x": "37", - "y": "12", - "properties": { - "size": "17", - "text": "Redis" - } - } - ] - } - } - }, - { - "ID": "4221", - "typeID": "__group__", - "zOrder": "205", - "measuredW": "120", - "measuredH": "50", - "w": "120", - "h": "50", - "x": "1001", - "y": "2604", - "properties": { - "controlName": "101-databases:key-value:memcached" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "120", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "96", - "measuredH": "25", - "x": "12", - "y": "12", - "properties": { - "size": "17", - "text": "Memcached" - } - } - ] - } - } - }, - { - "ID": "4222", - "typeID": "__group__", - "zOrder": "208", - "measuredW": "80", - "measuredH": "50", - "w": "80", - "h": "50", - "x": "1175", - "y": "2632", - "properties": { - "controlName": "100-cipher:ssl" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "80", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "31", - "measuredH": "25", - "x": "24", - "y": "12", - "properties": { - "size": "17", - "text": "SSL" - } - } - ] - } - } - }, - { - "ID": "4223", - "typeID": "__group__", - "zOrder": "217", - "measuredW": "120", - "measuredH": "50", - "w": "120", - "h": "50", - "x": "536", - "y": "2549", - "properties": { - "controlName": "100-rpc-rest:rest" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "120", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "44", - "measuredH": "25", - "x": "38", - "y": "12", - "properties": { - "size": "17", - "text": "REST" - } - } - ] - } - } - }, - { - "ID": "4224", - "typeID": "__group__", - "zOrder": "218", - "measuredW": "120", - "measuredH": "50", - "w": "120", - "h": "50", - "x": "536", - "y": "2604", - "properties": { - "controlName": "101-rpc-rest:grpc" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "120", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "45", - "measuredH": "25", - "x": "37", - "y": "12", - "properties": { - "size": "17", - "text": "gRPC" - } - } - ] - } - } - }, - { - "ID": "4225", - "typeID": "__group__", - "zOrder": "220", - "measuredW": "149", - "measuredH": "50", - "w": "149", - "h": "50", - "x": "603", - "y": "2378", - "properties": { - "controlName": "100-message-queues:kafka" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "149", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "107", - "measuredH": "25", - "x": "21", - "y": "12", - "properties": { - "size": "17", - "text": "Apache Kafka" - } - } - ] - } - } - }, - { - "ID": "4226", - "typeID": "__group__", - "zOrder": "221", - "measuredW": "149", - "measuredH": "50", - "w": "149", - "h": "50", - "x": "603", - "y": "2433", - "properties": { - "controlName": "101-message-queues:rabbitmq" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "149", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "78", - "measuredH": "25", - "x": "36", - "y": "12", - "properties": { - "size": "17", - "text": "RabbitMQ" - } - } - ] - } - } - }, - { - "ID": "4227", - "typeID": "__group__", - "zOrder": "228", - "measuredW": "241", - "measuredH": "50", - "w": "241", - "h": "50", - "x": "116", - "y": "2615", - "properties": { - "controlName": "100-mutlithreading-2:task-based" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "241", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0" - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "91", - "measuredH": "25", - "x": "75", - "y": "12", - "properties": { - "size": "17", - "text": "Task-Based" - } - } - ] - } - } - }, - { - "ID": "4228", - "typeID": "__group__", - "zOrder": "225", - "measuredW": "148", - "measuredH": "50", - "w": "148", - "h": "50", - "x": "116", - "y": "2916", - "properties": { - "controlName": "101-mutlithreading-2:asynchronous" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "148", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0" - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "107", - "measuredH": "25", - "x": "20", - "y": "12", - "properties": { - "size": "17", - "text": "Asynchronous" - } - } - ] - } - } - }, - { - "ID": "4229", - "typeID": "__group__", - "zOrder": "223", - "measuredW": "167", - "measuredH": "50", - "w": "167", - "h": "50", - "x": "303", - "y": "3001", - "properties": { - "controlName": "102-mutlithreading-2:actor-model" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "167", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0" - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "93", - "measuredH": "25", - "x": "37", - "y": "12", - "properties": { - "size": "17", - "text": "Actor Model" - } - } - ] - } - } - }, - { - "ID": "4230", - "typeID": "__group__", - "zOrder": "230", - "measuredW": "185", - "measuredH": "50", - "w": "185", - "h": "50", - "x": "578", - "y": "2896", - "properties": { - "controlName": "103-mutlithreading-2:reactive-approach" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "185", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0" - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "146", - "measuredH": "25", - "x": "20", - "y": "13", - "properties": { - "size": "17", - "text": "Reactive Approach" - } - } - ] - } - } - }, - { - "ID": "4231", - "typeID": "__group__", - "zOrder": "232", - "measuredW": "185", - "measuredH": "50", - "w": "185", - "h": "50", - "x": "578", - "y": "2956", - "properties": { - "controlName": "104-mutlithreading-2:reactive-model" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "185", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0" - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "121", - "measuredH": "25", - "x": "32", - "y": "13", - "properties": { - "size": "17", - "text": "Reactive Model" - } - } - ] - } - } - }, - { - "ID": "4232", - "typeID": "__group__", - "zOrder": "20", - "measuredW": "241", - "measuredH": "50", - "w": "241", - "h": "50", - "x": "116", - "y": "2569", - "properties": { - "controlName": "100-mutlithreading-2:task-based:thread-building-block" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "241", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "220", - "measuredH": "25", - "x": "12", - "y": "12", - "properties": { - "size": "17", - "text": "Thread Building Block (C++)" - } - } - ] - } - } - }, - { - "ID": "4233", - "typeID": "__group__", - "zOrder": "19", - "measuredW": "181", - "measuredH": "50", - "w": "181", - "h": "50", - "x": "116", - "y": "2522", - "properties": { - "controlName": "101-mutlithreading-2:task-based:async-await" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "181", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "131", - "measuredH": "25", - "x": "25", - "y": "12", - "properties": { - "size": "17", - "text": "Async-await (C#)" - } - } - ] - } - } - }, - { - "ID": "4234", - "typeID": "__group__", - "zOrder": "18", - "measuredW": "181", - "measuredH": "50", - "w": "181", - "h": "50", - "x": "116", - "y": "2475", - "properties": { - "controlName": "102-mutlithreading-2:task-based:concurrency" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "181", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "150", - "measuredH": "25", - "x": "16", - "y": "12", - "properties": { - "size": "17", - "text": "Concurrency (Java)" - } - } - ] - } - } - }, - { - "ID": "4235", - "typeID": "__group__", - "zOrder": "229", - "measuredW": "181", - "measuredH": "50", - "w": "181", - "h": "50", - "x": "116", - "y": "2427", - "properties": { - "controlName": "103-mutlithreading-2:task-based:goroutine" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "181", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "113", - "measuredH": "25", - "x": "34", - "y": "12", - "properties": { - "size": "17", - "text": "goroutine (Go)" - } - } - ] - } - } - }, - { - "ID": "4236", - "typeID": "__group__", - "zOrder": "226", - "measuredW": "147", - "measuredH": "50", - "w": "147", - "h": "50", - "x": "117", - "y": "2829", - "properties": { - "controlName": "100-mutlithreading-2:asynchronous:proactor" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "147", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0" - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "66", - "measuredH": "25", - "x": "42", - "y": "12", - "properties": { - "size": "17", - "text": "Proactor" - } - } - ] - } - } - }, - { - "ID": "4237", - "typeID": "__group__", - "zOrder": "227", - "measuredW": "148", - "measuredH": "50", - "w": "148", - "h": "50", - "x": "116", - "y": "3000", - "properties": { - "controlName": "101-mutlithreading-2:asynchronous:reactor" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "148", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0" - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "62", - "measuredH": "25", - "x": "43", - "y": "12", - "properties": { - "size": "17", - "text": "Reactor" - } - } - ] - } - } - }, - { - "ID": "4238", - "typeID": "__group__", - "zOrder": "28", - "measuredW": "147", - "measuredH": "50", - "w": "147", - "h": "50", - "x": "117", - "y": "2782", - "properties": { - "controlName": "100-mutlithreading-2:asynchronous:proactor:iocp" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "147", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "41", - "measuredH": "25", - "x": "54", - "y": "12", - "properties": { - "size": "17", - "text": "IOCP" - } - } - ] - } - } - }, - { - "ID": "4239", - "typeID": "__group__", - "zOrder": "27", - "measuredW": "147", - "measuredH": "50", - "w": "147", - "h": "50", - "x": "117", - "y": "2735", - "properties": { - "controlName": "101-mutlithreading-2:asynchronous:proactor:iocp:io-uring" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "147", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "64", - "measuredH": "25", - "x": "43", - "y": "12", - "properties": { - "size": "17", - "text": "io_uring" - } - } - ] - } - } - }, - { - "ID": "4240", - "typeID": "__group__", - "zOrder": "26", - "measuredW": "147", - "measuredH": "50", - "w": "147", - "h": "50", - "x": "117", - "y": "2688", - "properties": { - "controlName": "102-mutlithreading-2:asynchronous:proactor:iocp:registered-io" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "147", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "108", - "measuredH": "25", - "x": "21", - "y": "12", - "properties": { - "size": "17", - "text": "Registered IO" - } - } - ] - } - } - }, - { - "ID": "4241", - "typeID": "__group__", - "zOrder": "22", - "measuredW": "147", - "measuredH": "50", - "w": "147", - "h": "50", - "x": "116", - "y": "3046", - "properties": { - "controlName": "100-mutlithreading-2:asynchronous:reactor:select" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "147", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "47", - "measuredH": "25", - "x": "50", - "y": "12", - "properties": { - "size": "17", - "text": "select" - } - } - ] - } - } - }, - { - "ID": "4242", - "typeID": "__group__", - "zOrder": "23", - "measuredW": "147", - "measuredH": "50", - "w": "147", - "h": "50", - "x": "116", - "y": "3093", - "properties": { - "controlName": "101-mutlithreading-2:asynchronous:reactor:wsa-poll" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "147", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "68", - "measuredH": "25", - "x": "40", - "y": "12", - "properties": { - "size": "17", - "text": "WSA Poll" - } - } - ] - } - } - }, - { - "ID": "4243", - "typeID": "__group__", - "zOrder": "24", - "measuredW": "147", - "measuredH": "50", - "w": "147", - "h": "50", - "x": "116", - "y": "3140", - "properties": { - "controlName": "102-mutlithreading-2:asynchronous:reactor:epoll" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "147", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "38", - "measuredH": "25", - "x": "55", - "y": "12", - "properties": { - "size": "17", - "text": "epoll" - } - } - ] - } - } - }, - { - "ID": "4244", - "typeID": "__group__", - "zOrder": "25", - "measuredW": "147", - "measuredH": "50", - "w": "147", - "h": "50", - "x": "116", - "y": "3186", - "properties": { - "controlName": "103-mutlithreading-2:asynchronous:reactor:kqueue" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "147", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "58", - "measuredH": "25", - "x": "45", - "y": "12", - "properties": { - "size": "17", - "text": "kqueue" - } - } - ] - } - } - }, - { - "ID": "4245", - "typeID": "__group__", - "zOrder": "224", - "measuredW": "167", - "measuredH": "50", - "w": "167", - "h": "50", - "x": "303", - "y": "3047", - "properties": { - "controlName": "100-mutlithreading-2:actor-model:akka-net" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "167", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "105", - "measuredH": "25", - "x": "31", - "y": "12", - "properties": { - "size": "17", - "text": "Akka.net (C#)" - } - } - ] - } - } - }, - { - "ID": "4246", - "typeID": "__group__", - "zOrder": "30", - "measuredW": "167", - "measuredH": "50", - "w": "167", - "h": "50", - "x": "303", - "y": "3094", - "properties": { - "controlName": "101-mutlithreading-2:actor-model:akka" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "167", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "90", - "measuredH": "25", - "x": "39", - "y": "12", - "properties": { - "size": "17", - "text": "Akka (Java)" - } - } - ] - } - } - }, - { - "ID": "4247", - "typeID": "__group__", - "zOrder": "16", - "measuredW": "95", - "measuredH": "50", - "w": "95", - "h": "50", - "x": "579", - "y": "2849", - "properties": { - "controlName": "100-mutlithreading-2:reactive-approach:oorp" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "95", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "49", - "measuredH": "25", - "x": "23", - "y": "12", - "properties": { - "size": "17", - "text": "OORP" - } - } - ] - } - } - }, - { - "ID": "4248", - "typeID": "__group__", - "zOrder": "15", - "measuredW": "95", - "measuredH": "50", - "w": "95", - "h": "50", - "x": "668", - "y": "2849", - "properties": { - "controlName": "101-mutlithreading-2:reactive-approach:frp" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "95", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "33", - "measuredH": "25", - "x": "31", - "y": "12", - "properties": { - "size": "17", - "text": "FRP" - } - } - ] - } - } - }, - { - "ID": "4249", - "typeID": "__group__", - "zOrder": "231", - "measuredW": "185", - "measuredH": "50", - "w": "185", - "h": "50", - "x": "578", - "y": "3000", - "properties": { - "controlName": "100-mutlithreading-2:reactive-model:synchrony" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "185", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "79", - "measuredH": "25", - "x": "53", - "y": "13", - "properties": { - "size": "17", - "text": "Synchrony" - } - } - ] - } - } - }, - { - "ID": "4250", - "typeID": "__group__", - "zOrder": "233", - "measuredW": "185", - "measuredH": "50", - "w": "185", - "h": "50", - "x": "578", - "y": "3047", - "properties": { - "controlName": "101-mutlithreading-2:reactive-model:determinism" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "185", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "98", - "measuredH": "25", - "x": "44", - "y": "13", - "properties": { - "size": "17", - "text": "Determinism" - } - } - ] - } - } - }, - { - "ID": "4251", - "typeID": "__group__", - "zOrder": "234", - "measuredW": "185", - "measuredH": "50", - "w": "185", - "h": "50", - "x": "578", - "y": "3094", - "properties": { - "controlName": "102-mutlithreading-2:reactive-model:update-process" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "185", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "124", - "measuredH": "25", - "x": "31", - "y": "13", - "properties": { - "size": "17", - "text": "Update Process" - } - } - ] - } - } - }, - { - "ID": "4252", - "typeID": "__group__", - "zOrder": "237", - "measuredW": "220", - "measuredH": "50", - "w": "220", - "h": "50", - "x": "1122", - "y": "2806", - "properties": { - "controlName": "100-cloud:azure" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "220", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "121", - "measuredH": "25", - "x": "34", - "y": "13", - "properties": { - "size": "17", - "text": "Microsoft Azure" - } - } - ] - } - } - }, - { - "ID": "4253", - "typeID": "__group__", - "zOrder": "238", - "measuredW": "220", - "measuredH": "50", - "w": "220", - "h": "50", - "x": "1122", - "y": "2861", - "properties": { - "controlName": "101-cloud:gcp" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "220", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "174", - "measuredH": "25", - "x": "24", - "y": "13", - "properties": { - "size": "17", - "text": "Google Cloud Platform" - } - } - ] - } - } - }, - { - "ID": "4254", - "typeID": "__group__", - "zOrder": "239", - "measuredW": "220", - "measuredH": "50", - "w": "220", - "h": "50", - "x": "1122", - "y": "2915", - "properties": { - "controlName": "102-cloud:aws" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "220", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "170", - "measuredH": "25", - "x": "24", - "y": "13", - "properties": { - "size": "17", - "text": "Amazon Web Services" - } - } - ] - } - } - }, - { - "ID": "4255", - "typeID": "__group__", - "zOrder": "240", - "measuredW": "220", - "measuredH": "50", - "w": "220", - "h": "50", - "x": "1121", - "y": "3031", - "properties": { - "controlName": "103-cloud:serverless" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "220", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "82", - "measuredH": "25", - "x": "69", - "y": "13", - "properties": { - "size": "17", - "text": "Serverless" - } - } - ] - } - } - }, - { - "ID": "4256", - "typeID": "__group__", - "zOrder": "242", - "measuredW": "220", - "measuredH": "50", - "w": "220", - "h": "50", - "x": "1118", - "y": "3133", - "properties": { - "controlName": "100-data-clustering:apache-spark" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "220", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "107", - "measuredH": "25", - "x": "56", - "y": "13", - "properties": { - "size": "17", - "text": "Apache Spark" - } - } - ] - } - } - }, - { - "ID": "4257", - "typeID": "__group__", - "zOrder": "244", - "measuredW": "220", - "measuredH": "50", - "w": "220", - "h": "50", - "x": "1118", - "y": "3237", - "properties": { - "controlName": "100-containerization:docker" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "220", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "56", - "measuredH": "25", - "x": "76", - "y": "13", - "properties": { - "size": "17", - "text": "Docker" - } - } - ] - } - } - }, - { - "ID": "4258", - "typeID": "__group__", - "zOrder": "245", - "measuredW": "220", - "measuredH": "50", - "w": "220", - "h": "50", - "x": "1118", - "y": "3335", - "properties": { - "controlName": "100-containerization:docker:docker-compose" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "220", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "134", - "measuredH": "25", - "x": "43", - "y": "13", - "properties": { - "size": "17", - "text": "Docker Compose" - } - } - ] - } - } - }, - { - "ID": "4259", - "typeID": "__group__", - "zOrder": "246", - "measuredW": "220", - "measuredH": "50", - "w": "220", - "h": "50", - "x": "1118", - "y": "3389", - "properties": { - "controlName": "101-containerization:docker:kubernetes" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "220", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "90", - "measuredH": "25", - "x": "65", - "y": "13", - "properties": { - "size": "17", - "text": "Kubernetes" - } - } - ] - } - } - }, - { - "ID": "4260", - "typeID": "__group__", - "zOrder": "249", - "measuredW": "167", - "measuredH": "50", - "w": "167", - "h": "50", - "x": "303", - "y": "3238", - "properties": { - "controlName": "100-ai:deep-learning" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "167", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0" - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "115", - "measuredH": "25", - "x": "26", - "y": "13", - "properties": { - "size": "17", - "text": "Deep Learning" - } - } - ] - } - } - }, - { - "ID": "4262", - "typeID": "__group__", - "zOrder": "252", - "measuredW": "167", - "measuredH": "50", - "w": "167", - "h": "50", - "x": "571", - "y": "3332", - "properties": { - "controlName": "101-ai:cloud-ml" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "167", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0" - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "74", - "measuredH": "25", - "x": "47", - "y": "13", - "properties": { - "size": "17", - "text": "Cloud ML" - } - } - ] - } - } - }, - { - "ID": "4265", - "typeID": "__group__", - "zOrder": "248", - "measuredW": "167", - "measuredH": "50", - "w": "167", - "h": "50", - "x": "303", - "y": "3282", - "properties": { - "controlName": "100-ai:deep-learning:tensor-flow" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "167", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "92", - "measuredH": "25", - "x": "38", - "y": "13", - "properties": { - "size": "17", - "text": "Tensor Flow" - } - } - ] - } - } - }, - { - "ID": "4266", - "typeID": "__group__", - "zOrder": "250", - "measuredW": "167", - "measuredH": "50", - "w": "167", - "h": "50", - "x": "303", - "y": "3329", - "properties": { - "controlName": "101-ai:deep-learning:pytorch" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "167", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "58", - "measuredH": "25", - "x": "55", - "y": "13", - "properties": { - "size": "17", - "text": "Pytorch" - } - } - ] - } - } - }, - { - "ID": "4267", - "typeID": "__group__", - "zOrder": "251", - "measuredW": "167", - "measuredH": "50", - "w": "167", - "h": "50", - "x": "571", - "y": "3376", - "properties": { - "controlName": "100-ai:cloud-ml:amazon-ml" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "167", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "91", - "measuredH": "25", - "x": "38", - "y": "13", - "properties": { - "size": "17", - "text": "Amazon ML" - } - } - ] - } - } - }, - { - "ID": "4268", - "typeID": "__group__", - "zOrder": "0", - "measuredW": "167", - "measuredH": "50", - "w": "167", - "h": "50", - "x": "571", - "y": "3422", - "properties": { - "controlName": "101-ai:cloud-ml:azure-ml" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "167", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "73", - "measuredH": "25", - "x": "47", - "y": "13", - "properties": { - "size": "17", - "text": "Azure ML" - } - } - ] - } - } - } - ] - }, - "attributes": { - "name": "New Wireframe 1 copy 3", - "order": 1000028.1748414688, - "parentID": null, - "notes": "" - }, - "branchID": "Master", - "resourceID": "2051BFE1-BFFD-4915-958E-EDD3CF7E402D", - "mockupH": "3606", - "mockupW": "1327", - "measuredW": "1443", - "measuredH": "3810", - "version": "1.0" - }, - "groupOffset": { - "x": 0, - "y": 0 - }, - "dependencies": [], - "projectID": "file:///Users/kamrify/Desktop/New%20Roadmaps/Android%20Roadmap.bmpr" + "nodes": [ + { + "id": "9Rf_ESmrOhmLgeiAmo2aE", + "type": "vertical", + "position": { + "x": -14.150757605772469, + "y": 1529.1065060656979 + }, + "selected": false, + "data": { + "label": "vertical node", + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2B78E4" + } + }, + "zIndex": 999, + "width": 20, + "height": 145, + "positionAbsolute": { + "x": -14.150757605772469, + "y": 1529.1065060656979 + }, + "dragging": false, + "style": { + "width": 20, + "height": 145 + }, + "resizing": false + }, + { + "id": "MyM7wSUeqDXwWqq497EIb", + "type": "vertical", + "position": { + "x": 346.8414717224867, + "y": 2326.8720132492394 + }, + "selected": false, + "data": { + "label": "vertical node", + "style": { + "stroke": "#2B78E4", + "strokeWidth": 3.5, + "strokeDasharray": "0.8 8", + "strokeLinecap": "round" + } + }, + "zIndex": 999, + "width": 20, + "height": 116, + "style": { + "width": 20, + "height": 116 + }, + "positionAbsolute": { + "x": 346.8414717224867, + "y": 2326.8720132492394 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "i5G_vqW3djl1tMFlHhzGi", + "type": "horizontal", + "position": { + "x": -219.23195037554086, + "y": 1607.8976823971498 + }, + "selected": false, + "data": { + "label": "horizontal node", + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2B78E4" + } + }, + "zIndex": 999, + "width": 66, + "height": 20, + "style": { + "width": 66, + "height": 20 + }, + "positionAbsolute": { + "x": -219.23195037554086, + "y": 1607.8976823971498 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "selectable": true + }, + { + "id": "ax0zKGmEcWhEyfTLVL_q_", + "type": "vertical", + "position": { + "x": -146.95654296875, + "y": 1812.4564918532815 + }, + "selected": false, + "data": { + "label": "vertical node", + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2B78E4" + } + }, + "zIndex": 999, + "width": 20, + "height": 100, + "style": { + "width": 20, + "height": 100 + }, + "positionAbsolute": { + "x": -146.95654296875, + "y": 1812.4564918532815 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "selectable": true + }, + { + "id": "4UzHjUtWQExUbCApQZrb1", + "type": "section", + "position": { + "x": -51.14448607509672, + "y": 1482.4027065582582 + }, + "width": 122, + "height": 49, + "style": { + "width": 122, + "height": 49 + }, + "selected": false, + "data": { + "style": { + "backgroundColor": "#ffffff", + "borderColor": "#000000" + } + }, + "positionAbsolute": { + "x": -51.14448607509672, + "y": 1482.4027065582582 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "selectable": true + }, + { + "id": "vQOg2sH4mRdekP8fu2l2y", + "type": "section", + "position": { + "x": -368.31301933317815, + "y": 1567.4564918532815 + }, + "width": 149, + "height": 270, + "style": { + "width": 149, + "height": 270 + }, + "selected": false, + "data": { + "style": { + "backgroundColor": "#ffffff", + "borderColor": "#000000" + } + }, + "positionAbsolute": { + "x": -368.31301933317815, + "y": 1567.4564918532815 + }, + "dragging": false, + "focusable": true, + "selectable": true + }, + { + "id": "xCBr001bGOe6pG2cBV5P2", + "type": "section", + "position": { + "x": -518.6327630325113, + "y": 1566.8976823971498 + }, + "width": 153, + "height": 217, + "style": { + "width": 153, + "height": 217 + }, + "selected": false, + "data": { + "style": { + "backgroundColor": "#ffffff", + "borderColor": "#000000" + } + }, + "positionAbsolute": { + "x": -518.6327630325113, + "y": 1566.8976823971498 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "selectable": true + }, + { + "id": "p5tPgBIMsADIgyDPwrXds", + "type": "horizontal", + "position": { + "x": -53.23195037554086, + "y": 1398.1810870203947 + }, + "selected": false, + "data": { + "label": "horizontal node", + "style": { + "stroke": "#2B78E4", + "strokeWidth": 3.5 + } + }, + "zIndex": 999, + "width": 390, + "height": 20, + "style": { + "width": 390, + "height": 20 + }, + "positionAbsolute": { + "x": -53.23195037554086, + "y": 1398.1810870203947 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "RpnDZAlSAM9gzffuCmIvY", + "type": "vertical", + "position": { + "x": 467.0153285883124, + "y": 1254.3347138997447 + }, + "selected": false, + "data": { + "label": "vertical node", + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2B78E4" + }, + "oldId": "O-vqKtOMAgcQL26Fief8r" + }, + "zIndex": 999, + "width": 20, + "height": 76, + "style": { + "width": 20, + "height": 76 + }, + "positionAbsolute": { + "x": 467.0153285883124, + "y": 1254.3347138997447 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "QxCHUdHvPE1PYSROlwaaP", + "type": "vertical", + "position": { + "x": 359.0153285883124, + "y": 1254.3347138997447 + }, + "selected": false, + "data": { + "label": "vertical node", + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2B78E4" + }, + "oldId": "RpnDZAlSAM9gzffuCmIvY" + }, + "zIndex": 999, + "width": 20, + "height": 76, + "style": { + "width": 20, + "height": 76 + }, + "positionAbsolute": { + "x": 359.0153285883124, + "y": 1254.3347138997447 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "abe6O92f_d1pFu0RLF6_Z", + "type": "vertical", + "position": { + "x": 172.08476767833992, + "y": 1149.9443302389855 + }, + "selected": false, + "data": { + "label": "vertical node", + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2B78E4" + }, + "oldId": "O-vqKtOMAgcQL26Fief8r" + }, + "zIndex": 999, + "width": 20, + "height": 93, + "style": { + "width": 20, + "height": 93 + }, + "positionAbsolute": { + "x": 172.08476767833992, + "y": 1149.9443302389855 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "kYNHe3y8YOfT2lLP1I8xw", + "type": "vertical", + "position": { + "x": 79.04348787605068, + "y": 1106.9443302389855 + }, + "selected": false, + "data": { + "label": "vertical node", + "style": { + "stroke": "#2B78E4", + "strokeWidth": 3.5 + } + }, + "zIndex": 999, + "width": 20, + "height": 301, + "style": { + "width": 20, + "height": 301 + }, + "positionAbsolute": { + "x": 79.04348787605068, + "y": 1106.9443302389855 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "dlmGJViN_PpdZRXgvcNI1", + "type": "horizontal", + "position": { + "x": -37.73195037554086, + "y": 1096.4443359375 + }, + "selected": false, + "data": { + "label": "horizontal node", + "style": { + "stroke": "#2B78E4", + "strokeWidth": 3.5 + }, + "oldId": "p5tPgBIMsADIgyDPwrXds" + }, + "zIndex": 999, + "width": 130, + "height": 20, + "style": { + "width": 130, + "height": 20 + }, + "positionAbsolute": { + "x": -37.73195037554086, + "y": 1096.4443359375 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "IDoNrKeTKP31kG61rgsuc", + "type": "vertical", + "position": { + "x": -72.45654296875, + "y": 1114.0579118246837 + }, + "selected": false, + "data": { + "label": "vertical node", + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2B78E4" + }, + "oldId": "ob2dlN-wIVcQOFVbSE9UD" + }, + "zIndex": 999, + "width": 20, + "height": 65, + "style": { + "width": 20, + "height": 65 + }, + "positionAbsolute": { + "x": -72.45654296875, + "y": 1114.0579118246837 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "selectable": true + }, + { + "id": "EuUyOm_J0Uo5qt9e2OtI_", + "type": "vertical", + "position": { + "x": -176.95654296875, + "y": 1114.0579118246837 + }, + "selected": false, + "data": { + "label": "vertical node", + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2B78E4" + }, + "oldId": "PzcDztjPaUEHW9Y7JXM-z" + }, + "zIndex": 999, + "width": 20, + "height": 71, + "style": { + "width": 20, + "height": 71 + }, + "positionAbsolute": { + "x": -176.95654296875, + "y": 1114.0579118246837 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "selectable": true + }, + { + "id": "ob2dlN-wIVcQOFVbSE9UD", + "type": "vertical", + "position": { + "x": -52.73195037554086, + "y": 830.4443302389855 + }, + "selected": false, + "data": { + "label": "vertical node", + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2B78E4" + } + }, + "zIndex": 999, + "width": 20, + "height": 97, + "style": { + "width": 20, + "height": 97 + }, + "positionAbsolute": { + "x": -52.73195037554086, + "y": 830.4443302389855 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "selectable": true + }, + { + "id": "0Ofr6cpaEUbohbp71donO", + "type": "vertical", + "position": { + "x": -168.73195037554086, + "y": 830.4443302389855 + }, + "selected": false, + "data": { + "label": "vertical node", + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2B78E4" + }, + "oldId": "IDoNrKeTKP31kG61rgsuc" + }, + "zIndex": 999, + "width": 20, + "height": 97, + "style": { + "width": 20, + "height": 97 + }, + "positionAbsolute": { + "x": -168.73195037554086, + "y": 830.4443302389855 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "selectable": true + }, + { + "id": "zr_KATtAVmEKpBT4WUoNh", + "type": "horizontal", + "position": { + "x": 229.08476767833986, + "y": 937.4443302389855 + }, + "selected": false, + "data": { + "label": "horizontal node", + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2B78E4" + } + }, + "zIndex": 999, + "width": 92, + "height": 20, + "style": { + "width": 92, + "height": 20 + }, + "positionAbsolute": { + "x": 229.08476767833986, + "y": 937.4443302389855 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "selectable": true + }, + { + "id": "2wJP9uXId9I4I04dbgOwF", + "type": "horizontal", + "position": { + "x": 229.08476767833986, + "y": 884.4443302389855 + }, + "selected": false, + "data": { + "label": "horizontal node", + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2B78E4" + }, + "oldId": "zr_KATtAVmEKpBT4WUoNh" + }, + "zIndex": 999, + "width": 92, + "height": 20, + "style": { + "width": 92, + "height": 20 + }, + "positionAbsolute": { + "x": 229.08476767833986, + "y": 884.4443302389855 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "selectable": true + }, + { + "id": "eVEId_Ty9xOlo5JySxS-_", + "type": "horizontal", + "position": { + "x": 229.08476767833986, + "y": 832.4443302389855 + }, + "selected": false, + "data": { + "label": "horizontal node", + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2B78E4" + }, + "oldId": "zr_KATtAVmEKpBT4WUoNh" + }, + "zIndex": 999, + "width": 92, + "height": 20, + "style": { + "width": 92, + "height": 20 + }, + "positionAbsolute": { + "x": 229.08476767833986, + "y": 832.4443302389855 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "selectable": true + }, + { + "id": "oo5RSmzBY8EIEhZUo7Kd-", + "type": "vertical", + "position": { + "x": 9.584767678339915, + "y": -20.82399710033968 + }, + "selected": false, + "data": { + "label": "vertical node", + "style": { + "stroke": "#2B78E4", + "strokeWidth": 3.5 + }, + "oldId": "QLA2IXBTDNrPyKGgxhfX1" + }, + "zIndex": 999, + "width": 20, + "height": 139, + "style": { + "width": 20, + "height": 139 + }, + "positionAbsolute": { + "x": 9.584767678339915, + "y": -20.82399710033968 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "selectable": true + }, + { + "id": "XkHpamC32buckstAh-FKp", + "type": "horizontal", + "position": { + "x": -82.73195037554086, + "y": 108.55791182468352 + }, + "selected": false, + "data": { + "label": "horizontal node", + "style": { + "stroke": "#2B78E4", + "strokeWidth": 3.5 + } + }, + "zIndex": 999, + "width": 251, + "height": 20, + "style": { + "width": 251, + "height": 20 + }, + "positionAbsolute": { + "x": -82.73195037554086, + "y": 108.55791182468352 + }, + "dragging": false, + "resizing": true, + "focusable": true, + "selectable": true + }, + { + "id": "OYUf0l4D8S8JcQx_YIPNj", + "type": "section", + "position": { + "x": -513.7045658739704, + "y": 147.05791182468352 + }, + "width": 227, + "height": 538, + "style": { + "width": 227, + "height": 538 + }, + "selected": false, + "data": { + "style": { + "backgroundColor": "#ffffff", + "borderColor": "#000000" + } + }, + "dragging": false, + "resizing": false, + "positionAbsolute": { + "x": -513.7045658739704, + "y": 147.05791182468352 + }, + "selectable": true, + "focusable": true + }, + { + "id": "yxUTaHSb98G-cApFPb7tu", + "type": "horizontal", + "position": { + "x": -520.9565121239493, + "y": -40.82399710033968 + }, + "selected": false, + "data": { + "label": "horizontal node", + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2B78E4" + } + }, + "zIndex": 999, + "width": 73, + "height": 20, + "style": { + "width": 73, + "height": 20 + }, + "positionAbsolute": { + "x": -520.9565121239493, + "y": -40.82399710033968 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "width": 255, + "height": 68, + "id": "iogwMmOvub2ZF4zgg6WyF", + "type": "title", + "position": { + "x": -108.73195037554086, + "y": -184.83998521803062 + }, + "selected": false, + "data": { + "label": "Game Developer", + "style": { + "fontSize": 28, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "9nxw2PEl-_eQPW0FHNPq2" + }, + "zIndex": 999, + "dragging": false, + "positionAbsolute": { + "x": -108.73195037554086, + "y": -184.83998521803062 + }, + "focusable": true, + "selectable": true + }, + { + "width": 20, + "height": 64, + "id": "LEijbLyxg4RyutKEM2Y5g", + "type": "vertical", + "position": { + "x": 8.768049624459138, + "y": -243.55566976101449 + }, + "selected": false, + "data": { + "label": "vertical node", + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#0A33FF" + }, + "oldId": "xD07fJ1NmNeAarVCEfubU" + }, + "zIndex": 999, + "positionAbsolute": { + "x": 8.768049624459138, + "y": -243.55566976101449 + }, + "dragging": false, + "focusable": true, + "style": { + "width": 20, + "height": 64 + }, + "resizing": true, + "selectable": true + }, + { + "id": "yHmHXymPNWwu8p1vvqD3o", + "type": "paragraph", + "position": { + "x": 179.8414717224867, + "y": -232.76957062917046 + }, + "selected": false, + "data": { + "label": "Find the detailed version of this roadmap along with other similar roadmaps", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "left", + "borderColor": "#000000", + "backgroundColor": "#FFFFFf" + } + }, + "zIndex": 999, + "width": 354, + "height": 143, + "positionAbsolute": { + "x": 179.8414717224867, + "y": -232.76957062917046 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "style": { + "width": 354, + "height": 143 + }, + "resizing": false + }, + { + "id": "R_Fs6rdl2XtQ9aLOubMqL", + "type": "button", + "position": { + "x": 193.04484613528683, + "y": -150.78400721142515 + }, + "selected": false, + "data": { + "label": "roadmap.sh", + "href": "https://roadmap.sh", + "color": "#ffffff", + "backgroundColor": "#4136D6", + "style": { + "fontSize": 17 + }, + "oldId": "2zqZkyVgigifcRS1H7F_b" + }, + "zIndex": 999, + "width": 329, + "height": 49, + "dragging": false, + "style": { + "width": 329, + "height": 49 + }, + "resizing": false, + "positionAbsolute": { + "x": 193.04484613528683, + "y": -150.78400721142515 + }, + "selectable": true, + "focusable": true + }, + { + "id": "xwpc_KxehAruFM0pCQnie", + "type": "vertical", + "position": { + "x": 191.40964679943443, + "y": 2884.376596918144 + }, + "selected": false, + "data": { + "label": "vertical node", + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#4136D4" + }, + "oldId": "Ju00mr0KLGN2BV6yEQGPt" + }, + "zIndex": 999, + "width": 20, + "height": 104, + "positionAbsolute": { + "x": 191.40964679943443, + "y": 2884.376596918144 + }, + "dragging": false, + "style": { + "width": 20, + "height": 104 + }, + "resizing": false, + "focusable": true, + "selectable": true + }, + { + "width": 443, + "height": 119, + "id": "GV_zWF6rSWg5bqgiXhOEf", + "type": "paragraph", + "position": { + "x": -20.090353200565573, + "y": 2793.7858464012675 + }, + "selected": false, + "data": { + "label": "Visit the following relevant roadmaps", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center", + "borderColor": "#000000", + "backgroundColor": "#ffffff" + }, + "oldId": "sVXZrBCsiSzWBBYWTm-nQ" + }, + "zIndex": 999, + "positionAbsolute": { + "x": -20.090353200565573, + "y": 2793.7858464012675 + }, + "dragging": false, + "style": { + "width": 443, + "height": 119 + }, + "resizing": false, + "focusable": true, + "selectable": true + }, + { + "id": "SIvQYH0q1H29NgbtLq3L8", + "type": "button", + "position": { + "x": -446.07124610794176, + "y": -55.32399710033968 + }, + "selected": false, + "data": { + "label": "Client Side", + "href": "https://roadmap.sh/game-developer", + "color": "#000000", + "backgroundColor": "#DEDEDE", + "style": { + "fontSize": 17 + }, + "borderColor": "#DEDEDE" + }, + "zIndex": 999, + "width": 212, + "height": 49, + "style": { + "width": 212, + "height": 49 + }, + "resizing": false, + "positionAbsolute": { + "x": -446.07124610794176, + "y": -55.32399710033968 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "rQArtuVKGVgLn_fw9yO3b", + "type": "topic", + "position": { + "x": -115.91523232166008, + "y": -55.32399710033968 + }, + "selected": false, + "data": { + "label": "Server-Side Development", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "m1wX27XBWKXZcTMH2U1xp" + }, + "zIndex": 999, + "width": 271, + "height": 49, + "style": { + "width": 271, + "height": 49 + }, + "positionAbsolute": { + "x": -115.91523232166008, + "y": -55.32399710033968 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "FbfHP9hFBuISrGzKaX-qm", + "type": "paragraph", + "position": { + "x": -520.8639110926986, + "y": -233.1028359109968 + }, + "selected": false, + "data": { + "label": "Shout out to Chris Ohk who helped make the initial version of this roadmap.", + "style": { + "fontSize": 17, + "borderColor": "#000000", + "backgroundColor": "#ffffff", + "color": "#000000", + "textAlign": "left", + "justifyContent": "flex-start", + "padding": 16 + } + }, + "zIndex": 999, + "width": 347, + "height": 148, + "style": { + "width": 347, + "height": 148 + }, + "dragging": false, + "positionAbsolute": { + "x": -520.8639110926986, + "y": -233.1028359109968 + }, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "2zqZkyVgigifcRS1H7F_b", + "type": "button", + "position": { + "x": -505.86391109269846, + "y": -152.09530466580176 + }, + "selected": false, + "data": { + "label": "Visit his GitHub", + "href": "https://github.com/utilForever", + "color": "#000000", + "backgroundColor": "#dedede", + "style": { + "fontSize": 17 + } + }, + "zIndex": 999, + "width": 317, + "height": 49, + "dragging": false, + "style": { + "width": 317, + "height": 49 + }, + "resizing": false, + "positionAbsolute": { + "x": -505.86391109269846, + "y": -152.09530466580176 + }, + "selectable": true, + "focusable": true + }, + { + "width": 134, + "height": 49, + "id": "ZSrQoNGKiR484uALMWO9F", + "type": "button", + "position": { + "x": 277.25676028036133, + "y": 2851.475128312919 + }, + "selected": false, + "data": { + "label": "API Design", + "href": "https://roadmap.sh/api-design", + "color": "#FFFFFf", + "backgroundColor": "#4136D4", + "style": { + "fontSize": 17 + }, + "borderColor": "#4136D4", + "oldId": "dlGf3ZdFXYx0Z6Viu2x-l" + }, + "zIndex": 999, + "dragging": false, + "positionAbsolute": { + "x": 277.25676028036133, + "y": 2851.475128312919 + }, + "style": { + "width": 134, + "height": 49 + }, + "focusable": true, + "resizing": false, + "selectable": true + }, + { + "id": "mUCidjOsVLMAVDf2jmV5F", + "type": "topic", + "position": { + "x": -163.23195037554086, + "y": 94.05791182468352 + }, + "selected": false, + "data": { + "label": "TCP", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "6ilqzjvI4J1pUCmTJ33PA" + }, + "zIndex": 999, + "width": 112, + "height": 49, + "style": { + "width": 112, + "height": 49 + }, + "positionAbsolute": { + "x": -163.23195037554086, + "y": 94.05791182468352 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "XxBl-zO7CF6DpOZ2bMDxJ", + "type": "subtopic", + "position": { + "x": -514.7045658739704, + "y": 44.057911824683515 + }, + "selected": false, + "data": { + "label": "Checksum", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 228, + "height": 46, + "style": { + "width": 228, + "height": 46 + }, + "positionAbsolute": { + "x": -514.7045658739704, + "y": 44.057911824683515 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "zTCmPUp9j5P1wpGgiboMa", + "type": "subtopic", + "position": { + "x": -514.7045658739704, + "y": 94.05791182468352 + }, + "selected": false, + "data": { + "label": "Segment Structure", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 228, + "height": 49, + "style": { + "width": 228, + "height": 49 + }, + "positionAbsolute": { + "x": -514.7045658739704, + "y": 94.05791182468352 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "5sI3RHaLudq4TfpjoYeOp", + "type": "subtopic", + "position": { + "x": -505.86391109269846, + "y": 303.0579118246835 + }, + "selected": false, + "data": { + "label": "Connection", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 211, + "height": 49, + "style": { + "width": 211, + "height": 49 + }, + "positionAbsolute": { + "x": -505.86391109269846, + "y": 303.0579118246835 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "LkGI0VpJ3WkpPHkJhJgWk", + "type": "subtopic", + "position": { + "x": -505.86391109269846, + "y": 356.0579118246835 + }, + "selected": false, + "data": { + "label": "Resource Usage", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 211, + "height": 49, + "style": { + "width": 211, + "height": 49 + }, + "positionAbsolute": { + "x": -505.86391109269846, + "y": 356.0579118246835 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "5bJUcx3v4dpdlIsx7bFvK", + "type": "subtopic", + "position": { + "x": -505.86391109269846, + "y": 515.0579118246835 + }, + "selected": false, + "data": { + "label": "Data Transfer", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 211, + "height": 49, + "style": { + "width": 211, + "height": 49 + }, + "positionAbsolute": { + "x": -505.86391109269846, + "y": 515.0579118246835 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "1l5dhQWYPhUSg-cy5pSlK", + "type": "subtopic", + "position": { + "x": -505.86391109269846, + "y": 409.0579118246835 + }, + "selected": false, + "data": { + "label": "Max Segment Scaling", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 212, + "height": 49, + "style": { + "width": 212, + "height": 49 + }, + "positionAbsolute": { + "x": -505.86391109269846, + "y": 409.0579118246835 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "zvBKjceXRSfEe_3MDCEL5", + "type": "subtopic", + "position": { + "x": -505.86391109269846, + "y": 250.05791182468352 + }, + "selected": false, + "data": { + "label": "Window Scaling", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 211, + "height": 49, + "style": { + "width": 211, + "height": 49 + }, + "positionAbsolute": { + "x": -505.86391109269846, + "y": 250.05791182468352 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "6KAYNPLEFMp6Jha8FLMAU", + "type": "subtopic", + "position": { + "x": -505.86391109269846, + "y": 462.0579118246835 + }, + "selected": false, + "data": { + "label": "Timestamp", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 211, + "height": 49, + "style": { + "width": 211, + "height": 49 + }, + "positionAbsolute": { + "x": -505.86391109269846, + "y": 462.0579118246835 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "3OMu3RM-6pMjqY1jAmC2-", + "type": "subtopic", + "position": { + "x": -505.86391109269846, + "y": 568.0579118246835 + }, + "selected": false, + "data": { + "label": "Out-of-Band Data", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 211, + "height": 49, + "style": { + "width": 211, + "height": 49 + }, + "positionAbsolute": { + "x": -505.86391109269846, + "y": 568.0579118246835 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "SPpOO25b7wpajWDIrKi1u", + "type": "subtopic", + "position": { + "x": -505.86391109269846, + "y": 621.0579118246835 + }, + "selected": false, + "data": { + "label": "Selective Ack.", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 211, + "height": 49, + "style": { + "width": 211, + "height": 49 + }, + "dragging": false, + "positionAbsolute": { + "x": -505.86391109269846, + "y": 621.0579118246835 + }, + "selectable": true, + "focusable": true + }, + { + "id": "1GML0Jsfdb1Fn-0PNryiQ", + "type": "subtopic", + "position": { + "x": -213.73195037554086, + "y": 462.0579118246835 + }, + "selected": false, + "data": { + "label": "Congestion Control", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 213, + "height": 49, + "style": { + "width": 213 + }, + "positionAbsolute": { + "x": -213.73195037554086, + "y": 462.0579118246835 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "X2KHWgQZDHSVDsTRMUwSj", + "type": "subtopic", + "position": { + "x": -213.73195037554086, + "y": 515.0579118246835 + }, + "selected": false, + "data": { + "label": "Reliable Transmission", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "vFM311xSa5OqNVove2f6j" + }, + "zIndex": 999, + "width": 214, + "height": 49, + "style": { + "width": 214, + "height": 49 + }, + "positionAbsolute": { + "x": -213.73195037554086, + "y": 515.0579118246835 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "lDVD-3i64Mk7-KPJrXmFH", + "type": "subtopic", + "position": { + "x": -213.73195037554086, + "y": 568.0579118246835 + }, + "selected": false, + "data": { + "label": "Flow Control", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center", + "colorType": "h" + } + }, + "zIndex": 999, + "width": 213, + "height": 49, + "style": { + "width": 213 + }, + "positionAbsolute": { + "x": -213.73195037554086, + "y": 568.0579118246835 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "vFM311xSa5OqNVove2f6j", + "type": "subtopic", + "position": { + "x": -213.73195037554086, + "y": 638.0579118246835 + }, + "selected": false, + "data": { + "label": "Error Detection", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "lDVD-3i64Mk7-KPJrXmFH" + }, + "zIndex": 999, + "width": 213, + "height": 49, + "style": { + "width": 213 + }, + "positionAbsolute": { + "x": -213.73195037554086, + "y": 638.0579118246835 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "w6ysmcsBn9jJ8xMvg7hcD", + "type": "subtopic", + "position": { + "x": -505.86391109269846, + "y": 197.05791182468352 + }, + "selected": false, + "data": { + "label": "Max Segment Size", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 211, + "height": 49, + "style": { + "width": 211, + "height": 49 + }, + "positionAbsolute": { + "x": -505.86391109269846, + "y": 197.05791182468352 + }, + "dragging": false, + "focusable": true, + "selectable": true + }, + { + "id": "MwLWDlciJOq_0n5S3GoF-", + "type": "subtopic", + "position": { + "x": -211.73195037554086, + "y": 194.05791182468346 + }, + "selected": false, + "data": { + "label": "Vulnerability", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center", + "colorType": "h" + } + }, + "zIndex": 999, + "width": 209, + "height": 49, + "style": { + "width": 209, + "height": 49 + }, + "positionAbsolute": { + "x": -211.73195037554086, + "y": 194.05791182468346 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "selectable": true + }, + { + "id": "TbXJO__4xSnzK1fvvJK86", + "type": "subtopic", + "position": { + "x": -211.73195037554086, + "y": 280.05791182468346 + }, + "selected": false, + "data": { + "label": "Denial of Service", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 209, + "height": 49, + "style": { + "width": 209, + "height": 49 + }, + "positionAbsolute": { + "x": -211.73195037554086, + "y": 280.05791182468346 + }, + "dragging": false, + "focusable": true, + "selectable": true + }, + { + "id": "ubRiY3jdh3iS3diN482IU", + "type": "subtopic", + "position": { + "x": -211.73195037554086, + "y": 333.05791182468346 + }, + "selected": false, + "data": { + "label": "Connection Hijacking", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 209, + "height": 49, + "style": { + "width": 209, + "height": 49 + }, + "positionAbsolute": { + "x": -211.73195037554086, + "y": 333.05791182468346 + }, + "dragging": false, + "focusable": true, + "selectable": true + }, + { + "id": "ZLTfpRZ0rF-mtd7Z0R2WF", + "type": "subtopic", + "position": { + "x": -211.73195037554086, + "y": 386.05791182468346 + }, + "selected": false, + "data": { + "label": "Veto", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 209, + "height": 49, + "style": { + "width": 209, + "height": 49 + }, + "positionAbsolute": { + "x": -211.73195037554086, + "y": 386.05791182468346 + }, + "dragging": false, + "focusable": true, + "selectable": true + }, + { + "id": "ALNR_uSq6ByPUrt6lXkhZ", + "type": "paragraph", + "position": { + "x": -510.2045658739704, + "y": 147.05791182468352 + }, + "selected": false, + "data": { + "label": "Operations", + "style": { + "fontSize": 17, + "borderColor": "transparent", + "backgroundColor": "transparent", + "color": "#000000", + "textAlign": "center", + "justifyContent": "center", + "padding": 16 + } + }, + "zIndex": 999, + "width": 219, + "height": 50, + "style": { + "width": 219, + "height": 50 + }, + "positionAbsolute": { + "x": -510.2045658739704, + "y": 147.05791182468352 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "selectable": true + }, + { + "id": "IMyHwnXxJK6oFxzOMLxjS", + "type": "topic", + "position": { + "x": 80.08476767833992, + "y": 94.05791182468352 + }, + "selected": false, + "data": { + "label": "UDP", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "6ilqzjvI4J1pUCmTJ33PA" + }, + "zIndex": 999, + "width": 112, + "height": 49, + "style": { + "width": 112, + "height": 49 + }, + "positionAbsolute": { + "x": 80.08476767833992, + "y": 94.05791182468352 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "Vh81GnOUOZvDOlOyI5PwT", + "type": "subtopic", + "position": { + "x": 307.0434878760507, + "y": -12.055669761014485 + }, + "selected": false, + "data": { + "label": "Reliability", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 233, + "height": 49, + "style": { + "width": 233, + "height": 49 + }, + "positionAbsolute": { + "x": 307.0434878760507, + "y": -12.055669761014485 + }, + "dragging": false, + "focusable": true, + "selectable": true + }, + { + "id": "wD_HWc9YxPhlkilt585pg", + "type": "subtopic", + "position": { + "x": 307.0434878760507, + "y": 40.944330238985515 + }, + "selected": false, + "data": { + "label": "Datagram", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 233, + "height": 49, + "style": { + "width": 233, + "height": 49 + }, + "positionAbsolute": { + "x": 307.0434878760507, + "y": 40.944330238985515 + }, + "dragging": false, + "focusable": true, + "selectable": true + }, + { + "id": "jsNsyrGzegVnjIF2l52vI", + "type": "subtopic", + "position": { + "x": 307.0434878760507, + "y": 93.94433023898551 + }, + "selected": false, + "data": { + "label": "Congestion Control", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 233, + "height": 49, + "style": { + "width": 233, + "height": 49 + }, + "positionAbsolute": { + "x": 307.0434878760507, + "y": 93.94433023898551 + }, + "dragging": false, + "focusable": true, + "selectable": true + }, + { + "id": "tBOvBpDi3SOKZjAmkxdM0", + "type": "subtopic", + "position": { + "x": 307.0434878760507, + "y": 146.94433023898551 + }, + "selected": false, + "data": { + "label": "Checksum", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 233, + "height": 49, + "style": { + "width": 233, + "height": 49 + }, + "positionAbsolute": { + "x": 307.0434878760507, + "y": 146.94433023898551 + }, + "dragging": false, + "focusable": true, + "selectable": true + }, + { + "id": "CCxVnrGDKa1EROXgF_OAm", + "type": "subtopic", + "position": { + "x": 307.0434878760507, + "y": 199.94433023898551 + }, + "selected": false, + "data": { + "label": "Packet Structure", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 233, + "height": 49, + "style": { + "width": 233, + "height": 49 + }, + "dragging": false, + "positionAbsolute": { + "x": 307.0434878760507, + "y": 199.94433023898551 + }, + "focusable": true, + "selectable": true + }, + { + "id": "RfTcTUjaXyp49FnUf44MK", + "type": "topic", + "position": { + "x": 67.08476767833992, + "y": 434.4443302389856 + }, + "selected": false, + "data": { + "label": "TCP vs UDP", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "6ilqzjvI4J1pUCmTJ33PA" + }, + "zIndex": 999, + "width": 138, + "height": 49, + "style": {}, + "positionAbsolute": { + "x": 67.08476767833992, + "y": 434.4443302389856 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "MoyBGT9bscUe8vMN4J0bG", + "type": "subtopic", + "position": { + "x": 307.0434878760507, + "y": 487.4443302389856 + }, + "selected": false, + "data": { + "label": "Reliable vs Unreliable", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 233, + "height": 49, + "style": { + "width": 233, + "height": 49 + }, + "positionAbsolute": { + "x": 307.0434878760507, + "y": 487.4443302389856 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "selectable": true + }, + { + "id": "WMdCDmFsytsF2AWQXfzC8", + "type": "subtopic", + "position": { + "x": 307.0434878760507, + "y": 328.4443302389856 + }, + "selected": false, + "data": { + "label": "Ordered vs Unordered", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 233, + "height": 49, + "style": { + "width": 233, + "height": 49 + }, + "positionAbsolute": { + "x": 307.0434878760507, + "y": 328.4443302389856 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "selectable": true + }, + { + "id": "OYXKtl4A-vaK6yGO6hS6n", + "type": "subtopic", + "position": { + "x": 307.0434878760507, + "y": 381.4443302389856 + }, + "selected": false, + "data": { + "label": "Heavy vs Lightweight", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 233, + "height": 49, + "style": { + "width": 233, + "height": 49 + }, + "positionAbsolute": { + "x": 307.0434878760507, + "y": 381.4443302389856 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "selectable": true + }, + { + "id": "JE3uZ5U6oe6dVzsmglTl2", + "type": "subtopic", + "position": { + "x": 307.0434878760507, + "y": 434.4443302389856 + }, + "selected": false, + "data": { + "label": "Packet vs Datagram", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 233, + "height": 49, + "style": { + "width": 233, + "height": 49 + }, + "positionAbsolute": { + "x": 307.0434878760507, + "y": 434.4443302389856 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "selectable": true + }, + { + "id": "pJw8fN1dt3BABtZVz7wGE", + "type": "subtopic", + "position": { + "x": 307.0434878760507, + "y": 540.4443302389856 + }, + "selected": false, + "data": { + "label": "Streaming vs Broadcast", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 233, + "height": 49, + "style": { + "width": 233, + "height": 49 + }, + "positionAbsolute": { + "x": 307.0434878760507, + "y": 540.4443302389856 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "selectable": true + }, + { + "id": "tg94V7K0mgYhpkUMp_Scv", + "type": "topic", + "position": { + "x": 86.08476767833992, + "y": 709.9443302389855 + }, + "selected": false, + "data": { + "label": "IP", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "6ilqzjvI4J1pUCmTJ33PA" + }, + "zIndex": 999, + "width": 100, + "height": 49, + "style": { + "width": 100, + "height": 49 + }, + "positionAbsolute": { + "x": 86.08476767833992, + "y": 709.9443302389855 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "5kF1fqr-mn5-15e3aMa9k", + "type": "subtopic", + "position": { + "x": 293.0434878760507, + "y": 656.9443302389855 + }, + "selected": false, + "data": { + "label": "Capability", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 244, + "height": 49, + "style": { + "width": 244, + "height": 49 + }, + "positionAbsolute": { + "x": 293.0434878760507, + "y": 656.9443302389855 + }, + "dragging": false, + "focusable": true, + "selectable": true + }, + { + "id": "2jDV-ovvrkBbTTLk5VbR9", + "type": "subtopic", + "position": { + "x": 293.0434878760507, + "y": 709.9443302389855 + }, + "selected": false, + "data": { + "label": "Reliability", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 244, + "height": 49, + "style": { + "width": 244, + "height": 49 + }, + "positionAbsolute": { + "x": 293.0434878760507, + "y": 709.9443302389855 + }, + "dragging": false, + "focusable": true, + "selectable": true + }, + { + "id": "OzY-LPcfj1sBm_0F0WbIJ", + "type": "subtopic", + "position": { + "x": 293.0434878760507, + "y": 762.9443302389855 + }, + "selected": false, + "data": { + "label": "Link Capacity", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 244, + "height": 49, + "style": { + "width": 244, + "height": 49 + }, + "positionAbsolute": { + "x": 293.0434878760507, + "y": 762.9443302389855 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "selectable": true + }, + { + "id": "YPvm8XD_FaFYCQ-b7-KsH", + "type": "topic", + "position": { + "x": 293.0434878760507, + "y": 975.9443302389855 + }, + "selected": false, + "data": { + "label": "Function", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center", + "colorType": "h" + } + }, + "zIndex": 999, + "width": 244, + "height": 49, + "style": { + "width": 244, + "height": 49 + }, + "positionAbsolute": { + "x": 293.0434878760507, + "y": 975.9443302389855 + }, + "dragging": false, + "focusable": true, + "selectable": true + }, + { + "id": "jnQAzUUnwpJgoRuRIFtSe", + "type": "subtopic", + "position": { + "x": 294.5434878760507, + "y": 1061.0579118246837 + }, + "selected": false, + "data": { + "label": "Datagram Construction", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 241, + "height": 49, + "style": { + "width": 241, + "height": 49 + }, + "resizing": false, + "dragging": false, + "positionAbsolute": { + "x": 294.5434878760507, + "y": 1061.0579118246837 + }, + "focusable": true, + "selectable": true + }, + { + "id": "3ZcJNDCHw2pFzewmoB-03", + "type": "subtopic", + "position": { + "x": 294.5434878760507, + "y": 1112.9443359375 + }, + "selected": false, + "data": { + "label": "IP Addressing", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 152, + "height": 49, + "style": { + "width": 152, + "height": 49 + }, + "dragging": false, + "positionAbsolute": { + "x": 294.5434878760507, + "y": 1112.9443359375 + }, + "resizing": false, + "focusable": true, + "selectable": true + }, + { + "id": "bYb7nA-Vn9e6VtdbUT3tq", + "type": "subtopic", + "position": { + "x": 451.5434878760507, + "y": 1112.9443359375 + }, + "selected": false, + "data": { + "label": "Routing", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 85, + "height": 49, + "style": { + "width": 85, + "height": 49 + }, + "dragging": false, + "positionAbsolute": { + "x": 451.5434878760507, + "y": 1112.9443359375 + }, + "resizing": false, + "focusable": true, + "selectable": true + }, + { + "id": "r2OeI7YC1BLLfctC8q69W", + "type": "topic", + "position": { + "x": 293.0434878760507, + "y": 816.9443302389855 + }, + "selected": false, + "data": { + "label": "Transactions", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center", + "colorType": "h" + } + }, + "zIndex": 999, + "width": 244, + "height": 49, + "style": { + "width": 244, + "height": 49 + }, + "positionAbsolute": { + "x": 293.0434878760507, + "y": 816.9443302389855 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "selectable": true + }, + { + "id": "JI_wUdT2hjsrvbIhLvHcT", + "type": "subtopic", + "position": { + "x": 35.043487876050676, + "y": 817.9443302389855 + }, + "selected": false, + "data": { + "label": "ARP", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 65, + "height": 49, + "style": { + "width": 65, + "height": 49 + }, + "positionAbsolute": { + "x": 35.043487876050676, + "y": 817.9443302389855 + }, + "dragging": false, + "focusable": true, + "selectable": true + }, + { + "id": "yNytLrQAMKBw4t73YRL3J", + "type": "subtopic", + "position": { + "x": 104.04348787605068, + "y": 817.9443302389855 + }, + "selected": false, + "data": { + "label": "DNS", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 60, + "height": 49, + "style": { + "width": 60, + "height": 49 + }, + "positionAbsolute": { + "x": 104.04348787605068, + "y": 817.9443302389855 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "selectable": true + }, + { + "id": "aTHJh-xw8soCxC1bIDdXm", + "type": "subtopic", + "position": { + "x": 168.04348787605068, + "y": 817.9443302389855 + }, + "selected": false, + "data": { + "label": "DHCP", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 90, + "height": 49, + "style": { + "width": 90, + "height": 49 + }, + "resizing": false, + "positionAbsolute": { + "x": 168.04348787605068, + "y": 817.9443302389855 + }, + "dragging": false, + "focusable": true, + "selectable": true + }, + { + "id": "NH2eQ1_nij1icTgoO027b", + "type": "topic", + "position": { + "x": 293.0434878760507, + "y": 869.9443302389855 + }, + "selected": false, + "data": { + "label": "Category", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center", + "colorType": "h" + }, + "oldId": "qkO0s9zR0sAnjTRWcrLQY" + }, + "zIndex": 999, + "width": 244, + "height": 49, + "style": { + "width": 244, + "height": 49 + }, + "positionAbsolute": { + "x": 293.0434878760507, + "y": 869.9443302389855 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "selectable": true + }, + { + "id": "pHVB0K8Vtk3ToD6n_f1wv", + "type": "subtopic", + "position": { + "x": 168.04348787605068, + "y": 870.9443302389855 + }, + "selected": false, + "data": { + "label": "IPv4", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 90, + "height": 49, + "style": { + "width": 90, + "height": 49 + }, + "positionAbsolute": { + "x": 168.04348787605068, + "y": 870.9443302389855 + }, + "dragging": false, + "focusable": true, + "selectable": true + }, + { + "id": "TqBlAMfhARhlJed6xD7eg", + "type": "subtopic", + "position": { + "x": 104.04348787605068, + "y": 870.9443302389855 + }, + "selected": false, + "data": { + "label": "IPv6", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "FX8ASd-QzTUFDHzBB93WK" + }, + "zIndex": 999, + "width": 60, + "height": 49, + "style": { + "width": 60, + "height": 49 + }, + "positionAbsolute": { + "x": 104.04348787605068, + "y": 870.9443302389855 + }, + "dragging": false, + "focusable": true, + "selectable": true + }, + { + "id": "qkO0s9zR0sAnjTRWcrLQY", + "type": "topic", + "position": { + "x": 293.0434878760507, + "y": 922.9443302389855 + }, + "selected": false, + "data": { + "label": "Security", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center", + "colorType": "h" + } + }, + "zIndex": 999, + "width": 244, + "height": 49, + "style": { + "width": 244, + "height": 49 + }, + "positionAbsolute": { + "x": 293.0434878760507, + "y": 922.9443302389855 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "selectable": true + }, + { + "id": "FX8ASd-QzTUFDHzBB93WK", + "type": "subtopic", + "position": { + "x": 168.04348787605068, + "y": 922.9443302389855 + }, + "selected": false, + "data": { + "label": "TLS", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 90, + "height": 49, + "style": { + "width": 90, + "height": 49 + }, + "positionAbsolute": { + "x": 168.04348787605068, + "y": 922.9443302389855 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "selectable": true + }, + { + "id": "6ilqzjvI4J1pUCmTJ33PA", + "type": "topic", + "position": { + "x": -219.23195037554086, + "y": 817.9443302389855 + }, + "selected": false, + "data": { + "label": "Programming Languages", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 238, + "height": 49, + "style": {}, + "positionAbsolute": { + "x": -219.23195037554086, + "y": 817.9443302389855 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "E4H3hniIW6hKpH3Qr--N5", + "type": "subtopic", + "position": { + "x": -216.23195037554086, + "y": 952.4443302389858 + }, + "selected": false, + "data": { + "label": "C/C++", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 115, + "height": 49, + "style": { + "width": 115, + "height": 49 + }, + "positionAbsolute": { + "x": -216.23195037554086, + "y": 952.4443302389858 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "DuyUc9a-47Uz03yr4aeyg", + "type": "subtopic", + "position": { + "x": -95.23195037554086, + "y": 899.4443302389858 + }, + "selected": false, + "data": { + "label": "C#", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 114, + "height": 49, + "style": { + "width": 114, + "height": 49 + }, + "positionAbsolute": { + "x": -95.23195037554086, + "y": 899.4443302389858 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "LG8JPL1po-gEs1V5JyC8F", + "type": "subtopic", + "position": { + "x": -216.23195037554086, + "y": 899.4443302389858 + }, + "selected": false, + "data": { + "label": "Java", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 115, + "height": 49, + "style": { + "width": 115, + "height": 49 + }, + "positionAbsolute": { + "x": -216.23195037554086, + "y": 899.4443302389858 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "QGtGx5LBEWa1DD3Y7ztUy", + "type": "subtopic", + "position": { + "x": -95.23195037554086, + "y": 952.4443302389858 + }, + "selected": false, + "data": { + "label": "Erlang", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "d5iQYn97vuoxJnCFGPdOa" + }, + "zIndex": 999, + "width": 114, + "height": 49, + "style": { + "width": 114, + "height": 49 + }, + "positionAbsolute": { + "x": -95.23195037554086, + "y": 952.4443302389858 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "ufufnULqsglE5VhEIAdSI", + "type": "subtopic", + "position": { + "x": -216.23195037554086, + "y": 1005.4443302389858 + }, + "selected": false, + "data": { + "label": "JavaScript", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 115, + "height": 49, + "style": { + "width": 115, + "height": 49 + }, + "positionAbsolute": { + "x": -216.23195037554086, + "y": 1005.4443302389858 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "d5iQYn97vuoxJnCFGPdOa", + "type": "subtopic", + "position": { + "x": -95.23195037554086, + "y": 1005.4443302389859 + }, + "selected": false, + "data": { + "label": "Go", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 114, + "height": 49, + "style": { + "width": 114, + "height": 49 + }, + "positionAbsolute": { + "x": -95.23195037554086, + "y": 1005.4443302389859 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "HvpuFTCknHPhnFkhmhRc4", + "type": "topic", + "position": { + "x": -515.95654296875, + "y": 971.9443302389855 + }, + "selected": false, + "data": { + "label": "Socket Programming", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "3QSLUMKD0G08N3MIb1cG7" + }, + "zIndex": 999, + "width": 205, + "height": 49, + "style": { + "width": 205, + "height": 49 + }, + "positionAbsolute": { + "x": -515.95654296875, + "y": 971.9443302389855 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "H21PanCggDfQt34-JzgfO", + "type": "subtopic", + "position": { + "x": -515.95654296875, + "y": 763.9443359375 + }, + "selected": false, + "data": { + "label": "Byte Manipulation", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 205, + "height": 49, + "style": { + "width": 205, + "height": 49 + }, + "positionAbsolute": { + "x": -515.95654296875, + "y": 763.9443359375 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "SBA7pa9o0AM0ZEBepd7UM", + "type": "subtopic", + "position": { + "x": -515.95654296875, + "y": 816.9443359375 + }, + "selected": false, + "data": { + "label": "Address Conversion", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 205, + "height": 49, + "style": { + "width": 205, + "height": 49 + }, + "positionAbsolute": { + "x": -515.95654296875, + "y": 816.9443359375 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "OAyMj6uLSv1yJ87YAjyZu", + "type": "subtopic", + "position": { + "x": -515.95654296875, + "y": 869.9443359375 + }, + "selected": false, + "data": { + "label": "Descriptor", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 205, + "height": 49, + "style": { + "width": 205, + "height": 49 + }, + "positionAbsolute": { + "x": -515.95654296875, + "y": 869.9443359375 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "a2pcxVTGdAPw8aLvdr19M", + "type": "subtopic", + "position": { + "x": -481.45654296875, + "y": 1078.9443359375 + }, + "selected": false, + "data": { + "label": "API", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center", + "colorType": "h" + } + }, + "zIndex": 999, + "width": 138, + "height": 49, + "style": { + "width": 138, + "height": 49 + }, + "positionAbsolute": { + "x": -481.45654296875, + "y": 1078.9443359375 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "U_tZFM80W3xJx8jj4skCr", + "type": "subtopic", + "position": { + "x": -481.45654296875, + "y": 1131.9443359375 + }, + "selected": false, + "data": { + "label": "BSD Socket", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 138, + "height": 49, + "style": { + "width": 138, + "height": 49 + }, + "positionAbsolute": { + "x": -481.45654296875, + "y": 1131.9443359375 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "GfTXffisLyQgp66zcQ7Py", + "type": "subtopic", + "position": { + "x": -481.45654296875, + "y": 1184.9443359375 + }, + "selected": false, + "data": { + "label": "Winsock", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 138, + "height": 49, + "style": { + "width": 138, + "height": 49 + }, + "positionAbsolute": { + "x": -481.45654296875, + "y": 1184.9443359375 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "TS6dz61rUSxm-SqmK6JKe", + "type": "topic", + "position": { + "x": -217.23195037554086, + "y": 1081.9443359375 + }, + "selected": false, + "data": { + "label": "Serialization", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "3QSLUMKD0G08N3MIb1cG7" + }, + "zIndex": 999, + "width": 205, + "height": 49, + "style": { + "width": 205, + "height": 49 + }, + "positionAbsolute": { + "x": -217.23195037554086, + "y": 1081.9443359375 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "y0ZJQQfi8Qx6sB4WnZlP5", + "type": "subtopic", + "position": { + "x": -216.95654296875, + "y": 1166.9443359375 + }, + "selected": false, + "data": { + "label": "JSON", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 100, + "height": 49, + "style": { + "width": 100, + "height": 49 + }, + "positionAbsolute": { + "x": -216.95654296875, + "y": 1166.9443359375 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "v43K6srds7m5SQFqNaY0T", + "type": "subtopic", + "position": { + "x": -216.95654296875, + "y": 1219.9443359375 + }, + "selected": false, + "data": { + "label": "XML", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 100, + "height": 49, + "style": { + "width": 100, + "height": 49 + }, + "positionAbsolute": { + "x": -216.95654296875, + "y": 1219.9443359375 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "uHcUSVLz_2-Usk6ckSvwr", + "type": "subtopic", + "position": { + "x": -112.95654296875, + "y": 1219.9443359375 + }, + "selected": false, + "data": { + "label": "YAML", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 101, + "height": 49, + "style": { + "width": 101, + "height": 49 + }, + "positionAbsolute": { + "x": -112.95654296875, + "y": 1219.9443359375 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "l8iEC3g0ICSfmIE1MxcUl", + "type": "subtopic", + "position": { + "x": -112.95654296875, + "y": 1166.9443359375 + }, + "selected": false, + "data": { + "label": "TOML", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 101, + "height": 49, + "style": { + "width": 101, + "height": 49 + }, + "positionAbsolute": { + "x": -112.95654296875, + "y": 1166.9443359375 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "w2zbab_6Gxw6AWS0N759U", + "type": "subtopic", + "position": { + "x": -217.23195037554086, + "y": 1274.9443359375 + }, + "selected": false, + "data": { + "label": "Protobuf", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 205, + "height": 49, + "style": { + "width": 205, + "height": 49 + }, + "positionAbsolute": { + "x": -217.23195037554086, + "y": 1274.9443359375 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "3QSLUMKD0G08N3MIb1cG7", + "type": "topic", + "position": { + "x": 53.084767678339915, + "y": 1224.9719487880939 + }, + "selected": false, + "data": { + "label": "Multithreading", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 196, + "height": 49, + "style": { + "width": 196, + "height": 49 + }, + "positionAbsolute": { + "x": 53.084767678339915, + "y": 1224.9719487880939 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "idmrgKgVWVLZYANbXiZnS", + "type": "topic", + "position": { + "x": 321.20614329103375, + "y": 1383.6810870203947 + }, + "selected": false, + "data": { + "label": "Synchronization", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center", + "colorType": "b" + }, + "oldId": "cw7WdFfL5HpeZ_n8wYk2t" + }, + "zIndex": 999, + "width": 205, + "height": 49, + "style": { + "width": 205, + "height": 49 + }, + "dragging": false, + "positionAbsolute": { + "x": 321.20614329103375, + "y": 1383.6810870203947 + }, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "6k25amPkU9lnZ7FMNn_T6", + "type": "subtopic", + "position": { + "x": 321.20614329103375, + "y": 1542.6810870203947 + }, + "selected": false, + "data": { + "label": "Barrier", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 205, + "height": 49, + "style": { + "width": 205, + "height": 49 + }, + "positionAbsolute": { + "x": 321.20614329103375, + "y": 1542.6810870203947 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "lVXfA_oZr82mFfBvLnnRK", + "type": "subtopic", + "position": { + "x": 321.20614329103375, + "y": 1489.6810870203947 + }, + "selected": false, + "data": { + "label": "Spinlock", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "xR6pERldq4wPl9GVLHAhT" + }, + "zIndex": 999, + "width": 205, + "height": 49, + "style": { + "width": 205, + "height": 49 + }, + "positionAbsolute": { + "x": 321.20614329103375, + "y": 1489.6810870203947 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "G_BEJKkJ1_Nc43aosy_iS", + "type": "subtopic", + "position": { + "x": 321.20614329103375, + "y": 1648.6810870203947 + }, + "selected": false, + "data": { + "label": "Mutex", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center", + "colorType": "c" + }, + "oldId": "zbIbPlqTNSbJUkqH9iLQv" + }, + "zIndex": 999, + "width": 205, + "height": 49, + "style": { + "width": 205, + "height": 49 + }, + "dragging": false, + "positionAbsolute": { + "x": 321.20614329103375, + "y": 1648.6810870203947 + }, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "DYvzGc_r0SlOArPPc1gNI", + "type": "subtopic", + "position": { + "x": 172.56275416291476, + "y": 1648.6810870203947 + }, + "selected": false, + "data": { + "label": "Semaphore", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "Yw2wS2ZcJNeApH7LqNMv3" + }, + "zIndex": 999, + "width": 117, + "height": 49, + "style": { + "width": 117, + "height": 49 + }, + "positionAbsolute": { + "x": 172.56275416291476, + "y": 1648.6810870203947 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "zbIbPlqTNSbJUkqH9iLQv", + "type": "subtopic", + "position": { + "x": 321.20614329103375, + "y": 1595.6810870203947 + }, + "selected": false, + "data": { + "label": "Future & Promises", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center", + "colorType": "c" + } + }, + "zIndex": 999, + "width": 205, + "height": 49, + "style": { + "width": 205, + "height": 49 + }, + "dragging": false, + "positionAbsolute": { + "x": 321.20614329103375, + "y": 1595.6810870203947 + }, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "o0Y_hM0KXUApfsXG4PvOY", + "type": "subtopic", + "position": { + "x": 61.56275416291476, + "y": 1595.6841808369861 + }, + "selected": false, + "data": { + "label": "Coroutine", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 106, + "height": 49, + "style": { + "width": 106, + "height": 49 + }, + "positionAbsolute": { + "x": 61.56275416291476, + "y": 1595.6841808369861 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "SXOEMkcVYBsRza6BPmmwy", + "type": "subtopic", + "position": { + "x": 172.56275416291476, + "y": 1595.6841808369861 + }, + "selected": false, + "data": { + "label": "Channel", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 117, + "height": 49, + "style": { + "width": 117, + "height": 49 + }, + "positionAbsolute": { + "x": 172.56275416291476, + "y": 1595.6841808369861 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "xR6pERldq4wPl9GVLHAhT", + "type": "subtopic", + "position": { + "x": 321.20614329103375, + "y": 1436.6810870203947 + }, + "selected": false, + "data": { + "label": "Condition Variable", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 205, + "height": 49, + "style": { + "width": 205, + "height": 49 + }, + "positionAbsolute": { + "x": 321.20614329103375, + "y": 1436.6810870203947 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "IeD-oQ1bkwlKNC-R0lJjZ", + "type": "subtopic", + "position": { + "x": 316.0434878760507, + "y": 1225.9443359375 + }, + "selected": false, + "data": { + "label": "Thread Local Storage", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center", + "colorType": "h" + }, + "oldId": "TVJrlUsg30YIM1yjsZfJI" + }, + "zIndex": 999, + "width": 215, + "height": 49, + "style": { + "width": 215, + "height": 49 + }, + "positionAbsolute": { + "x": 316.0434878760507, + "y": 1225.9443359375 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "mW2L_9NckgPRH7g5W9NHq", + "type": "subtopic", + "position": { + "x": 317.0153285883124, + "y": 1299.158346006392 + }, + "selected": false, + "data": { + "label": "Windows", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 104, + "height": 50, + "style": { + "width": 104, + "height": 50 + }, + "positionAbsolute": { + "x": 317.0153285883124, + "y": 1299.158346006392 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "HU0yUyl89WD8WnR9PJn7l", + "type": "subtopic", + "position": { + "x": 427.0153285883124, + "y": 1299.158346006392 + }, + "selected": false, + "data": { + "label": "pthread", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 100, + "height": 49, + "style": { + "width": 100, + "height": 49 + }, + "positionAbsolute": { + "x": 427.0153285883124, + "y": 1299.158346006392 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "3use5vuLBJTk40wOg9S-X", + "type": "subtopic", + "position": { + "x": 118.69747266236539, + "y": 1062.3595644355564 + }, + "selected": false, + "data": { + "label": "Sharding", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center", + "colorType": "c" + }, + "oldId": "TVJrlUsg30YIM1yjsZfJI" + }, + "zIndex": 999, + "width": 130, + "height": 49, + "style": { + "width": 130, + "height": 49 + }, + "positionAbsolute": { + "x": 118.69747266236539, + "y": 1062.3595644355564 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "TVJrlUsg30YIM1yjsZfJI", + "type": "subtopic", + "position": { + "x": 118.69747266236539, + "y": 1115.3595644355564 + }, + "selected": false, + "data": { + "label": "Fiber", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center", + "colorType": "c" + } + }, + "zIndex": 999, + "width": 130, + "height": 49, + "style": { + "width": 130, + "height": 49 + }, + "positionAbsolute": { + "x": 118.69747266236539, + "y": 1115.3595644355564 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "tGQu18PWDatW7HvkTP-uh", + "type": "topic", + "position": { + "x": -194.95651212394932, + "y": 1384.2630950364517 + }, + "selected": false, + "data": { + "label": "Programming Techniques", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center", + "colorType": "b" + }, + "oldId": "cw7WdFfL5HpeZ_n8wYk2t" + }, + "zIndex": 999, + "width": 244, + "height": 49, + "style": { + "width": 244, + "height": 49 + }, + "dragging": false, + "positionAbsolute": { + "x": -194.95651212394932, + "y": 1384.2630950364517 + }, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "gB-TYpgUDV47bxznNJhYn", + "type": "subtopic", + "position": { + "x": -520.3091914009053, + "y": 1278.2630950364517 + }, + "selected": false, + "data": { + "label": "Design Patterns", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 236, + "height": 49, + "style": { + "width": 236 + }, + "positionAbsolute": { + "x": -520.3091914009053, + "y": 1278.2630950364517 + }, + "dragging": false, + "focusable": true, + "selectable": true + }, + { + "id": "FKOhe21PVlaKIoZI4hd49", + "type": "subtopic", + "position": { + "x": -520.3091914009053, + "y": 1331.2630950364517 + }, + "selected": false, + "data": { + "label": "TDD", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 236, + "height": 49, + "style": { + "width": 236 + }, + "positionAbsolute": { + "x": -520.3091914009053, + "y": 1331.2630950364517 + }, + "dragging": false, + "focusable": true, + "selectable": true + }, + { + "id": "uTlxyDOtvt_Qp0gXLWO-j", + "type": "subtopic", + "position": { + "x": -520.3091914009053, + "y": 1384.2630950364517 + }, + "selected": false, + "data": { + "label": "Dependency Injection", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 236, + "height": 49, + "style": { + "width": 236 + }, + "positionAbsolute": { + "x": -520.3091914009053, + "y": 1384.2630950364517 + }, + "dragging": false, + "focusable": true, + "selectable": true + }, + { + "id": "1c6EqGv1g-d8M1i0vKImb", + "type": "subtopic", + "position": { + "x": -520.3091914009053, + "y": 1437.2630950364517 + }, + "selected": false, + "data": { + "label": "Dump Analysis", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 236, + "height": 49, + "style": { + "width": 236 + }, + "positionAbsolute": { + "x": -520.3091914009053, + "y": 1437.2630950364517 + }, + "dragging": false, + "focusable": true, + "selectable": true + }, + { + "id": "HXSWvhgT4L5w6xgOO-3kj", + "type": "subtopic", + "position": { + "x": -520.3091914009053, + "y": 1490.2630950364517 + }, + "selected": false, + "data": { + "label": "Functional Programming", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 236, + "height": 49, + "style": { + "width": 236, + "height": 49 + }, + "positionAbsolute": { + "x": -520.3091914009053, + "y": 1490.2630950364517 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "selectable": true + }, + { + "id": "FLFaGZDg2MSG6_YHnWETM", + "type": "topic", + "position": { + "x": -171.45651212394932, + "y": 1595.6841808369861 + }, + "selected": false, + "data": { + "label": "Databases", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center", + "colorType": "b" + }, + "oldId": "cw7WdFfL5HpeZ_n8wYk2t" + }, + "zIndex": 999, + "width": 197, + "height": 49, + "style": { + "width": 197, + "height": 49 + }, + "dragging": false, + "positionAbsolute": { + "x": -171.45651212394932, + "y": 1595.6841808369861 + }, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "tBAjat7nEbjD7idiFwLf3", + "type": "label", + "position": { + "x": -480.6327630325113, + "y": 1740.8976823971498 + }, + "selected": false, + "data": { + "label": "RDBMS", + "href": "", + "color": "#000000", + "style": { + "fontSize": 17 + } + }, + "zIndex": 999, + "width": 77, + "height": 36, + "style": {}, + "positionAbsolute": { + "x": -480.6327630325113, + "y": 1740.8976823971498 + }, + "dragging": false, + "focusable": true, + "selectable": true + }, + { + "id": "QMNUAKAuRI9lyf2_jUPsj", + "type": "subtopic", + "position": { + "x": -510.6327630325113, + "y": 1574.8976823971498 + }, + "selected": false, + "data": { + "label": "MS SQL", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 137, + "height": 49, + "style": { + "width": 137, + "height": 49 + }, + "positionAbsolute": { + "x": -510.6327630325113, + "y": 1574.8976823971498 + }, + "dragging": false, + "focusable": true, + "selectable": true + }, + { + "id": "HsBqd08Ro0VJnx0FlumMQ", + "type": "subtopic", + "position": { + "x": -510.6327630325113, + "y": 1627.8976823971498 + }, + "selected": false, + "data": { + "label": "MySQL", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 137, + "height": 49, + "style": { + "width": 137, + "height": 49 + }, + "positionAbsolute": { + "x": -510.6327630325113, + "y": 1627.8976823971498 + }, + "dragging": false, + "focusable": true, + "selectable": true + }, + { + "id": "dAiEwN7phwMyaitvM5kRl", + "type": "subtopic", + "position": { + "x": -510.6327630325113, + "y": 1680.8976823971498 + }, + "selected": false, + "data": { + "label": "PostgreSQL", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 137, + "height": 49, + "style": { + "width": 137, + "height": 49 + }, + "positionAbsolute": { + "x": -510.6327630325113, + "y": 1680.8976823971498 + }, + "dragging": false, + "focusable": true, + "selectable": true + }, + { + "id": "6lpRonYBRRFycpjhYkeB9", + "type": "label", + "position": { + "x": -329.81301933317815, + "y": 1794.4564918532815 + }, + "selected": false, + "data": { + "label": "NoSQL", + "href": "", + "color": "#000000", + "style": { + "fontSize": 17 + } + }, + "zIndex": 999, + "width": 72, + "height": 36, + "style": {}, + "positionAbsolute": { + "x": -329.81301933317815, + "y": 1794.4564918532815 + }, + "dragging": false, + "focusable": true, + "selectable": true + }, + { + "id": "9vc7sFE_XakYXtKRMxLXi", + "type": "subtopic", + "position": { + "x": -360.31301933317815, + "y": 1575.4564918532815 + }, + "selected": false, + "data": { + "label": "DynamoDB", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 133, + "height": 49, + "style": { + "width": 133, + "height": 49 + }, + "positionAbsolute": { + "x": -360.31301933317815, + "y": 1575.4564918532815 + }, + "dragging": false, + "focusable": true, + "selectable": true + }, + { + "id": "HYxtPW401-J6aYcTuiGnx", + "type": "subtopic", + "position": { + "x": -360.31301933317815, + "y": 1628.4564918532815 + }, + "selected": false, + "data": { + "label": "MongoDB", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 133, + "height": 49, + "style": { + "width": 133, + "height": 49 + }, + "positionAbsolute": { + "x": -360.31301933317815, + "y": 1628.4564918532815 + }, + "dragging": false, + "focusable": true, + "selectable": true + }, + { + "id": "1jqSxk1nwByiQa1De81F3", + "type": "subtopic", + "position": { + "x": -360.31301933317815, + "y": 1681.4564918532815 + }, + "selected": false, + "data": { + "label": "Cassandra", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 133, + "height": 49, + "style": { + "width": 133, + "height": 49 + }, + "positionAbsolute": { + "x": -360.31301933317815, + "y": 1681.4564918532815 + }, + "dragging": false, + "focusable": true, + "selectable": true + }, + { + "id": "6KTj_giX2k9l2lPd_Fp-d", + "type": "subtopic", + "position": { + "x": -360.31301933317815, + "y": 1734.4564918532815 + }, + "selected": false, + "data": { + "label": "Couchbase", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 133, + "height": 49, + "style": { + "width": 133, + "height": 49 + }, + "positionAbsolute": { + "x": -360.31301933317815, + "y": 1734.4564918532815 + }, + "dragging": false, + "focusable": true, + "selectable": true + }, + { + "id": "7YNaELVcoV7DV1Fa06USi", + "type": "subtopic", + "position": { + "x": 128.08644532562175, + "y": 1458.1065060656979 + }, + "selected": false, + "data": { + "label": "Redis", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 141, + "height": 49, + "style": { + "width": 141, + "height": 49 + }, + "positionAbsolute": { + "x": 128.08644532562175, + "y": 1458.1065060656979 + }, + "dragging": false, + "focusable": true, + "selectable": true + }, + { + "id": "ayeezKxQkXAPJMTShsOBU", + "type": "subtopic", + "position": { + "x": 128.08644532562175, + "y": 1511.1065060656979 + }, + "selected": false, + "data": { + "label": "Memcached", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 141, + "height": 49, + "style": { + "width": 141, + "height": 49 + }, + "positionAbsolute": { + "x": 128.08644532562175, + "y": 1511.1065060656979 + }, + "dragging": false, + "focusable": true, + "selectable": true + }, + { + "id": "CA1pvQw00EF2G_UtqenAZ", + "type": "label", + "position": { + "x": -36.14448607509672, + "y": 1488.9027065582582 + }, + "selected": false, + "data": { + "label": "Key-Value", + "href": "", + "color": "#000000", + "style": { + "fontSize": 17 + } + }, + "zIndex": 999, + "width": 93, + "height": 36, + "style": {}, + "positionAbsolute": { + "x": -36.14448607509672, + "y": 1488.9027065582582 + }, + "dragging": false, + "focusable": true, + "selectable": true + }, + { + "id": "OyxWMFy8s7Lxko_K89fjo", + "type": "subtopic", + "position": { + "x": -45.32115368925781, + "y": 1671.5717183078734 + }, + "selected": false, + "data": { + "label": "ORM", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 85, + "height": 49, + "style": { + "width": 85 + }, + "positionAbsolute": { + "x": -45.32115368925781, + "y": 1671.5717183078734 + }, + "dragging": false, + "focusable": true, + "selectable": true + }, + { + "id": "dt_SmZuwklLimhupvjxC1", + "type": "subtopic", + "position": { + "x": -45.32115368925781, + "y": 1724.5717183078734 + }, + "selected": false, + "data": { + "label": "DAL", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 85, + "height": 49, + "style": { + "width": 85 + }, + "positionAbsolute": { + "x": -45.32115368925781, + "y": 1724.5717183078734 + }, + "dragging": false, + "focusable": true, + "selectable": true + }, + { + "id": "1788KFqsQBkYARqA0T5GX", + "type": "topic", + "position": { + "x": -171.45651212394932, + "y": 1880.4564918532815 + }, + "selected": false, + "data": { + "label": "Cipher", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center", + "colorType": "b" + }, + "oldId": "cw7WdFfL5HpeZ_n8wYk2t" + }, + "zIndex": 999, + "width": 197, + "height": 49, + "style": { + "width": 197, + "height": 49 + }, + "dragging": false, + "positionAbsolute": { + "x": -171.45651212394932, + "y": 1880.4564918532815 + }, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "PSvPjaVtko71BeIA-hYqf", + "type": "subtopic", + "position": { + "x": -174.45654296875, + "y": 1795.4564918532815 + }, + "selected": false, + "data": { + "label": "SSL", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 75, + "height": 49, + "style": {}, + "positionAbsolute": { + "x": -174.45654296875, + "y": 1795.4564918532815 + }, + "dragging": false, + "focusable": true, + "selectable": true + }, + { + "id": "YxaroYL_Az0vKRCeu2jsp", + "type": "topic", + "position": { + "x": 101.04348787605068, + "y": 1880.4564918532815 + }, + "selected": false, + "data": { + "label": "RPC / REST", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center", + "colorType": "b" + }, + "oldId": "cw7WdFfL5HpeZ_n8wYk2t" + }, + "zIndex": 999, + "width": 145, + "height": 49, + "style": { + "width": 145, + "height": 49 + }, + "dragging": false, + "positionAbsolute": { + "x": 101.04348787605068, + "y": 1880.4564918532815 + }, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "Oq3GQ5gBUxIl1Qe8NB3LB", + "type": "subtopic", + "position": { + "x": 123.54348787605068, + "y": 1740.7176653422498 + }, + "selected": false, + "data": { + "label": "REST", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 100, + "height": 49, + "style": { + "width": 100, + "height": 49 + }, + "resizing": false, + "positionAbsolute": { + "x": 123.54348787605068, + "y": 1740.7176653422498 + }, + "dragging": false, + "focusable": true, + "selectable": true + }, + { + "id": "_uqTTBUYAzDHbEUkDzmzg", + "type": "subtopic", + "position": { + "x": 123.54348787605068, + "y": 1793.7176653422498 + }, + "selected": false, + "data": { + "label": "gRPC", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 100, + "height": 49, + "style": { + "width": 100 + }, + "positionAbsolute": { + "x": 123.54348787605068, + "y": 1793.7176653422498 + }, + "dragging": false, + "focusable": true, + "selectable": true + }, + { + "id": "cw7WdFfL5HpeZ_n8wYk2t", + "type": "topic", + "position": { + "x": 343.9628452691828, + "y": 1880.4564918532815 + }, + "selected": false, + "data": { + "label": "Message Queues", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center", + "colorType": "b" + }, + "oldId": "zbIbPlqTNSbJUkqH9iLQv" + }, + "zIndex": 999, + "width": 187, + "height": 49, + "style": { + "width": 187, + "height": 49 + }, + "dragging": false, + "positionAbsolute": { + "x": 343.9628452691828, + "y": 1880.4564918532815 + }, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "gL7hubTh3qiMyUWeAZNwI", + "type": "subtopic", + "position": { + "x": 359.4628452691828, + "y": 1741.422900324292 + }, + "selected": false, + "data": { + "label": "Apache Kafka", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 156, + "height": 49, + "style": { + "width": 156, + "height": 49 + }, + "positionAbsolute": { + "x": 359.4628452691828, + "y": 1741.422900324292 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "selectable": true + }, + { + "id": "UESjGrFyUbNf4pQamaBoy", + "type": "subtopic", + "position": { + "x": 359.4628452691828, + "y": 1794.422900324292 + }, + "selected": false, + "data": { + "label": "RabbitMQ", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 156, + "height": 49, + "style": { + "width": 156 + }, + "positionAbsolute": { + "x": 359.4628452691828, + "y": 1794.422900324292 + }, + "dragging": false, + "focusable": true, + "selectable": true + }, + { + "id": "_jd91rrAXGbJI9RhXlSx8", + "type": "topic", + "position": { + "x": 225.0153285883124, + "y": 2142.5580874612947 + }, + "selected": false, + "data": { + "label": "Multithreading", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "dkCVwuy8GKeEi3VJar_Zo" + }, + "zIndex": 999, + "width": 154, + "height": 49, + "style": { + "width": 154, + "height": 49 + }, + "positionAbsolute": { + "x": 225.0153285883124, + "y": 2142.5580874612947 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "KUQEgHldZPOLwFoXqQ2vM", + "type": "topic", + "position": { + "x": -450.0418767866893, + "y": 2175.8720132492394 + }, + "selected": false, + "data": { + "label": "Actor Model", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 203, + "height": 49, + "style": { + "width": 203, + "height": 49 + }, + "positionAbsolute": { + "x": -450.0418767866893, + "y": 2175.8720132492394 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "SsOz9Pj6Jc_55PgpmziL6", + "type": "subtopic", + "position": { + "x": -450.0418767866893, + "y": 2228.8720132492394 + }, + "selected": false, + "data": { + "label": "Akk.net (C#)", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 203, + "height": 49, + "style": { + "width": 203, + "height": 49 + }, + "positionAbsolute": { + "x": -450.0418767866893, + "y": 2228.8720132492394 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "eAEpEUVZcSKO9uCIlMN5y", + "type": "subtopic", + "position": { + "x": -450.0418767866893, + "y": 2281.8720132492394 + }, + "selected": false, + "data": { + "label": "Akka (Java)", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 203, + "height": 49, + "style": { + "width": 203, + "height": 49 + }, + "positionAbsolute": { + "x": -450.0418767866893, + "y": 2281.8720132492394 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "ThBxS9xIMt9OrXfnto3rW", + "type": "topic", + "position": { + "x": -241.6297467693716, + "y": 2175.1037781746063 + }, + "selected": false, + "data": { + "label": "Asynchronous", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 378, + "height": 49, + "style": { + "width": 378, + "height": 49 + }, + "positionAbsolute": { + "x": -241.6297467693716, + "y": 2175.1037781746063 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "7mYpgn2gr-5vAYW-UR7_x", + "type": "topic", + "position": { + "x": -242.3281242098539, + "y": 2230.1582943435765 + }, + "selected": false, + "data": { + "label": "Reactor", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center", + "colorType": "h" + } + }, + "zIndex": 999, + "width": 198, + "height": 49, + "style": { + "width": 198, + "height": 49 + }, + "positionAbsolute": { + "x": -242.3281242098539, + "y": 2230.1582943435765 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "5-5toy2CblZPCV9d5QPEo", + "type": "subtopic", + "position": { + "x": -114.32812420985391, + "y": 2283.00220976664 + }, + "selected": false, + "data": { + "label": "select", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 70, + "height": 49, + "style": { + "width": 70, + "height": 49 + }, + "positionAbsolute": { + "x": -114.32812420985391, + "y": 2283.00220976664 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "D9Yeyn8phDhB1ohMWccgr", + "type": "subtopic", + "position": { + "x": -241.97272423589692, + "y": 2283.00220976664 + }, + "selected": false, + "data": { + "label": "WSA Poll", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 123, + "height": 49, + "style": { + "width": 123, + "height": 49 + }, + "positionAbsolute": { + "x": -241.97272423589692, + "y": 2283.00220976664 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "qaWv4gxnnj3uX8lEm9KQ4", + "type": "subtopic", + "position": { + "x": -114.32812420985391, + "y": 2336.00220976664 + }, + "selected": false, + "data": { + "label": "epoll", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 70, + "height": 49, + "style": { + "width": 70, + "height": 49 + }, + "positionAbsolute": { + "x": -114.32812420985391, + "y": 2336.00220976664 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "caK32NMMrn-3BGAXZoPPr", + "type": "subtopic", + "position": { + "x": -241.97272423589692, + "y": 2336.00220976664 + }, + "selected": false, + "data": { + "label": "kqueue", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 123, + "height": 49, + "style": { + "width": 123, + "height": 49 + }, + "positionAbsolute": { + "x": -241.97272423589692, + "y": 2336.00220976664 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "Tvxe2NemcH21y-eB4bosv", + "type": "topic", + "position": { + "x": -39.15075760577247, + "y": 2229.7990729507064 + }, + "selected": false, + "data": { + "label": "Proactor", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center", + "colorType": "h" + } + }, + "zIndex": 999, + "width": 175, + "height": 49, + "style": { + "width": 175, + "height": 49 + }, + "resizing": false, + "positionAbsolute": { + "x": -39.15075760577247, + "y": 2229.7990729507064 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "7pgdOZomhGilBTwfJLMbm", + "type": "subtopic", + "position": { + "x": -39.15075760577247, + "y": 2282.7990729507064 + }, + "selected": false, + "data": { + "label": "IOCP", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 70, + "height": 49, + "style": { + "width": 70, + "height": 49 + }, + "positionAbsolute": { + "x": -39.15075760577247, + "y": 2282.7990729507064 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "YH7u1FKh85wz78J0stuzS", + "type": "subtopic", + "position": { + "x": 35.731589762047406, + "y": 2282.7990729507064 + }, + "selected": false, + "data": { + "label": "io_uring", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 100, + "height": 49, + "style": { + "width": 100, + "height": 49 + }, + "positionAbsolute": { + "x": 35.731589762047406, + "y": 2282.7990729507064 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "94hJX1iGifDzIuaU3zU5j", + "type": "subtopic", + "position": { + "x": -39.15075760577247, + "y": 2336.1582943435765 + }, + "selected": false, + "data": { + "label": "Registered IO", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 175, + "height": 49, + "style": { + "width": 175, + "height": 49 + }, + "positionAbsolute": { + "x": -39.15075760577247, + "y": 2336.1582943435765 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "dDu4oytShaxvnwjmDnbKI", + "type": "vertical", + "position": { + "x": 287.0434878760507, + "y": 1880.4564918532815 + }, + "selected": false, + "data": { + "label": "vertical node", + "style": { + "stroke": "#000000" + } + }, + "zIndex": 999, + "width": 20, + "height": 150, + "style": {}, + "positionAbsolute": { + "x": 287.0434878760507, + "y": 1880.4564918532815 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "tnzfWmELaFPOM6J847iPD", + "type": "label", + "position": { + "x": 118.69747266236539, + "y": 1994.4564918532815 + }, + "selected": false, + "data": { + "label": "Maximise your skills", + "href": "", + "color": "#000000", + "style": { + "fontSize": 17 + } + }, + "zIndex": 999, + "width": 167, + "height": 36, + "style": {}, + "positionAbsolute": { + "x": 118.69747266236539, + "y": 1994.4564918532815 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "LKPcEeqBOPhQOztD3cM3T", + "type": "topic", + "position": { + "x": -450.0418767866893, + "y": 2119.16296890674 + }, + "selected": false, + "data": { + "label": "Task-Based", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 203, + "height": 49, + "style": { + "width": 203, + "height": 49 + }, + "positionAbsolute": { + "x": -450.0418767866893, + "y": 2119.16296890674 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "f-L_eaZd0EjBW9-n9Pllt", + "type": "subtopic", + "position": { + "x": -450.0418767866893, + "y": 2066.16296890674 + }, + "selected": false, + "data": { + "label": "goroutine (Go)", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 203, + "height": 49, + "style": { + "width": 203, + "height": 49 + }, + "positionAbsolute": { + "x": -450.0418767866893, + "y": 2066.16296890674 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "RT9XvlxvIM_hHTtNmbva3", + "type": "subtopic", + "position": { + "x": -450.0418767866893, + "y": 1960.1629689067397 + }, + "selected": false, + "data": { + "label": "Concurrency (Java)", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 203, + "height": 49, + "style": { + "width": 203, + "height": 49 + }, + "positionAbsolute": { + "x": -450.0418767866893, + "y": 1960.1629689067397 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "mAXMpUDmhGOncnCRrENJv", + "type": "subtopic", + "position": { + "x": -450.0418767866893, + "y": 2013.1629689067397 + }, + "selected": false, + "data": { + "label": "Asnc-await (C#)", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 203, + "height": 49, + "style": { + "width": 203, + "height": 49 + }, + "positionAbsolute": { + "x": -450.0418767866893, + "y": 2013.1629689067397 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "tiG0mZpLJ2zUr2IPYyhnv", + "type": "subtopic", + "position": { + "x": -515.95654296875, + "y": 1907.1629689067397 + }, + "selected": false, + "data": { + "label": "Thread Building Block (C++)", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 268, + "height": 49, + "style": { + "width": 268 + }, + "positionAbsolute": { + "x": -515.95654296875, + "y": 1907.1629689067397 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "Vl-WW0LThrQTOO_tFl51B", + "type": "topic", + "position": { + "x": -55.160436004402584, + "y": 2119.258520296198 + }, + "selected": false, + "data": { + "label": "Reactive Approach", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "LVwGXmZhMewGQy61qwNyu" + }, + "zIndex": 999, + "width": 191, + "height": 49, + "style": {}, + "positionAbsolute": { + "x": -55.160436004402584, + "y": 2119.258520296198 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "yWj70LpF4LKB8J6GbYvsq", + "type": "subtopic", + "position": { + "x": -55.160436004402584, + "y": 2066.258520296198 + }, + "selected": false, + "data": { + "label": "OORP", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 109, + "height": 49, + "style": { + "width": 109, + "height": 49 + }, + "positionAbsolute": { + "x": -55.160436004402584, + "y": 2066.258520296198 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "xDYOvIbXc-iJ2zOKqe0YL", + "type": "subtopic", + "position": { + "x": 57.839563995597416, + "y": 2066.258520296198 + }, + "selected": false, + "data": { + "label": "FRP", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 78, + "height": 49, + "style": {}, + "positionAbsolute": { + "x": 57.839563995597416, + "y": 2066.258520296198 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "p0P3ZGq_QTCop0vMwe7P3", + "type": "topic", + "position": { + "x": -240.22731202160702, + "y": 2119.258520296198 + }, + "selected": false, + "data": { + "label": "Reactive Model", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 177, + "height": 49, + "style": { + "width": 177 + }, + "positionAbsolute": { + "x": -240.22731202160702, + "y": 2119.258520296198 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "l5QTk408Ubagw8XzRAfoZ", + "type": "subtopic", + "position": { + "x": -240.22731202160713, + "y": 2066.258520296198 + }, + "selected": false, + "data": { + "label": "Synchrony", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 177, + "height": 49, + "style": { + "width": 177 + }, + "positionAbsolute": { + "x": -240.22731202160713, + "y": 2066.258520296198 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "zFx1jjt1hKgCpYHFTzbZZ", + "type": "subtopic", + "position": { + "x": -240.22731202160713, + "y": 2013.2585202961982 + }, + "selected": false, + "data": { + "label": "Determinism", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 177, + "height": 49, + "style": { + "width": 177 + }, + "positionAbsolute": { + "x": -240.22731202160713, + "y": 2013.2585202961982 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "3Eat22rFjUl4eTtGz8u4N", + "type": "subtopic", + "position": { + "x": -240.22731202160713, + "y": 1960.2585202961982 + }, + "selected": false, + "data": { + "label": "Update Process", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 177, + "height": 49, + "style": { + "width": 177, + "height": 49 + }, + "positionAbsolute": { + "x": -240.22731202160713, + "y": 1960.2585202961982 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "LVwGXmZhMewGQy61qwNyu", + "type": "topic", + "position": { + "x": -55.160436004402584, + "y": 2119.258520296198 + }, + "selected": false, + "data": { + "label": "Reactive Approach", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 191, + "height": 49, + "style": {}, + "positionAbsolute": { + "x": -55.160436004402584, + "y": 2119.258520296198 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "hhtqvFfTCuVPT0OPu4Y1a", + "type": "topic", + "position": { + "x": 225.0153285883124, + "y": 2421.8743750593535 + }, + "selected": false, + "data": { + "label": "Cloud", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "dkCVwuy8GKeEi3VJar_Zo" + }, + "zIndex": 999, + "width": 154, + "height": 49, + "style": { + "width": 154, + "height": 49 + }, + "positionAbsolute": { + "x": 225.0153285883124, + "y": 2421.8743750593535 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "73uoFNGcCALxIuRNbebav", + "type": "subtopic", + "position": { + "x": 445.6095025654899, + "y": 2368.8743750593535 + }, + "selected": false, + "data": { + "label": "Azure", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 89, + "height": 49, + "style": { + "width": 89 + }, + "positionAbsolute": { + "x": 445.6095025654899, + "y": 2368.8743750593535 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "wD6dUrS-tP2gpCHPghFp5", + "type": "subtopic", + "position": { + "x": 445.6095025654899, + "y": 2421.8743750593535 + }, + "selected": false, + "data": { + "label": "GCP", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 89, + "height": 49, + "style": { + "width": 89 + }, + "positionAbsolute": { + "x": 445.6095025654899, + "y": 2421.8743750593535 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "Rkx2A6oWsddlCTseZlpRU", + "type": "subtopic", + "position": { + "x": 445.6095025654899, + "y": 2474.8743750593535 + }, + "selected": false, + "data": { + "label": "AWS", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 89, + "height": 49, + "style": { + "width": 89 + }, + "positionAbsolute": { + "x": 445.6095025654899, + "y": 2474.8743750593535 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "DOmbRRK_RRPElOuTB7AAK", + "type": "subtopic", + "position": { + "x": 325.5434878760507, + "y": 2287.1582943435765 + }, + "selected": false, + "data": { + "label": "Serverless", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 126, + "height": 49, + "style": {}, + "positionAbsolute": { + "x": 325.5434878760507, + "y": 2287.1582943435765 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "XCJvgUSS7-oDR-XGdDY33", + "type": "topic", + "position": { + "x": -60.62974676937159, + "y": 2421.8743750593535 + }, + "selected": false, + "data": { + "label": "Data Clustering", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "dkCVwuy8GKeEi3VJar_Zo" + }, + "zIndex": 999, + "width": 197, + "height": 49, + "style": { + "width": 197, + "height": 49 + }, + "positionAbsolute": { + "x": -60.62974676937159, + "y": 2421.8743750593535 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "yrWiWJMSyTWxDakJbqacu", + "type": "subtopic", + "position": { + "x": -60.62974676937159, + "y": 2508.94211112394 + }, + "selected": false, + "data": { + "label": "Apache Spark", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 197, + "height": 49, + "style": { + "width": 197, + "height": 49 + }, + "positionAbsolute": { + "x": -60.62974676937159, + "y": 2508.94211112394 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "k3FJY26SVxdZx4MLLE25h", + "type": "topic", + "position": { + "x": -295.2045658739704, + "y": 2421.759476497276 + }, + "selected": false, + "data": { + "label": "Containerization", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "dkCVwuy8GKeEi3VJar_Zo" + }, + "zIndex": 999, + "width": 165, + "height": 49, + "style": { + "width": 165, + "height": 49 + }, + "positionAbsolute": { + "x": -295.2045658739704, + "y": 2421.759476497276 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "zW_7VLeEHQp8fp_f5N__0", + "type": "subtopic", + "position": { + "x": -513.7884552848205, + "y": 2421.759476497276 + }, + "selected": false, + "data": { + "label": "Docker", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 179, + "height": 49, + "style": { + "width": 179 + }, + "positionAbsolute": { + "x": -513.7884552848205, + "y": 2421.759476497276 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "yAf7VDX7dyaT5AdlNnuKD", + "type": "subtopic", + "position": { + "x": -513.7884552848205, + "y": 2522.044978959418 + }, + "selected": false, + "data": { + "label": "Docker Compose", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 179, + "height": 49, + "style": { + "width": 179 + }, + "positionAbsolute": { + "x": -513.7884552848205, + "y": 2522.044978959418 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "lUBUUoETjfADmM4OPtwwX", + "type": "subtopic", + "position": { + "x": -513.7884552848205, + "y": 2575.044978959418 + }, + "selected": false, + "data": { + "label": "Kubernetes", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 179, + "height": 49, + "style": { + "width": 179 + }, + "positionAbsolute": { + "x": -513.7884552848205, + "y": 2575.044978959418 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "dkCVwuy8GKeEi3VJar_Zo", + "type": "topic", + "position": { + "x": -295.78755730968635, + "y": 2672.4970750794264 + }, + "selected": false, + "data": { + "label": "AI", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 165, + "height": 49, + "style": { + "width": 165, + "height": 49 + }, + "positionAbsolute": { + "x": -295.78755730968635, + "y": 2672.4970750794264 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "XvvlvDKfYRCcYtTdWohsd", + "type": "topic", + "position": { + "x": -501.9670796692851, + "y": 2672.4970750794264 + }, + "selected": false, + "data": { + "label": "Cloud ML", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center", + "colorType": "h" + } + }, + "zIndex": 999, + "width": 138, + "height": 49, + "style": { + "width": 138 + }, + "positionAbsolute": { + "x": -501.9670796692851, + "y": 2672.4970750794264 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "U0RlO_puezQPZP0-iBXgW", + "type": "subtopic", + "position": { + "x": -501.9670796692851, + "y": 2725.4970750794264 + }, + "selected": false, + "data": { + "label": "Amazon ML", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 138, + "height": 49, + "style": { + "width": 138, + "height": 49 + }, + "positionAbsolute": { + "x": -501.9670796692851, + "y": 2725.4970750794264 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "vBqwmlzoT5XVEhV9IeGso", + "type": "subtopic", + "position": { + "x": -501.9670796692851, + "y": 2778.4970750794264 + }, + "selected": false, + "data": { + "label": "Azure ML", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 138, + "height": 49, + "style": { + "width": 138 + }, + "positionAbsolute": { + "x": -501.9670796692851, + "y": 2778.4970750794264 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "jkWvfp4GqckYPQ48GtjlR", + "type": "topic", + "position": { + "x": -293.28755730968635, + "y": 2764.5116332832217 + }, + "selected": false, + "data": { + "label": "Deep Learning", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center", + "colorType": "h" + } + }, + "zIndex": 999, + "width": 160, + "height": 49, + "style": { + "width": 160 + }, + "positionAbsolute": { + "x": -293.28755730968635, + "y": 2764.5116332832217 + }, + "selectable": true, + "focusable": true, + "dragging": false + }, + { + "id": "iJE9RnKC8QjPnsFeZAbtl", + "type": "subtopic", + "position": { + "x": -293.28755730968635, + "y": 2817.5116332832217 + }, + "selected": false, + "data": { + "label": "TensorFlow", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 160, + "height": 49, + "style": { + "width": 160 + }, + "positionAbsolute": { + "x": -293.28755730968635, + "y": 2817.5116332832217 + }, + "selectable": true, + "focusable": true, + "dragging": false + }, + { + "id": "LTSIfq10qDJMTCnIIyqvb", + "type": "subtopic", + "position": { + "x": -293.28755730968635, + "y": 2870.5116332832217 + }, + "selected": false, + "data": { + "label": "Pytorch", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 160, + "height": 49, + "style": { + "width": 160 + }, + "positionAbsolute": { + "x": -293.28755730968635, + "y": 2870.5116332832217 + }, + "dragging": false, + "focusable": true, + "selectable": true + }, + { + "width": 283, + "height": 49, + "id": "P5IZjP0g1_fnvHy3YTR4q", + "type": "button", + "position": { + "x": -9.74323971963861, + "y": 2851.475128312919 + }, + "selected": false, + "data": { + "label": "Client-side game Development", + "href": "https://roadmap.sh/backend", + "color": "#FFFFFf", + "backgroundColor": "#4136D4", + "style": { + "fontSize": 17 + }, + "borderColor": "#4136D4", + "oldId": "dlGf3ZdFXYx0Z6Viu2x-l" + }, + "zIndex": 999, + "dragging": false, + "positionAbsolute": { + "x": -9.74323971963861, + "y": 2851.475128312919 + }, + "style": {}, + "focusable": true, + "resizing": false, + "selectable": true + } + ], + "edges": [ + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "sourceHandle": "x2", + "target": "GV_zWF6rSWg5bqgiXhOEf", + "targetHandle": "w1", + "data": { + "edgeStyle": "solid" + }, + "id": "M0aRyhxjzTWUOW95D1g1y", + "selected": false, + "type": "smoothstep", + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "sourceHandle": "x2", + "target": "GV_zWF6rSWg5bqgiXhOEf", + "targetHandle": "w1", + "data": { + "edgeStyle": "solid" + }, + "id": "Xw4lLz2zWuTkNu8r4oheF", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "sourceHandle": "x2", + "target": "GV_zWF6rSWg5bqgiXhOEf", + "targetHandle": "w1", + "data": { + "edgeStyle": "solid" + }, + "id": "mbCXMk97_HKXG3d4TxBOC", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "iogwMmOvub2ZF4zgg6WyF", + "sourceHandle": "x2", + "target": "rQArtuVKGVgLn_fw9yO3b", + "targetHandle": "w2", + "data": { + "edgeStyle": "solid" + }, + "id": "reactflow__edge-iogwMmOvub2ZF4zgg6WyFx2-rQArtuVKGVgLn_fw9yO3bw2", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "rQArtuVKGVgLn_fw9yO3b", + "sourceHandle": "y2", + "target": "SIvQYH0q1H29NgbtLq3L8", + "targetHandle": "z1", + "data": { + "edgeStyle": "solid" + }, + "id": "reactflow__edge-rQArtuVKGVgLn_fw9yO3by2-SIvQYH0q1H29NgbtLq3L8z1", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "lDVD-3i64Mk7-KPJrXmFH", + "sourceHandle": "x2", + "target": "vFM311xSa5OqNVove2f6j", + "targetHandle": "w1", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-lDVD-3i64Mk7-KPJrXmFHx2-vFM311xSa5OqNVove2f6jw1", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "5bJUcx3v4dpdlIsx7bFvK", + "sourceHandle": "z2", + "target": "X2KHWgQZDHSVDsTRMUwSj", + "targetHandle": "y1", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-5bJUcx3v4dpdlIsx7bFvKz2-X2KHWgQZDHSVDsTRMUwSjy1", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "5bJUcx3v4dpdlIsx7bFvK", + "sourceHandle": "z2", + "target": "1GML0Jsfdb1Fn-0PNryiQ", + "targetHandle": "y1", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-5bJUcx3v4dpdlIsx7bFvKz2-1GML0Jsfdb1Fn-0PNryiQy1", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "5bJUcx3v4dpdlIsx7bFvK", + "sourceHandle": "z2", + "target": "lDVD-3i64Mk7-KPJrXmFH", + "targetHandle": "y1", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-5bJUcx3v4dpdlIsx7bFvKz2-lDVD-3i64Mk7-KPJrXmFHy1", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "mUCidjOsVLMAVDf2jmV5F", + "sourceHandle": "y2", + "target": "XxBl-zO7CF6DpOZ2bMDxJ", + "targetHandle": "z2", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-6ilqzjvI4J1pUCmTJ33PAy2-XxBl-zO7CF6DpOZ2bMDxJz2", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "mUCidjOsVLMAVDf2jmV5F", + "sourceHandle": "y2", + "target": "zTCmPUp9j5P1wpGgiboMa", + "targetHandle": "z2", + "data": { + "edgeStyle": "dashed" + }, + "selected": false, + "id": "reactflow__edge-6ilqzjvI4J1pUCmTJ33PAy2-zTCmPUp9j5P1wpGgiboMaz2", + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "mUCidjOsVLMAVDf2jmV5F", + "sourceHandle": "y2", + "target": "ALNR_uSq6ByPUrt6lXkhZ", + "targetHandle": "z1", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-6ilqzjvI4J1pUCmTJ33PAy2-ALNR_uSq6ByPUrt6lXkhZz1", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "MwLWDlciJOq_0n5S3GoF-", + "sourceHandle": "x2", + "target": "TbXJO__4xSnzK1fvvJK86", + "targetHandle": "w1", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-MwLWDlciJOq_0n5S3GoF-x2-TbXJO__4xSnzK1fvvJK86w1", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "mUCidjOsVLMAVDf2jmV5F", + "sourceHandle": "x2", + "target": "MwLWDlciJOq_0n5S3GoF-", + "targetHandle": "w1", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-6ilqzjvI4J1pUCmTJ33PAx2-MwLWDlciJOq_0n5S3GoF-w1", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "IMyHwnXxJK6oFxzOMLxjS", + "sourceHandle": "z2", + "target": "Vh81GnOUOZvDOlOyI5PwT", + "targetHandle": "y1", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-6ilqzjvI4J1pUCmTJ33PAz2-Vh81GnOUOZvDOlOyI5PwTy1", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "IMyHwnXxJK6oFxzOMLxjS", + "sourceHandle": "z2", + "target": "wD_HWc9YxPhlkilt585pg", + "targetHandle": "y1", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-6ilqzjvI4J1pUCmTJ33PAz2-wD_HWc9YxPhlkilt585pgy1", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "IMyHwnXxJK6oFxzOMLxjS", + "sourceHandle": "z2", + "target": "jsNsyrGzegVnjIF2l52vI", + "targetHandle": "y1", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-6ilqzjvI4J1pUCmTJ33PAz2-jsNsyrGzegVnjIF2l52vIy1", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "IMyHwnXxJK6oFxzOMLxjS", + "sourceHandle": "z2", + "target": "tBOvBpDi3SOKZjAmkxdM0", + "targetHandle": "y1", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-6ilqzjvI4J1pUCmTJ33PAz2-tBOvBpDi3SOKZjAmkxdM0y1", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "IMyHwnXxJK6oFxzOMLxjS", + "sourceHandle": "z2", + "target": "CCxVnrGDKa1EROXgF_OAm", + "targetHandle": "y1", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-6ilqzjvI4J1pUCmTJ33PAz2-CCxVnrGDKa1EROXgF_OAmy1", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "IMyHwnXxJK6oFxzOMLxjS", + "sourceHandle": "x2", + "target": "RfTcTUjaXyp49FnUf44MK", + "targetHandle": "w2", + "data": { + "edgeStyle": "solid" + }, + "id": "reactflow__edge-IMyHwnXxJK6oFxzOMLxjSx2-6ilqzjvI4J1pUCmTJ33PAw2", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "RfTcTUjaXyp49FnUf44MK", + "sourceHandle": "z2", + "target": "WMdCDmFsytsF2AWQXfzC8", + "targetHandle": "y2", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-6ilqzjvI4J1pUCmTJ33PAz2-WMdCDmFsytsF2AWQXfzC8y2", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "RfTcTUjaXyp49FnUf44MK", + "sourceHandle": "z2", + "target": "OYXKtl4A-vaK6yGO6hS6n", + "targetHandle": "y1", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-6ilqzjvI4J1pUCmTJ33PAz2-OYXKtl4A-vaK6yGO6hS6ny1", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "RfTcTUjaXyp49FnUf44MK", + "sourceHandle": "z2", + "target": "JE3uZ5U6oe6dVzsmglTl2", + "targetHandle": "y2", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-6ilqzjvI4J1pUCmTJ33PAz2-JE3uZ5U6oe6dVzsmglTl2y2", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "RfTcTUjaXyp49FnUf44MK", + "sourceHandle": "z2", + "target": "MoyBGT9bscUe8vMN4J0bG", + "targetHandle": "y1", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-6ilqzjvI4J1pUCmTJ33PAz2-MoyBGT9bscUe8vMN4J0bGy1", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "RfTcTUjaXyp49FnUf44MK", + "sourceHandle": "z2", + "target": "pJw8fN1dt3BABtZVz7wGE", + "targetHandle": "y1", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-6ilqzjvI4J1pUCmTJ33PAz2-pJw8fN1dt3BABtZVz7wGEy1", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "RfTcTUjaXyp49FnUf44MK", + "sourceHandle": "x2", + "target": "tg94V7K0mgYhpkUMp_Scv", + "targetHandle": "w2", + "data": { + "edgeStyle": "solid" + }, + "id": "reactflow__edge-RfTcTUjaXyp49FnUf44MKx2-6ilqzjvI4J1pUCmTJ33PAw2", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "tg94V7K0mgYhpkUMp_Scv", + "sourceHandle": "z2", + "target": "5kF1fqr-mn5-15e3aMa9k", + "targetHandle": "y1", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-6ilqzjvI4J1pUCmTJ33PAz2-5kF1fqr-mn5-15e3aMa9ky1", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "tg94V7K0mgYhpkUMp_Scv", + "sourceHandle": "z2", + "target": "2jDV-ovvrkBbTTLk5VbR9", + "targetHandle": "y1", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-6ilqzjvI4J1pUCmTJ33PAz2-2jDV-ovvrkBbTTLk5VbR9y1", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "tg94V7K0mgYhpkUMp_Scv", + "sourceHandle": "z2", + "target": "OzY-LPcfj1sBm_0F0WbIJ", + "targetHandle": "y1", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-6ilqzjvI4J1pUCmTJ33PAz2-OzY-LPcfj1sBm_0F0WbIJy1", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "tg94V7K0mgYhpkUMp_Scv", + "sourceHandle": "y2", + "target": "6ilqzjvI4J1pUCmTJ33PA", + "targetHandle": "w1", + "data": { + "edgeStyle": "solid" + }, + "id": "reactflow__edge-tg94V7K0mgYhpkUMp_Scvy2-6ilqzjvI4J1pUCmTJ33PAw1", + "selected": false, + "type": "smoothstep", + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "YPvm8XD_FaFYCQ-b7-KsH", + "sourceHandle": "x2", + "target": "jnQAzUUnwpJgoRuRIFtSe", + "targetHandle": "w2", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-YPvm8XD_FaFYCQ-b7-KsHx2-jnQAzUUnwpJgoRuRIFtSew2", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "6ilqzjvI4J1pUCmTJ33PA", + "sourceHandle": "y2", + "target": "HvpuFTCknHPhnFkhmhRc4", + "targetHandle": "z1", + "data": { + "edgeStyle": "solid" + }, + "id": "reactflow__edge-6ilqzjvI4J1pUCmTJ33PAy2-3QSLUMKD0G08N3MIb1cG7z1", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "HvpuFTCknHPhnFkhmhRc4", + "sourceHandle": "w2", + "target": "OAyMj6uLSv1yJ87YAjyZu", + "targetHandle": "x2", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-3QSLUMKD0G08N3MIb1cG7w2-OAyMj6uLSv1yJ87YAjyZux2", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "HvpuFTCknHPhnFkhmhRc4", + "sourceHandle": "x2", + "target": "a2pcxVTGdAPw8aLvdr19M", + "targetHandle": "w1", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-3QSLUMKD0G08N3MIb1cG7x2-a2pcxVTGdAPw8aLvdr19Mw1", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "HvpuFTCknHPhnFkhmhRc4", + "sourceHandle": "z2", + "target": "TS6dz61rUSxm-SqmK6JKe", + "targetHandle": "y1", + "data": { + "edgeStyle": "solid" + }, + "id": "reactflow__edge-HvpuFTCknHPhnFkhmhRc4z2-3QSLUMKD0G08N3MIb1cG7y1", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "G_BEJKkJ1_Nc43aosy_iS", + "sourceHandle": "y2", + "target": "DYvzGc_r0SlOArPPc1gNI", + "targetHandle": "z2", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-G_BEJKkJ1_Nc43aosy_iSy2-DYvzGc_r0SlOArPPc1gNIz2", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "zbIbPlqTNSbJUkqH9iLQv", + "sourceHandle": "y2", + "target": "SXOEMkcVYBsRza6BPmmwy", + "targetHandle": "z1", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-zbIbPlqTNSbJUkqH9iLQvy2-SXOEMkcVYBsRza6BPmmwyz1", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "3QSLUMKD0G08N3MIb1cG7", + "sourceHandle": "z2", + "target": "IeD-oQ1bkwlKNC-R0lJjZ", + "targetHandle": "y1", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-3QSLUMKD0G08N3MIb1cG7z2-IeD-oQ1bkwlKNC-R0lJjZy1", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "tGQu18PWDatW7HvkTP-uh", + "sourceHandle": "y2", + "target": "gB-TYpgUDV47bxznNJhYn", + "targetHandle": "z1", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-cw7WdFfL5HpeZ_n8wYk2ty2-gB-TYpgUDV47bxznNJhYnz1", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "tGQu18PWDatW7HvkTP-uh", + "sourceHandle": "y2", + "target": "FKOhe21PVlaKIoZI4hd49", + "targetHandle": "z1", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-cw7WdFfL5HpeZ_n8wYk2ty2-FKOhe21PVlaKIoZI4hd49z1", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "tGQu18PWDatW7HvkTP-uh", + "sourceHandle": "y2", + "target": "uTlxyDOtvt_Qp0gXLWO-j", + "targetHandle": "z1", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-cw7WdFfL5HpeZ_n8wYk2ty2-uTlxyDOtvt_Qp0gXLWO-jz1", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "tGQu18PWDatW7HvkTP-uh", + "sourceHandle": "y2", + "target": "1c6EqGv1g-d8M1i0vKImb", + "targetHandle": "z1", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-cw7WdFfL5HpeZ_n8wYk2ty2-1c6EqGv1g-d8M1i0vKImbz1", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "tGQu18PWDatW7HvkTP-uh", + "sourceHandle": "y2", + "target": "HXSWvhgT4L5w6xgOO-3kj", + "targetHandle": "z1", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-cw7WdFfL5HpeZ_n8wYk2ty2-HXSWvhgT4L5w6xgOO-3kjz1", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "tGQu18PWDatW7HvkTP-uh", + "sourceHandle": "x2", + "target": "FLFaGZDg2MSG6_YHnWETM", + "targetHandle": "w1", + "data": { + "edgeStyle": "solid" + }, + "id": "reactflow__edge-tGQu18PWDatW7HvkTP-uhx2-cw7WdFfL5HpeZ_n8wYk2tw1", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "4UzHjUtWQExUbCApQZrb1", + "sourceHandle": "z2", + "target": "7YNaELVcoV7DV1Fa06USi", + "targetHandle": "y1", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-4UzHjUtWQExUbCApQZrb1z2-7YNaELVcoV7DV1Fa06USiy1", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "4UzHjUtWQExUbCApQZrb1", + "sourceHandle": "z2", + "target": "ayeezKxQkXAPJMTShsOBU", + "targetHandle": "y2", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-4UzHjUtWQExUbCApQZrb1z2-ayeezKxQkXAPJMTShsOBUy2", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "FLFaGZDg2MSG6_YHnWETM", + "sourceHandle": "x2", + "target": "1788KFqsQBkYARqA0T5GX", + "targetHandle": "w1", + "data": { + "edgeStyle": "solid" + }, + "id": "reactflow__edge-FLFaGZDg2MSG6_YHnWETMx2-cw7WdFfL5HpeZ_n8wYk2tw1", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "1788KFqsQBkYARqA0T5GX", + "sourceHandle": "z2", + "target": "YxaroYL_Az0vKRCeu2jsp", + "targetHandle": "y2", + "data": { + "edgeStyle": "solid" + }, + "id": "reactflow__edge-1788KFqsQBkYARqA0T5GXz2-cw7WdFfL5HpeZ_n8wYk2ty2", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "YxaroYL_Az0vKRCeu2jsp", + "sourceHandle": "w2", + "target": "_uqTTBUYAzDHbEUkDzmzg", + "targetHandle": "x2", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-cw7WdFfL5HpeZ_n8wYk2tw2-_uqTTBUYAzDHbEUkDzmzgx2", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "YxaroYL_Az0vKRCeu2jsp", + "sourceHandle": "z2", + "target": "cw7WdFfL5HpeZ_n8wYk2t", + "targetHandle": "y2", + "data": { + "edgeStyle": "solid" + }, + "id": "reactflow__edge-YxaroYL_Az0vKRCeu2jspz2-cw7WdFfL5HpeZ_n8wYk2ty2", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "cw7WdFfL5HpeZ_n8wYk2t", + "sourceHandle": "w2", + "target": "UESjGrFyUbNf4pQamaBoy", + "targetHandle": "x2", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-cw7WdFfL5HpeZ_n8wYk2tw2-UESjGrFyUbNf4pQamaBoyx2", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "cw7WdFfL5HpeZ_n8wYk2t", + "sourceHandle": "x2", + "target": "_jd91rrAXGbJI9RhXlSx8", + "targetHandle": "z1", + "data": { + "edgeStyle": "solid" + }, + "selected": false, + "selectable": true, + "focusable": true, + "type": "smoothstep", + "id": "reactflow__edge-cw7WdFfL5HpeZ_n8wYk2tx2-dkCVwuy8GKeEi3VJar_Zoz1" + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "_jd91rrAXGbJI9RhXlSx8", + "sourceHandle": "y2", + "target": "ThBxS9xIMt9OrXfnto3rW", + "targetHandle": "z1", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-dkCVwuy8GKeEi3VJar_Zoy2-ThBxS9xIMt9OrXfnto3rWz1", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "_jd91rrAXGbJI9RhXlSx8", + "sourceHandle": "y2", + "target": "LVwGXmZhMewGQy61qwNyu", + "targetHandle": "z2", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-dkCVwuy8GKeEi3VJar_Zoy2-LVwGXmZhMewGQy61qwNyuz2", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "_jd91rrAXGbJI9RhXlSx8", + "sourceHandle": "x2", + "target": "hhtqvFfTCuVPT0OPu4Y1a", + "targetHandle": "w2", + "data": { + "edgeStyle": "solid" + }, + "id": "reactflow__edge-_jd91rrAXGbJI9RhXlSx8x2-dkCVwuy8GKeEi3VJar_Zow2", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "hhtqvFfTCuVPT0OPu4Y1a", + "sourceHandle": "z2", + "target": "wD6dUrS-tP2gpCHPghFp5", + "targetHandle": "y2", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-dkCVwuy8GKeEi3VJar_Zoz2-wD6dUrS-tP2gpCHPghFp5y2", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "hhtqvFfTCuVPT0OPu4Y1a", + "sourceHandle": "z2", + "target": "73uoFNGcCALxIuRNbebav", + "targetHandle": "y1", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-dkCVwuy8GKeEi3VJar_Zoz2-73uoFNGcCALxIuRNbebavy1", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "hhtqvFfTCuVPT0OPu4Y1a", + "sourceHandle": "z2", + "target": "Rkx2A6oWsddlCTseZlpRU", + "targetHandle": "y2", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-dkCVwuy8GKeEi3VJar_Zoz2-Rkx2A6oWsddlCTseZlpRUy2", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "hhtqvFfTCuVPT0OPu4Y1a", + "sourceHandle": "y2", + "target": "XCJvgUSS7-oDR-XGdDY33", + "targetHandle": "z1", + "data": { + "edgeStyle": "solid" + }, + "id": "reactflow__edge-hhtqvFfTCuVPT0OPu4Y1ay2-dkCVwuy8GKeEi3VJar_Zoz1", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "XCJvgUSS7-oDR-XGdDY33", + "sourceHandle": "x2", + "target": "yrWiWJMSyTWxDakJbqacu", + "targetHandle": "w2", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-dkCVwuy8GKeEi3VJar_Zox2-yrWiWJMSyTWxDakJbqacuw2", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "XCJvgUSS7-oDR-XGdDY33", + "sourceHandle": "y2", + "target": "k3FJY26SVxdZx4MLLE25h", + "targetHandle": "z1", + "data": { + "edgeStyle": "solid" + }, + "id": "reactflow__edge-XCJvgUSS7-oDR-XGdDY33y2-dkCVwuy8GKeEi3VJar_Zoz1", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "k3FJY26SVxdZx4MLLE25h", + "sourceHandle": "y2", + "target": "zW_7VLeEHQp8fp_f5N__0", + "targetHandle": "z2", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-dkCVwuy8GKeEi3VJar_Zoy2-zW_7VLeEHQp8fp_f5N__0z2", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "zW_7VLeEHQp8fp_f5N__0", + "sourceHandle": "x2", + "target": "yAf7VDX7dyaT5AdlNnuKD", + "targetHandle": "w1", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-zW_7VLeEHQp8fp_f5N__0x2-yAf7VDX7dyaT5AdlNnuKDw1", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "k3FJY26SVxdZx4MLLE25h", + "sourceHandle": "x2", + "target": "dkCVwuy8GKeEi3VJar_Zo", + "targetHandle": "w1", + "data": { + "edgeStyle": "solid" + }, + "id": "reactflow__edge-k3FJY26SVxdZx4MLLE25hx2-dkCVwuy8GKeEi3VJar_Zow1", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "dkCVwuy8GKeEi3VJar_Zo", + "sourceHandle": "y2", + "target": "XvvlvDKfYRCcYtTdWohsd", + "targetHandle": "z1", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-dkCVwuy8GKeEi3VJar_Zoy2-XvvlvDKfYRCcYtTdWohsdz1", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "dkCVwuy8GKeEi3VJar_Zo", + "sourceHandle": "x2", + "target": "jkWvfp4GqckYPQ48GtjlR", + "targetHandle": "w1", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-dkCVwuy8GKeEi3VJar_Zox2-jkWvfp4GqckYPQ48GtjlRw1", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "dkCVwuy8GKeEi3VJar_Zo", + "sourceHandle": "z2", + "target": "GV_zWF6rSWg5bqgiXhOEf", + "targetHandle": "w1", + "data": { + "edgeStyle": "solid" + }, + "selected": false, + "focusable": true, + "selectable": true, + "id": "reactflow__edge-dkCVwuy8GKeEi3VJar_Zoz2-GV_zWF6rSWg5bqgiXhOEfw1", + "type": "smoothstep" + } + ] } \ No newline at end of file diff --git a/src/data/roadmaps/server-side-game-developer/server-side-game-developer.md b/src/data/roadmaps/server-side-game-developer/server-side-game-developer.md index a07294693..c65e210bc 100644 --- a/src/data/roadmaps/server-side-game-developer/server-side-game-developer.md +++ b/src/data/roadmaps/server-side-game-developer/server-side-game-developer.md @@ -1,6 +1,7 @@ --- pdfUrl: '/pdfs/roadmaps/server-side-game-developer.pdf' order: 17 +renderer: 'editor' briefTitle: 'Server Side Game Developer' briefDescription: 'Roadmap to becoming a Server Side Game Developer in 2024' title: 'Server Side Game Developer' @@ -10,7 +11,7 @@ isNew: true isHidden: true dimensions: width: 968 - height: 2618.02 + height: 2850 schema: headline: 'Server Side Game Developer Roadmap' description: 'Learn what Server Side Game Development is, what server side game developers do and how to become one using our community-driven roadmap.' diff --git a/src/lib/resource-progress.ts b/src/lib/resource-progress.ts index 41b10f98f..3d10b131c 100644 --- a/src/lib/resource-progress.ts +++ b/src/lib/resource-progress.ts @@ -100,6 +100,7 @@ export function clearMigratedRoadmapProgress( 'cyber-security', 'ux-design', 'game-developer', + 'server-side-game-developer', ]; if (!migratedRoadmaps.includes(resourceId)) {