├── .gitattributes ├── .gitignore ├── CSharpOsu.sln ├── CSharpOsu ├── CSharpOsu.cs ├── CSharpOsu.csproj ├── Converters │ ├── ApprovedConvert.cs │ ├── BoolConvert.cs │ └── ModsConvert.cs ├── Module │ ├── Model.cs │ ├── OsuBeatmap.cs │ ├── OsuMatch.cs │ ├── OsuReplay.cs │ ├── OsuScore.cs │ ├── OsuUser.cs │ ├── OsuUserBest.cs │ └── OsuUserRecent.cs └── Util │ ├── BinaryHandler.cs │ ├── Enums.cs │ ├── Strings.cs │ └── Utility.cs ├── Examples └── Osu-Replay-Compiler │ └── Osu-Replay-Compiler │ ├── App.config │ ├── Osu-Replay-Compiler.csproj │ ├── Program.cs │ └── Properties │ └── AssemblyInfo.cs ├── LICENSE ├── README.md ├── _config.yml └── docs ├── SearchHelp.aspx ├── SearchHelp.inc.php ├── SearchHelp.php ├── Web.Config ├── WebKI.xml ├── WebTOC.xml ├── fti ├── FTI_100.json ├── FTI_101.json ├── FTI_102.json ├── FTI_103.json ├── FTI_104.json ├── FTI_105.json ├── FTI_106.json ├── FTI_107.json ├── FTI_108.json ├── FTI_109.json ├── FTI_110.json ├── FTI_111.json ├── FTI_112.json ├── FTI_113.json ├── FTI_114.json ├── FTI_115.json ├── FTI_116.json ├── FTI_117.json ├── FTI_118.json ├── FTI_119.json ├── FTI_95.json ├── FTI_97.json ├── FTI_98.json ├── FTI_99.json └── FTI_Files.json ├── html ├── 00540a1f-b43b-849f-613d-9a402db6b6fe.htm ├── 011b58e1-c751-1e85-8873-a1b71a85de47.htm ├── 0170d10e-31ac-222c-ca36-682e6e710c2e.htm ├── 0212a2fc-ce95-a802-fca9-8a7df73dcb5f.htm ├── 039d032d-fdaa-dd15-96c4-ddc8ae697d5f.htm ├── 03f53d27-1804-df16-1811-dd8161d9ca58.htm ├── 04ff1706-4509-d0ba-6f5e-347142671dda.htm ├── 050e873b-a322-952e-2c55-f7d071a29a17.htm ├── 05b7fc50-3281-4158-024b-d323a083ffcd.htm ├── 05bdaa7a-fd43-4c69-36d9-5c5e4b99eb73.htm ├── 05e28c36-1d21-a902-5a8d-ef13c0061de8.htm ├── 0688eeb5-f96f-a8af-25f6-fad2e9cce1d0.htm ├── 074ec819-946a-1e6b-4825-21fd4aeb2e9a.htm ├── 07f691a8-f43b-14e2-9789-418bef4b71c9.htm ├── 08da0c68-a63c-3beb-24e7-616c391d104c.htm ├── 08e892aa-eb91-37b7-bb01-fa215488b272.htm ├── 0a84eefc-e0fe-b6be-b89b-2ce18ac80ec8.htm ├── 0cc776d8-31da-f68e-e32f-07479afc76cc.htm ├── 0d020578-8eb1-c518-94b5-be57715981ab.htm ├── 0d1aa67e-3ff2-8a7a-3e5b-319ac78bc752.htm ├── 0e1d80f5-25d3-d933-fd58-9c0fa64cd0ec.htm ├── 0e678bdd-2c8a-ccad-b6ec-105c719d7346.htm ├── 0e9f1996-641e-d916-68b8-49eb54bead26.htm ├── 0ef577e0-de68-62c3-ffe9-ad04490cf514.htm ├── 0f889495-a197-c324-09e3-f2eeb173415e.htm ├── 1121b22f-da3a-3ce9-f5ee-1f8e08c4fbbf.htm ├── 1189739e-261d-64af-907f-65f5a518151a.htm ├── 1355ec67-9118-1a41-fcb7-2af922dca15f.htm ├── 171cef80-5ebc-f479-ca32-3b417557b847.htm ├── 182ef957-908a-d456-ddc8-a93f5015e5a2.htm ├── 188a3a82-25e4-0bd5-6c42-c1d4d802621c.htm ├── 197672d6-f13d-5741-ed21-50392b28caf3.htm ├── 1a3cf8bf-3c51-eb26-953a-b029a63ae856.htm ├── 1a47ea24-f09e-2622-1c24-c74ee8bfb3ba.htm ├── 1b5c8aca-d47b-176f-2967-89ab89295e3b.htm ├── 1b5ff63f-ed1d-a8f4-8add-0f91b3d2a933.htm ├── 1bad2b86-c67e-2e8b-9a3f-9e4708a072d7.htm ├── 1be296e3-86e3-9179-5def-2851005df662.htm ├── 1d37cd34-2f82-edc0-672c-4b25ee0f14da.htm ├── 1da00778-0a42-20de-592d-6c5adb29a6fd.htm ├── 21b8fdc6-80d5-6a33-2ff5-68d7c84c1031.htm ├── 21e515ff-7ec7-5acf-2870-d31fc7dd0d33.htm ├── 22502ff7-4ba8-0560-0446-10eaf41dad10.htm ├── 22c2bf1b-e33b-dfec-7a7a-c56d3031241d.htm ├── 22c50749-f121-6672-ec33-d90a8be43d85.htm ├── 23d51bda-59ca-0528-5673-b745be96e7f5.htm ├── 256d9c1c-7a35-13e4-5935-180356c4a892.htm ├── 2588241a-625d-ab4a-efdf-7f05fc0ea824.htm ├── 25e83543-51b7-34d7-cd74-5aa83df931b9.htm ├── 2687fd0d-ff45-54f4-4691-62a12dbf6ca0.htm ├── 28cff653-a905-c15c-7a58-ed925aaa5f45.htm ├── 2ad6aa1a-ebc7-50e1-c688-5a98496975de.htm ├── 2cb91361-1af6-f405-9165-e1dd26e74a21.htm ├── 3119c9f4-6927-c8be-b853-2b6e5f93fea6.htm ├── 31967e26-ab3d-e758-64e3-e67c30b3227b.htm ├── 324dc3ba-c6bb-271d-cb3d-429bc1276de3.htm ├── 34e6dad3-399b-2540-0a15-65c4f20ecd55.htm ├── 35f14b78-29f1-3ed1-1088-1ed87f934fa2.htm ├── 370e3cc5-a776-d27e-9018-5711425f6bfd.htm ├── 38e5932a-622e-4a92-93ad-6f0361eccf39.htm ├── 39f674af-f8c1-ff4b-11d2-1ac415fea2fe.htm ├── 3a076697-3a76-b71d-da2c-bbbaa5d3af75.htm ├── 3a44a954-3c37-ef49-d6e9-c3f25882e7ff.htm ├── 3efe7d46-c58b-5cca-54df-ff038f5c7da1.htm ├── 40823983-0592-59bb-c790-489c46ab6683.htm ├── 41d007de-2006-f48e-2351-0475d4305152.htm ├── 4264b650-b56c-6353-6c9e-03b4825a27c7.htm ├── 439d4e21-9e43-26ea-45f4-0a798a764335.htm ├── 4400f6de-0cc5-c829-7566-bacdb3b07cfb.htm ├── 44843d11-4dac-7d52-6437-e3786c8ea116.htm ├── 47c96d64-0d93-212e-bd81-ab65b2b0963c.htm ├── 485d42ec-13b3-7308-db8d-c4b67ee97970.htm ├── 49bb44b2-8379-008c-3d58-4d0b94eef53f.htm ├── 49f8ce92-a1dd-5cf6-c646-c655ad0346f2.htm ├── 4a631c4a-2a3b-09ee-9aa7-388f6ea5447e.htm ├── 4a80c94b-8b72-4f84-b02d-30d32d893f58.htm ├── 4b1fee5a-46e0-d460-8329-22f4d25aa4d1.htm ├── 4b42f4d3-c5ff-a888-aa22-84abfc2c43f7.htm ├── 4c8f9da0-5781-ad65-02fd-149ec59cdfbb.htm ├── 4d3b7904-9947-f881-b618-0b04cec3b2e7.htm ├── 4daf9623-afe5-72df-c8c3-d1ccbc7be79c.htm ├── 4f920d6c-303c-331d-c53c-fb1b1dac5ed7.htm ├── 50167d01-03d8-d091-7301-f9c9b073032f.htm ├── 50425a07-64da-a2c0-7b14-3c14735b218f.htm ├── 51415f1a-e269-7674-1356-8cc816d3a1b1.htm ├── 52368e2c-9022-4787-57aa-dbf8a20617d9.htm ├── 52f521da-0e73-6c9b-1a5b-1429d85749e8.htm ├── 56cfd8e2-7c03-af9e-1db9-966cf7705b2d.htm ├── 58bcebb5-1f47-f6d3-709f-f3e387915de0.htm ├── 593a6f64-b2d6-02fc-2f6b-c552f1aa7822.htm ├── 59a8dbe1-a0a4-65ab-51a1-313baf1ecd6a.htm ├── 5a6a779c-3422-8aa3-b811-ea1322e975b1.htm ├── 5c4f5a44-10da-5fd1-ffa6-b2e24570412a.htm ├── 5c76ebcc-b36b-ce5e-736b-406b647981c6.htm ├── 5cdb2860-f626-94cd-810e-77a52c1cfd74.htm ├── 5de845a5-52e6-a4b1-bfa7-23311809370f.htm ├── 5fab97a2-4bef-bd38-5cac-d471adbcd775.htm ├── 6035e0ba-39eb-9406-2a5d-08adb9928e1d.htm ├── 61dada65-40d9-93b4-03b6-23c343a97fad.htm ├── 62728b22-849e-0005-a00e-fadabbeb3e88.htm ├── 654bc424-4e21-3edd-6a3f-7b9c1430a149.htm ├── 6583ee86-b8df-ee5c-1316-45be8058bf23.htm ├── 658a6483-4dac-4db7-4fa1-4606d4286c59.htm ├── 66c3f42a-e84f-452a-3c73-7a553f17e754.htm ├── 675fe54d-a091-1bff-8efe-0d24972e2c45.htm ├── 684dc2b6-0f24-68e8-cfee-fa5dc9222e43.htm ├── 68a18509-850c-1592-1970-f9cd5364ab81.htm ├── 690718e7-1ec6-3d05-cf54-7983c208ba30.htm ├── 69c10542-97ea-dad0-10ea-2db7f78d5d44.htm ├── 6ab545f4-f5eb-8094-6658-1e2bf36e4247.htm ├── 6b87b4c5-8aea-cbe7-1e40-7273fb085127.htm ├── 6c88f2a1-70ed-710b-1c56-302787675869.htm ├── 6d76a6c9-5f1d-33a7-1264-c1a51b40eb4a.htm ├── 6e5f9dd8-fce8-a7ae-db88-eccc3a8c3d0b.htm ├── 7176f140-e070-999d-3f1e-45f101d6fbda.htm ├── 719ebcbb-f4f0-a521-0380-ca7a8b970f55.htm ├── 7246f690-3efe-929a-8b1c-0ccfe56f474f.htm ├── 756bcb21-5ee5-2518-b313-c52566ea6405.htm ├── 7620a833-c879-d877-330e-2d52a2227c88.htm ├── 76a474ff-96e5-fb90-b61f-3b4366a16175.htm ├── 7724eea4-fdcf-9da8-feb9-0ea26bedae6a.htm ├── 783ec537-4e1c-87c1-fe4e-dbd349ea2229.htm ├── 7a674a75-a95f-5c4f-b880-b0a2b5386251.htm ├── 7b35ee17-80f6-3079-9bf4-10795ce16ed0.htm ├── 7b8b4d5e-581e-33ce-3be8-df840c5a2db5.htm ├── 7cde2ad4-9720-393b-b57d-1cd7de70d705.htm ├── 7d4e9008-2c8c-c7e9-e0af-7b61401302e6.htm ├── 7d7e1f6f-fd9f-fe1e-58d5-c80b4d403a1a.htm ├── 7d91ac74-3029-4c8b-dc52-72de6135723c.htm ├── 7d96a975-3ab9-7c64-3f68-867036bc8560.htm ├── 7d994de7-3c99-4848-de06-3dcdf4381048.htm ├── 7e5dab30-2c98-f835-78de-ea949153f42c.htm ├── 7e916232-5ecd-9145-a74a-e9d3a4f352cb.htm ├── 7f67c7df-3c51-00e1-1228-841e79fccb60.htm ├── 7f7e3734-7524-1815-6c19-740c18e57160.htm ├── 7f9c5ab8-91f7-9ba6-8cdd-0848cee5603f.htm ├── 7fd48a03-a155-47a3-591e-7b27c07e38da.htm ├── 80a8f108-1a5f-ca5d-5d96-6fba03da8c02.htm ├── 80aced1b-55e3-37d1-9597-4aa1e4fe821a.htm ├── 826b0229-4c91-6c89-d018-df298c6882c2.htm ├── 83f4b57e-4d57-cfec-ff27-554b74ea7413.htm ├── 8587745f-58f9-c0b2-a7eb-45c2927099eb.htm ├── 858f87c8-172f-ee3d-1050-ec7e846fa080.htm ├── 865c2134-c50c-5460-b85c-269f4bd78ea7.htm ├── 87340d89-d679-f635-5d2b-1563dcff10a3.htm ├── 886c4335-74df-dc77-7de0-bdde37d35fda.htm ├── 88ddb0f4-2525-c2b2-0cc6-e64e65815830.htm ├── 8ac98b6b-cdd9-206d-a8e0-d5619a73ff3f.htm ├── 8ad4288f-3a38-2ae4-8975-766c4d13d2ed.htm ├── 8c4a6fae-35fb-b1fb-7990-801c534190b5.htm ├── 8d43a793-d9b7-ebc7-ed52-618878c177d6.htm ├── 8d9c9cb9-6ec1-0ad9-b388-220a3289a61b.htm ├── 8e16a07e-87e4-918e-1fbd-ba6b4f99d6d7.htm ├── 8e40ac07-ec52-4424-22ce-930ce3fe6df6.htm ├── 8e69f29b-0c54-b5fb-69b3-f158059d8aaa.htm ├── 8efc8e28-bff8-e09e-f86a-7b62c2f6ff95.htm ├── 8f644080-e58c-c8ad-bef6-cd7c66e4d0ea.htm ├── 90646cfd-c042-3516-06d6-80aac71b852d.htm ├── 90865df8-e100-609f-b0d5-eedf033577f2.htm ├── 90fa92b3-f3a1-068c-0780-849cf4d7a7d9.htm ├── 91196e53-0387-6bf7-8b5f-fbc2718cae14.htm ├── 9148ff12-c054-8b67-a988-dae69b96b5dc.htm ├── 917acca6-866c-5b42-3cf1-5713aa5ab1ee.htm ├── 9376c6f1-f961-0b37-20ab-efd05856398b.htm ├── 93ae7eac-7b49-6911-4dd5-50e7d70e32b5.htm ├── 940e2da5-6928-a3bc-ac87-b39c94dadb16.htm ├── 9580d069-4953-b16d-e833-3a40808d849f.htm ├── 96638815-020e-d745-5e0d-6748b85d4bb9.htm ├── 96da6bb5-239a-89d1-1fbf-0eb158b2b6db.htm ├── 96ea8260-bd6b-6351-d27b-9ab515583ab3.htm ├── 9737d269-0220-aa44-ad72-ecb3e84ae0b5.htm ├── 9800d1f9-ffa2-2e19-06c0-57fb4d171519.htm ├── 9ad9cf2c-20dc-13f5-ad5e-d8084f29c63f.htm ├── 9c907bb9-756a-a283-5533-a26a937ed6a1.htm ├── 9d3369dd-170f-fc86-e7be-198d0f7d3505.htm ├── 9f7aca55-f030-6eb0-6bdd-2a897c087a96.htm ├── GeneralError.htm ├── PageNotFound.htm ├── a0cc9a0c-9fae-83a0-b78e-4119edd8f2a4.htm ├── a33e8d10-ae51-d6a7-72c2-a7cfa45c9608.htm ├── a40d26e1-bbde-d36b-0628-58f12e28533a.htm ├── a4ed9548-832c-3d9d-c81a-8a7bb00ecc6a.htm ├── a5e1f604-ab51-f0db-805c-be221614acbd.htm ├── a8932693-6e51-145b-f02b-7581d86e4e27.htm ├── aa414526-6edd-5cb6-e665-4be53d71c634.htm ├── aa93259c-7c9a-5aaa-6a7a-5ac889f055e1.htm ├── aae770bc-2b46-5334-c2df-d7e00ab9eb7d.htm ├── ab8064b6-a168-480b-b8d5-b29a6e4fa934.htm ├── abd9e6c2-101f-5163-6274-a1c0d0ccb552.htm ├── ad0c2df0-0aa3-3236-16da-8dd78734ca10.htm ├── ad353c14-5383-ed08-3224-ed2fb6ebc532.htm ├── ad55f0dd-0026-e9c7-d8f1-1534769d7537.htm ├── ae16a85d-8852-9366-9fcd-48b46cccf73e.htm ├── af3e6f52-6dd3-ca03-a041-7e6609b88f2e.htm ├── af78f2c8-7bec-cb0e-cba2-1bf256d72614.htm ├── b08ac4b9-8363-84b1-67a0-4efae59c3aae.htm ├── b0ca4bc7-7a2f-1c23-6a1f-7b207afffcca.htm ├── b1890466-a751-7d2c-0619-a3263f616ffe.htm ├── b1ddc823-6d06-9016-b09d-b2b1388c042a.htm ├── b22d08d1-baef-345b-f043-b87d96d22dd0.htm ├── b24c17e4-4ade-4241-fbc9-ae9fb7de45b0.htm ├── b2988e42-25bf-b3d7-1590-825d9f7b93b8.htm ├── b37adc63-bfa6-a001-a2be-e514464e74f5.htm ├── b45fb1d7-53bb-8e27-e145-dfb8a494383f.htm ├── b4e3b7b7-8a33-35be-84be-8d02523b7687.htm ├── b4e9f5ed-34c8-7649-d398-66d98bbc32a8.htm ├── b59e4ff0-0672-5a7f-27a1-b148f1b1e33a.htm ├── b7123852-aae6-bfc1-7521-b21ed0cc8fb9.htm ├── b74ad381-5a71-0c1d-93ec-795d620b3899.htm ├── b8305d66-0b91-8a2d-175c-13057a281a2a.htm ├── b9801dc4-e75a-4326-743a-733bac9c28f2.htm ├── b9de971b-f96d-2508-bcf1-2986055b6fbb.htm ├── b9f5cd13-463c-0702-b188-c69bb5beb848.htm ├── ba00559d-ec23-76a5-e8ec-60aa75ea2b9c.htm ├── ba12ed92-1980-094c-361c-3ae8348c5db8.htm ├── bc0215a0-9829-526f-96ef-890b6dfdee6a.htm ├── bc81e4e8-f4fa-1f6d-6a95-914614726b1a.htm ├── bcc7c410-ebf8-d7fa-6fe1-1dd342310495.htm ├── bd11609c-463a-905d-57a4-934d74b103d7.htm ├── bd1c2f4b-c65c-c9d9-3ecb-fbd6f57c37f0.htm ├── bf78b5b4-d404-0c89-65a6-22dea7418957.htm ├── c1360f53-bcfe-9d56-9a3d-5e0c9b7f2af4.htm ├── c14f6514-56e6-ea63-a911-f93540adc74a.htm ├── c1d8b86c-a052-d900-90bc-6cfb8c63f5e5.htm ├── c20832f2-3a95-70c4-5a41-aa089128c87a.htm ├── c25194b5-0975-18ac-ccc6-4088c96a9031.htm ├── c3183b80-eae9-2210-4247-46fe36f095fd.htm ├── c33316da-52cb-385d-a17b-7be4387e7ed1.htm ├── c5137dbf-9b0d-c986-995d-a5e52238a06b.htm ├── c622d6f3-5168-1811-ca3f-e0a54cee170e.htm ├── c644cdfa-572e-beda-b1bc-ecddcead3c98.htm ├── c772a17c-470a-7f99-da38-78e5ab5d4069.htm ├── c82933da-c608-0eec-7701-9b7ad49b831e.htm ├── c8852fd0-3280-e21e-b037-e7b45caf546f.htm ├── c9a09671-4aa1-a92d-1e68-80439314f1b6.htm ├── c9d05cd2-1d9d-0d14-bef7-a05205fdc567.htm ├── ca5cbfa5-d710-3f0b-b104-856a5f9a9398.htm ├── cb76fd49-2e15-0ba8-43c3-09f67c62cfaa.htm ├── cd663f80-1dc6-04d3-5eae-1b20ef46d6f4.htm ├── cd9d4573-1436-a9f1-de19-6ca16864f98b.htm ├── ce57610e-4e26-abb3-c259-cf2212c3ff73.htm ├── ce58e85b-7590-12f7-4edd-0c89cd945969.htm ├── cea6bdde-c8d6-e50a-48ca-4a9da23480c1.htm ├── ceea4e77-829f-0d25-15da-f389947d8794.htm ├── d086e133-c0fc-15aa-eac3-548cc8ada863.htm ├── d1e255b6-33f9-16bc-d6cc-c8becba4f496.htm ├── d23f730e-8cf7-a5e3-34af-cedf74adbe17.htm ├── d540f320-1267-dcfd-9dce-575b96d23d88.htm ├── d6307973-e05a-51ba-9941-0b5f96ca86a0.htm ├── d791ef97-c5fb-f280-0454-bc32ae9b2fbb.htm ├── d8757481-3f87-52ca-6148-4d5514add87a.htm ├── d97c4bed-8909-abe8-e394-d880d0772377.htm ├── dac18e8e-d78d-a206-9c8d-a64770696720.htm ├── dba6963b-bedb-820c-d443-2fa1cbaaff88.htm ├── dc514001-7c68-af28-153d-f93679a2d4c7.htm ├── dcbb05a3-5e4d-df19-959f-18cd4078e81f.htm ├── dcc1a1d0-f9e1-55ca-0cc3-4375cf79db87.htm ├── dcd08b1a-3a34-7358-bf9d-d095544b3706.htm ├── de817cc4-a22a-c12d-7595-1d9a8e957ac2.htm ├── e028eacc-62b2-d7f6-3f48-039bba353904.htm ├── e0f51417-b059-3859-5c44-1788eb62e635.htm ├── e26e3330-404a-3541-819e-0a5c6cf732de.htm ├── e30b8c62-47a5-fd84-8736-e9a23a390365.htm ├── e3bb76f3-f7d0-bb9e-efa9-eae810acb7ae.htm ├── e59b7af3-1b11-be11-981d-5c252ae7be5f.htm ├── e6d08d5c-642d-22ae-3af5-93e87f001302.htm ├── e7814ef5-71d9-77b8-a519-eeb2cbc155e6.htm ├── e8a1e289-9162-e85c-9f39-6e4b76638134.htm ├── e8a8c59c-89e1-3ce0-1ba7-e24d48abc755.htm ├── e9df7179-0c85-1319-7eb3-0c6740710452.htm ├── eb09fb43-bc31-823c-6bbc-e4d434a09138.htm ├── eb71d2b3-ff4d-452b-2a16-a05403b8748b.htm ├── eba71c61-3fb9-65b0-909f-12497d7daabb.htm ├── ec0d5324-faea-102c-026b-1f2dbc1ced98.htm ├── edbdf51e-0028-fe3a-9e6a-390c45872809.htm ├── f0190191-76da-9ee4-0fc5-910d1317176b.htm ├── f10245de-ba17-5e95-4da1-616545ed3eee.htm ├── f1320318-9f5c-1d80-5ef9-7eeae114385d.htm ├── f22f1425-dcb4-08c7-f0ec-515da0db16df.htm ├── f32a513e-1fd6-b291-a63b-b2a3aecd5233.htm ├── f4356d19-a566-dc5f-8110-5da4e0f8f2a4.htm ├── f4cf982e-c269-500e-efae-8e6ac9e38e0a.htm ├── f5b385ba-540e-2ec4-a401-2e3efef57886.htm ├── f6e61fa0-75b2-8e25-c963-0941278ab4d6.htm ├── f9a16a45-d490-c5cb-e3c4-990f656213d1.htm ├── f9f8bb65-da43-386f-6cb8-32c32b9bdaf0.htm ├── fd2833dc-fdd3-2de7-c814-185b41c265b9.htm ├── fe20c4c8-2e9e-c8d8-7ab9-269f8e65d8fb.htm └── introduction.htm ├── icons ├── AlertCaution.png ├── AlertNote.png ├── AlertSecurity.png ├── CFW.gif ├── CodeExample.png ├── Help.png ├── Search.png ├── SectionCollapsed.png ├── SectionExpanded.png ├── TocClose.gif ├── TocCollapsed.gif ├── TocExpanded.gif ├── TocOpen.gif ├── favicon.ico ├── privclass.gif ├── privdelegate.gif ├── privenumeration.gif ├── privevent.gif ├── privextension.gif ├── privfield.gif ├── privinterface.gif ├── privmethod.gif ├── privproperty.gif ├── privstructure.gif ├── protclass.gif ├── protdelegate.gif ├── protenumeration.gif ├── protevent.gif ├── protextension.gif ├── protfield.gif ├── protinterface.gif ├── protmethod.gif ├── protoperator.gif ├── protproperty.gif ├── protstructure.gif ├── pubclass.gif ├── pubdelegate.gif ├── pubenumeration.gif ├── pubevent.gif ├── pubextension.gif ├── pubfield.gif ├── pubinterface.gif ├── pubmethod.gif ├── puboperator.gif ├── pubproperty.gif ├── pubstructure.gif ├── slMobile.gif ├── static.gif └── xna.gif ├── index.html ├── scripts ├── branding-Website.js ├── branding.js ├── clipboard.min.js └── jquery-3.3.1.min.js ├── search.html ├── styles ├── branding-Help1.css ├── branding-HelpViewer.css ├── branding-Website.css ├── branding-cs-CZ.css ├── branding-de-DE.css ├── branding-en-US.css ├── branding-es-ES.css ├── branding-fr-FR.css ├── branding-it-IT.css ├── branding-ja-JP.css ├── branding-ko-KR.css ├── branding-pl-PL.css ├── branding-pt-BR.css ├── branding-ru-RU.css ├── branding-tr-TR.css ├── branding-zh-CN.css ├── branding-zh-TW.css └── branding.css └── toc ├── 050e873b-a322-952e-2c55-f7d071a29a17.xml ├── 05bdaa7a-fd43-4c69-36d9-5c5e4b99eb73.xml ├── 0688eeb5-f96f-a8af-25f6-fad2e9cce1d0.xml ├── 07f691a8-f43b-14e2-9789-418bef4b71c9.xml ├── 0a84eefc-e0fe-b6be-b89b-2ce18ac80ec8.xml ├── 0d1aa67e-3ff2-8a7a-3e5b-319ac78bc752.xml ├── 0f889495-a197-c324-09e3-f2eeb173415e.xml ├── 1d37cd34-2f82-edc0-672c-4b25ee0f14da.xml ├── 22c50749-f121-6672-ec33-d90a8be43d85.xml ├── 23d51bda-59ca-0528-5673-b745be96e7f5.xml ├── 25e83543-51b7-34d7-cd74-5aa83df931b9.xml ├── 31967e26-ab3d-e758-64e3-e67c30b3227b.xml ├── 3a44a954-3c37-ef49-d6e9-c3f25882e7ff.xml ├── 3efe7d46-c58b-5cca-54df-ff038f5c7da1.xml ├── 41d007de-2006-f48e-2351-0475d4305152.xml ├── 4400f6de-0cc5-c829-7566-bacdb3b07cfb.xml ├── 4a631c4a-2a3b-09ee-9aa7-388f6ea5447e.xml ├── 4b42f4d3-c5ff-a888-aa22-84abfc2c43f7.xml ├── 52f521da-0e73-6c9b-1a5b-1429d85749e8.xml ├── 593a6f64-b2d6-02fc-2f6b-c552f1aa7822.xml ├── 59a8dbe1-a0a4-65ab-51a1-313baf1ecd6a.xml ├── 5c76ebcc-b36b-ce5e-736b-406b647981c6.xml ├── 654bc424-4e21-3edd-6a3f-7b9c1430a149.xml ├── 6583ee86-b8df-ee5c-1316-45be8058bf23.xml ├── 66c3f42a-e84f-452a-3c73-7a553f17e754.xml ├── 6b87b4c5-8aea-cbe7-1e40-7273fb085127.xml ├── 7724eea4-fdcf-9da8-feb9-0ea26bedae6a.xml ├── 7a674a75-a95f-5c4f-b880-b0a2b5386251.xml ├── 7cde2ad4-9720-393b-b57d-1cd7de70d705.xml ├── 7e5dab30-2c98-f835-78de-ea949153f42c.xml ├── 8e69f29b-0c54-b5fb-69b3-f158059d8aaa.xml ├── 8f644080-e58c-c8ad-bef6-cd7c66e4d0ea.xml ├── 91196e53-0387-6bf7-8b5f-fbc2718cae14.xml ├── 9148ff12-c054-8b67-a988-dae69b96b5dc.xml ├── 93ae7eac-7b49-6911-4dd5-50e7d70e32b5.xml ├── a33e8d10-ae51-d6a7-72c2-a7cfa45c9608.xml ├── aa93259c-7c9a-5aaa-6a7a-5ac889f055e1.xml ├── ab8064b6-a168-480b-b8d5-b29a6e4fa934.xml ├── ae16a85d-8852-9366-9fcd-48b46cccf73e.xml ├── b0ca4bc7-7a2f-1c23-6a1f-7b207afffcca.xml ├── b8305d66-0b91-8a2d-175c-13057a281a2a.xml ├── b9801dc4-e75a-4326-743a-733bac9c28f2.xml ├── c644cdfa-572e-beda-b1bc-ecddcead3c98.xml ├── ca5cbfa5-d710-3f0b-b104-856a5f9a9398.xml ├── d1e255b6-33f9-16bc-d6cc-c8becba4f496.xml ├── e028eacc-62b2-d7f6-3f48-039bba353904.xml ├── e6d08d5c-642d-22ae-3af5-93e87f001302.xml ├── e9df7179-0c85-1319-7eb3-0c6740710452.xml ├── eb09fb43-bc31-823c-6bbc-e4d434a09138.xml ├── f1320318-9f5c-1d80-5ef9-7eeae114385d.xml ├── f4cf982e-c269-500e-efae-8e6ac9e38e0a.xml └── roottoc.xml /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | 7 | # Standard to msysgit 8 | *.doc diff=astextplain 9 | *.DOC diff=astextplain 10 | *.docx diff=astextplain 11 | *.DOCX diff=astextplain 12 | *.dot diff=astextplain 13 | *.DOT diff=astextplain 14 | *.pdf diff=astextplain 15 | *.PDF diff=astextplain 16 | *.rtf diff=astextplain 17 | *.RTF diff=astextplain 18 | -------------------------------------------------------------------------------- /CSharpOsu.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 16 4 | VisualStudioVersion = 16.0.28729.10 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CSharpOsu", "CSharpOsu\CSharpOsu.csproj", "{3108AE4A-DE35-40AE-A449-1EFB9719367D}" 7 | EndProject 8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Osu-Replay-Compiler", "Examples\Osu-Replay-Compiler\Osu-Replay-Compiler\Osu-Replay-Compiler.csproj", "{FAC3FB6E-FAE8-42D1-B74E-6C7248A6F208}" 9 | EndProject 10 | Global 11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 12 | Debug|Any CPU = Debug|Any CPU 13 | Release|Any CPU = Release|Any CPU 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {3108AE4A-DE35-40AE-A449-1EFB9719367D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 17 | {3108AE4A-DE35-40AE-A449-1EFB9719367D}.Debug|Any CPU.Build.0 = Debug|Any CPU 18 | {3108AE4A-DE35-40AE-A449-1EFB9719367D}.Release|Any CPU.ActiveCfg = Release|Any CPU 19 | {3108AE4A-DE35-40AE-A449-1EFB9719367D}.Release|Any CPU.Build.0 = Release|Any CPU 20 | {FAC3FB6E-FAE8-42D1-B74E-6C7248A6F208}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 21 | {FAC3FB6E-FAE8-42D1-B74E-6C7248A6F208}.Debug|Any CPU.Build.0 = Debug|Any CPU 22 | {FAC3FB6E-FAE8-42D1-B74E-6C7248A6F208}.Release|Any CPU.ActiveCfg = Release|Any CPU 23 | {FAC3FB6E-FAE8-42D1-B74E-6C7248A6F208}.Release|Any CPU.Build.0 = Release|Any CPU 24 | EndGlobalSection 25 | GlobalSection(SolutionProperties) = preSolution 26 | HideSolutionNode = FALSE 27 | EndGlobalSection 28 | GlobalSection(ExtensibilityGlobals) = postSolution 29 | SolutionGuid = {791F4123-5722-4219-9EF1-7C8E2735582D} 30 | EndGlobalSection 31 | EndGlobal 32 | -------------------------------------------------------------------------------- /CSharpOsu/CSharpOsu.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netstandard2.0 5 | preview 6 | 7 | 8 | 9 | \bin\Debug\CSharpOsu.xml 10 | 1701;1702;1591 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /CSharpOsu/Converters/ApprovedConvert.cs: -------------------------------------------------------------------------------- 1 | using CSharpOsu.Util.Enums; 2 | using Newtonsoft.Json; 3 | using System; 4 | 5 | namespace CSharpOsu.Util.Converters 6 | { 7 | // Thanks to Game4all and his circles.NET project (https://github.com/Game4all/circles.NET) 8 | public class ApprovedConvert : JsonConverter 9 | { 10 | public ApprovedConvert() 11 | { 12 | } 13 | 14 | public override bool CanConvert(Type objectType) 15 | { 16 | throw new NotImplementedException(); 17 | } 18 | 19 | public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) => (ApprovedStatus)int.Parse((string)reader.Value); 20 | 21 | public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) 22 | { 23 | throw new NotImplementedException(); 24 | } 25 | } 26 | } -------------------------------------------------------------------------------- /CSharpOsu/Converters/BoolConvert.cs: -------------------------------------------------------------------------------- 1 | using Newtonsoft.Json; 2 | using System; 3 | 4 | namespace CSharpOsu.Util.Converters 5 | { 6 | // Thanks to Game4all and his circles.NET project (https://github.com/Game4all/circles.NET) 7 | internal class BoolConvert : JsonConverter 8 | { 9 | public BoolConvert() 10 | { 11 | } 12 | 13 | public override bool CanConvert(Type objectType) => true; 14 | 15 | public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) 16 | { 17 | var value = Convert.ToInt32(reader.Value); 18 | bool boolValue = value != 0; 19 | return boolValue; 20 | } 21 | 22 | public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) 23 | { 24 | throw new NotImplementedException(); 25 | } 26 | } 27 | } -------------------------------------------------------------------------------- /CSharpOsu/Converters/ModsConvert.cs: -------------------------------------------------------------------------------- 1 | using CSharpOsu.Util.Enums; 2 | using Newtonsoft.Json; 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Linq; 6 | 7 | namespace CSharpOsu.Util.Converters 8 | { 9 | // Thanks to Game4all and his circles.NET project (https://github.com/Game4all/circles.NET) 10 | public class ModsConvert : JsonConverter 11 | { 12 | public ModsConvert() 13 | { 14 | } 15 | 16 | public override bool CanConvert(Type objectType) 17 | { 18 | if (objectType == typeof(Mods[])) 19 | return true; 20 | else 21 | return false; 22 | } 23 | 24 | public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) 25 | { 26 | var encodedFlags = int.Parse((string)reader.Value); 27 | return GetUniqueFlags((Mods)encodedFlags); 28 | } 29 | 30 | public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) 31 | { 32 | throw new NotImplementedException(); 33 | } 34 | private Mods[] GetUniqueFlags(Mods flags) 35 | { 36 | ulong flag = 1; 37 | var mods = new List(); 38 | foreach (var value in System.Enum.GetValues(flags.GetType()).Cast()) 39 | { 40 | ulong bits = Convert.ToUInt64(value); 41 | while (flag < bits) 42 | { 43 | flag <<= 1; 44 | } 45 | 46 | if (flag == bits && flags.HasFlag(value)) 47 | { 48 | mods.Add(value); 49 | } 50 | } 51 | 52 | if (mods.Contains(Mods.DoubleTime) && mods.Contains(Mods.Nightcore)) 53 | { 54 | mods.RemoveAll((s) => s == Mods.DoubleTime || s == Mods.Nightcore); 55 | mods.Add(Mods.Nightcore); 56 | } 57 | if (mods.Contains(Mods.SuddenDeath) && mods.Contains(Mods.Perfect)) 58 | { 59 | mods.RemoveAll((s) => s == Mods.SuddenDeath || s == Mods.Perfect); 60 | mods.Add(Mods.Perfect); 61 | } 62 | 63 | return mods.ToArray(); 64 | } 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /CSharpOsu/Module/Model.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace CSharpOsu.Module 8 | { 9 | public interface Model 10 | { 11 | string error { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /CSharpOsu/Module/OsuBeatmap.cs: -------------------------------------------------------------------------------- 1 | using CSharpOsu.Util.Converters; 2 | using CSharpOsu.Util.Enums; 3 | using Newtonsoft.Json; 4 | using System; 5 | using System.Collections.Generic; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace CSharpOsu.Module 11 | { 12 | public class OsuBeatmap : Model 13 | { 14 | public long beatmapset_id { get; set; } 15 | public long beatmap_id { get; set; } 16 | [JsonConverter(typeof(ApprovedConvert))] 17 | public ApprovedStatus approved { get; set; } 18 | public int total_length { get; set; } 19 | public int hit_length { get; set; } 20 | /// 21 | /// This is the version documented from osu!api. 22 | /// 23 | [JsonProperty(PropertyName = "version")] 24 | public string difficulty { get; set; } 25 | [JsonProperty(PropertyName = "file_md5")] 26 | public string MD5 { get; set; } 27 | [JsonProperty(PropertyName = "diff_size")] 28 | public float CS { get; set; } 29 | [JsonProperty(PropertyName = "diff_overall")] 30 | public float OD { get; set; } 31 | [JsonProperty(PropertyName = "diff_approach")] 32 | public float AR { get; set; } 33 | [JsonProperty(PropertyName = "diff_drain")] 34 | public float HP { get; set; } 35 | public mode mode { get; set; } 36 | public DateTime? submit_date { get; set; } 37 | public DateTime? approved_date { get; set; } 38 | public DateTime last_update { get; set; } 39 | public string artist { get; set; } 40 | public string title { get; set; } 41 | public string creator { get; set; } 42 | public string creator_id { get; set; } 43 | public float bpm { get; set; } 44 | public string source { get; set; } 45 | public string tags { get; set; } 46 | public string genre_id { get; set; } 47 | public string language_id { get; set; } 48 | public int favourite_count { get; set; } 49 | public float rating { get; set; } 50 | public int playcount { get; set; } 51 | public int passcount { get; set; } 52 | public int? max_combo { get; set; } 53 | [JsonProperty(PropertyName = "difficultyrating")] 54 | public float StarRating { get; set; } 55 | [JsonProperty(PropertyName = "diff_aim")] 56 | public float? AimRating { get; set; } 57 | [JsonProperty(PropertyName = "diff_speed")] 58 | public float? SpeedRating { get; set; } 59 | [JsonProperty(PropertyName = "count_normal")] 60 | public int CountNormal { get; set; } 61 | [JsonProperty(PropertyName = "count_slider")] 62 | public int CountSlider { get; set; } 63 | [JsonProperty(PropertyName = "count_spinner")] 64 | public int CountSpinner { get; set; } 65 | [JsonProperty(PropertyName = "artist_unicode")] 66 | public string ArtistUnicode { get; set; } 67 | [JsonProperty(PropertyName = "title_unicode")] 68 | public string TitleUnicode { get; set; } 69 | [JsonConverter(typeof(BoolConvert))] 70 | [JsonProperty(PropertyName = "storyboard")] 71 | public bool HasStoryboard { get; set; } 72 | [JsonConverter(typeof(BoolConvert))] 73 | [JsonProperty(PropertyName = "video")] 74 | public bool HasVideo { get; set; } 75 | [JsonConverter(typeof(BoolConvert))] 76 | [JsonProperty(PropertyName = "download_unavailable")] 77 | public bool DownloadUnavailable { get; set; } 78 | [JsonConverter(typeof(BoolConvert))] 79 | [JsonProperty(PropertyName = "audio_unavailable")] 80 | public bool AudioUnavailable { get; set; } 81 | public string Packs { get; set; } 82 | public string thumbnail { get; set; } 83 | public string beatmapset_url { get; set; } 84 | public string beatmap_url { get; set; } 85 | public string download { get; set; } 86 | public string download_no_video { get; set; } 87 | public string osu_direct { get; set; } 88 | public string error { get; set; } 89 | } 90 | } 91 | -------------------------------------------------------------------------------- /CSharpOsu/Module/OsuMatch.cs: -------------------------------------------------------------------------------- 1 | using CSharpOsu.Util.Converters; 2 | using CSharpOsu.Util.Enums; 3 | using Newtonsoft.Json; 4 | using System; 5 | using System.Collections.Generic; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace CSharpOsu.Module 11 | { 12 | public class Match 13 | { 14 | public long match_id { get; set; } 15 | public string name { get; set; } 16 | public DateTime start_time { get; set; } 17 | public DateTime? end_time { get; set; } 18 | } 19 | 20 | public class Score 21 | { 22 | public short slot { get; set; } 23 | public short team { get; set; } 24 | public long user_id { get; set; } 25 | public int score { get; set; } 26 | public int maxcombo { get; set; } 27 | public string rank { get; set; } 28 | public long count50 { get; set; } 29 | public long count100 { get; set; } 30 | public long count300 { get; set; } 31 | public long countmiss { get; set; } 32 | public long countkatu { get; set; } 33 | public long countgeki { get; set; } 34 | [JsonConverter(typeof(BoolConvert))] 35 | public bool perfect { get; set; } 36 | [JsonConverter(typeof(BoolConvert))] 37 | public bool pass { get; set; } 38 | } 39 | 40 | public class Game 41 | { 42 | public long game_id { get; set; } 43 | public DateTime start_time { get; set; } 44 | public DateTime? end_time { get; set; } 45 | public long beatmap_id { get; set; } 46 | public mode play_mode { get; set; } 47 | public string match_type { get; set; } 48 | public string scoring_type { get; set; } 49 | public string team_type { get; set; } 50 | 51 | [JsonConverter(typeof(ModsConvert))] 52 | public Mods[] mods { get; set; } 53 | 54 | public List scores { get; set; } 55 | } 56 | 57 | public class OsuMatch : Model 58 | { 59 | public Match match { get; set; } 60 | public List games { get; set; } 61 | public string error { get; set; } 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /CSharpOsu/Module/OsuReplay.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace CSharpOsu.Module 8 | { 9 | public class OsuReplay: Model 10 | { 11 | public string content { get; set; } 12 | public string encoding { get; set; } 13 | public string error { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /CSharpOsu/Module/OsuScore.cs: -------------------------------------------------------------------------------- 1 | using CSharpOsu.Util.Converters; 2 | using CSharpOsu.Util.Enums; 3 | using Newtonsoft.Json; 4 | using System; 5 | using System.Collections.Generic; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace CSharpOsu.Module 11 | { 12 | public class OsuScore : Model 13 | { 14 | public long score_id { get; set; } 15 | public int score { get; set; } 16 | public string username { get; set; } 17 | public long count50 { get; set; } 18 | public long count100 { get; set; } 19 | public long count300 { get; set; } 20 | public long countmiss { get; set; } 21 | public short maxcombo { get; set; } 22 | public long countkatu { get; set; } 23 | public long countgeki { get; set; } 24 | [JsonConverter(typeof(BoolConvert))] 25 | public bool perfect { get; set; } 26 | 27 | [JsonConverter(converterType: typeof(ModsConvert))] 28 | public Mods[] enabled_mods { get; set; } 29 | 30 | public long user_id { get; set; } 31 | public DateTime date { get; set; } 32 | public string rank { get; set; } 33 | public float pp { get; set; } 34 | public string error { get; set; } 35 | } 36 | } 37 | 38 | -------------------------------------------------------------------------------- /CSharpOsu/Module/OsuUser.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace CSharpOsu.Module 8 | { 9 | public class Event 10 | { 11 | public string display_html { get; set; } 12 | public long? beatmap_id { get; set; } 13 | public long? beatmapset_id { get; set; } 14 | public DateTime date { get; set; } 15 | public short epicfactor { get; set; } 16 | } 17 | 18 | public class OsuUser : Model 19 | { 20 | public long user_id { get; set; } 21 | public string username { get; set; } 22 | public DateTime join_date { get; set; } 23 | public long count300 { get; set; } 24 | public long count100 { get; set; } 25 | public long count50 { get; set; } 26 | public long playcount { get; set; } 27 | public long ranked_score { get; set; } 28 | public long total_score { get; set; } 29 | public int pp_rank { get; set; } 30 | public float level { get; set; } 31 | public float pp_raw { get; set; } 32 | public float accuracy { get; set; } 33 | public int count_rank_ss { get; set; } 34 | public int count_rank_ssh { get; set; } 35 | public int count_rank_s { get; set; } 36 | public int count_rank_sh { get; set; } 37 | public int count_rank_a { get; set; } 38 | public string country { get; set; } 39 | public int total_seconds_played { get; set; } 40 | public int pp_country_rank { get; set; } 41 | public List events { get; set; } 42 | public string url { get; set; } 43 | public string image { get; set; } 44 | public string flag { get; set; } 45 | public string flag_old { get; set; } 46 | public string spectateUser { get; set; } 47 | public string error { get; set; } 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /CSharpOsu/Module/OsuUserBest.cs: -------------------------------------------------------------------------------- 1 | using CSharpOsu.Util.Converters; 2 | using CSharpOsu.Util.Enums; 3 | using Newtonsoft.Json; 4 | using System; 5 | using System.Collections.Generic; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace CSharpOsu.Module 11 | { 12 | public class OsuUserBest : Model 13 | { 14 | public long beatmap_id { get; set; } 15 | public int score { get; set; } 16 | public long maxcombo { get; set; } 17 | public long count50 { get; set; } 18 | public long count100 { get; set; } 19 | public long count300 { get; set; } 20 | public long countmiss { get; set; } 21 | public long countkatu { get; set; } 22 | public long countgeki { get; set; } 23 | [JsonConverter(typeof(BoolConvert))] 24 | public bool perfect { get; set; } 25 | 26 | [JsonConverter(typeof(ModsConvert))] 27 | public Mods[] enabled_mods { get; set; } 28 | 29 | public long user_id { get; set; } 30 | public DateTime date { get; set; } 31 | public string rank { get; set; } 32 | public float pp { get; set; } 33 | /// 34 | /// You will need math round to 2 decimals to get a fancy value. 35 | /// 36 | public float accuracy { get; set; } 37 | 38 | public string error { get; set; } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /CSharpOsu/Module/OsuUserRecent.cs: -------------------------------------------------------------------------------- 1 | using CSharpOsu.Util.Converters; 2 | using CSharpOsu.Util.Enums; 3 | using Newtonsoft.Json; 4 | using System; 5 | using System.Collections.Generic; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace CSharpOsu.Module 11 | { 12 | public class OsuUserRecent : Model 13 | { 14 | public long beatmap_id { get; set; } 15 | public int score { get; set; } 16 | public long maxcombo { get; set; } 17 | public long count50 { get; set; } 18 | public long count100 { get; set; } 19 | public long count300 { get; set; } 20 | public long countmiss { get; set; } 21 | public long countkatu { get; set; } 22 | public long countgeki { get; set; } 23 | [JsonConverter(typeof(BoolConvert))] 24 | public bool perfect { get; set; } 25 | 26 | [JsonConverter(typeof(ModsConvert))] 27 | public Mods[] enabled_mods { get; set; } 28 | 29 | public long user_id { get; set; } 30 | public DateTime date { get; set; } 31 | public string rank { get; set; } 32 | /// 33 | /// You will need math round to 2 decimals to get a fancy value. 34 | /// 35 | public float accuracy { get; set; } 36 | 37 | public string error { get; set; } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /CSharpOsu/Util/BinaryHandler.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Security.Cryptography; 6 | using System.Text; 7 | using System.Threading.Tasks; 8 | 9 | namespace CSharpOsu.Util.BinaryHandler 10 | { 11 | internal class BinHandler 12 | { 13 | BinaryWriter binWriter; 14 | 15 | public BinHandler(BinaryWriter _binWriter) 16 | { 17 | binWriter = _binWriter; 18 | } 19 | 20 | /// 21 | /// Binary String 22 | /// 23 | /// A string. 24 | public void writeString(string? str) 25 | { 26 | binWriter.Write((byte)0x0B); 27 | binWriter.Write(str); 28 | } 29 | 30 | /// 31 | /// Binary Byte 32 | /// 33 | /// A string. 34 | public void writeByte(string? bt) 35 | { 36 | binWriter.Write(byte.Parse(bt)); 37 | } 38 | 39 | /// 40 | /// Binary Short 41 | /// 42 | /// A short. 43 | public void writeShort(long? srt) 44 | { 45 | binWriter.Write(Convert.ToUInt16(srt)); 46 | } 47 | 48 | /// 49 | /// Binary Int 50 | /// 51 | /// A int. 52 | public void writeInteger(int? i) 53 | { 54 | binWriter.Write(Convert.ToUInt32(i)); 55 | } 56 | 57 | /// 58 | /// Binary Database Timestamp 59 | /// 60 | /// A DateTime format. 61 | public void writeDate(DateTime datestr) 62 | { 63 | // Weird string and timestamp manipulation. I have no clue how it works. 64 | // The credits for this one goes to omkelderman(https://github.com/omkelderman/osu-replay-downloader). 65 | 66 | var constant = 429.4967296; 67 | 68 | var temp1 = (GetTime(datestr) / 1000) + 62135596800; 69 | var temp2 = temp1 / constant; 70 | var high = Math.Round(temp2); 71 | var low = (temp2 - high) * constant * 10000000; 72 | byte[] toBytes2 = BitConverter.GetBytes(Convert.ToInt32(high)); 73 | byte[] toBytes1 = BitConverter.GetBytes(Convert.ToInt32(low)); 74 | 75 | 76 | binWriter.Write(toBytes1, 0, 4); 77 | binWriter.Write(toBytes2, 0, 4); 78 | } 79 | 80 | /// 81 | /// Unix Timestamp 82 | /// 83 | /// A DateTime format. 84 | /// 85 | private Int64 GetTime(DateTime date) 86 | { 87 | Int64 retval = 0; 88 | var st = new DateTime(1970, 1, 1); 89 | TimeSpan t = (date.ToUniversalTime() - st); 90 | retval = (Int64)(t.TotalMilliseconds); 91 | return retval; 92 | } 93 | 94 | /// 95 | /// Calculate MD5Hash 96 | /// 97 | /// String to encode. 98 | /// 99 | public string MD5Hash(string input) 100 | 101 | { 102 | MD5 md5 = System.Security.Cryptography.MD5.Create(); 103 | StringBuilder sb = new StringBuilder(); 104 | 105 | byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(input); 106 | byte[] hash = md5.ComputeHash(inputBytes); 107 | 108 | for (int i = 0; i < hash.Length; i++) 109 | { sb.Append(hash[i].ToString("X2")); } 110 | 111 | return sb.ToString().ToLower(); 112 | 113 | } 114 | } 115 | } 116 | -------------------------------------------------------------------------------- /CSharpOsu/Util/Enums.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace CSharpOsu.Util.Enums 8 | { 9 | public enum mode { osu, Taiko, CtB, osuMania } 10 | public enum conv { notIncluded, Included } 11 | 12 | [Flags] 13 | public enum Mods 14 | { 15 | None = 0, 16 | NoFail = 1, 17 | Easy = 2, 18 | TouchDevice = 4, 19 | Hidden = 8, 20 | HardRock = 16, 21 | SuddenDeath = 32, 22 | DoubleTime = 64, 23 | Relax = 128, 24 | HalfTime = 256, 25 | Nightcore = 512, 26 | Flashlight = 1024, 27 | Autoplay = 2048, 28 | SpunOut = 4096, 29 | Relax2 = 8192, 30 | Perfect = 16384, 31 | Key4 = 32768, 32 | Key5 = 65536, 33 | Key6 = 131072, 34 | Key7 = 262144, 35 | Key8 = 524288, 36 | FadeIn = 1048576, 37 | Random = 2097152, 38 | Cinema = 4194304, 39 | Target = 8388608, 40 | Key9 = 16777216, 41 | KeyCoop = 33554432, 42 | Key1 = 67108864, 43 | Key3 = 134217728, 44 | Key2 = 268435456, 45 | ScoreV2 = 536870912, 46 | LastMod = 1073741824, 47 | } 48 | public enum ApprovedStatus 49 | { 50 | Graveyarded = -2, 51 | Pending = -1, 52 | Ranked = 1, 53 | Approved = 2, 54 | Qualified = 3, 55 | Loved = 4, 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /CSharpOsu/Util/Strings.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using CSharpOsu.Util.Enums; 7 | 8 | namespace CSharpOsu.Util.Strings 9 | { 10 | internal class Strings 11 | { 12 | public string Key { get; internal set; } 13 | 14 | protected virtual string osuApiUrl => "https://osu.ppy.sh/api/"; 15 | public string osuDowload = "https://osu.ppy.sh/d/"; 16 | public string osuDirect = "osu://s/"; 17 | 18 | public string osuBeatmap = "get_beatmaps?"; 19 | public string osuScores = "get_scores?"; 20 | public string osuUser = "get_user?"; 21 | public string osuUserBest = "get_user_best?"; 22 | public string osuUserRecent = "get_user_recent?"; 23 | public string osuMatch = "get_match?"; 24 | public string osuReplay = "get_replay?"; 25 | 26 | public string Beatmap() { return osuApiUrl + osuBeatmap + "k=" + Key; } 27 | public string User(string id) { return osuApiUrl + osuUser + "k=" + Key + "&u=" + id; } 28 | public string Score(long beatmap) { return osuApiUrl + osuScores + "k=" + Key + "&b=" + beatmap; } 29 | public string User_Best(string user) { return osuApiUrl + osuUserBest + "k=" + Key + "&u=" + user; } 30 | public string User_Recent(string user) { return osuApiUrl + osuUserRecent + "k=" + Key + "&u=" + user; } 31 | public string Match(int match) { return osuApiUrl + osuMatch + "k=" + Key + "&mp=" + match; } 32 | public string Replay(mode mode, long beatmap, string user) { return osuApiUrl + osuReplay + "k=" + Key + "&m=" + (int)mode + "&b=" + beatmap + "&u=" + user; } 33 | 34 | // Thanks to Game4all and his circles.NET project (https://github.com/Game4all/circles.NET) 35 | // Not implemented yet. 36 | internal string CreateURL(string endpoint, params object[] queryStrings) 37 | { 38 | var sb = new StringBuilder(); 39 | sb.Append(osuApiUrl); 40 | sb.Append(endpoint); 41 | 42 | for (int i = 0; i < queryStrings.Length; i += 2) //query strings are given this way [0] = QueryStringName, [1] = QueryStringValue 43 | { 44 | if (i == 0) //first parameter should always be API key 45 | { 46 | sb.Append($"{queryStrings[i].ToString()}={queryStrings[i + 1].ToString()}"); 47 | continue; 48 | } 49 | 50 | if (queryStrings[i + 1] != null) //if the query string value is != null , let's add it to the url 51 | sb.Append($"&{queryStrings[i].ToString()}={queryStrings[i + 1].ToString()}"); 52 | } 53 | return sb.ToString(); 54 | } 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /CSharpOsu/Util/Utility.cs: -------------------------------------------------------------------------------- 1 | using CSharpOsu.Module; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Net; 6 | using System.Net.Http; 7 | using System.Web; 8 | using System.Text; 9 | using System.Threading.Tasks; 10 | using CSharpOsu.Util.Enums; 11 | using Newtonsoft.Json; 12 | 13 | namespace CSharpOsu.Util 14 | { 15 | internal class Utility 16 | { 17 | HttpClient client; 18 | private bool throwIfNull; 19 | 20 | public Utility(HttpClient? _client, bool _throwIfNull) { client = _client; throwIfNull = _throwIfNull; } 21 | public string GetUrl(string url) 22 | { 23 | try 24 | { 25 | var json = client.GetAsync(url).Result.Content.ReadAsStringAsync().Result; 26 | if (throwIfNull) 27 | if (json == "[]") { throw new Exception("No objects have been found for those arguments"); } 28 | return json; 29 | } 30 | catch (WebException ex) 31 | { 32 | throw new WebException(ex.Message); 33 | } 34 | } 35 | 36 | public void ErrorHandler(Model obj) { 37 | if (obj.error != null) 38 | { 39 | throw new Exception(obj.error); 40 | } 41 | } 42 | 43 | public void ErrorHandler(Model[] objs) 44 | { 45 | foreach (var obj in objs) 46 | { 47 | if (obj.error != null) 48 | { 49 | throw new Exception(obj.error); 50 | } 51 | } 52 | } 53 | 54 | public float accuracyCalculator(OsuBeatmap[] bt, long count50, long count100, long count300, long countmiss, long countkatu,long countgeki) 55 | { 56 | var mapMode = bt[0].mode; 57 | float totalPointsOfHits; 58 | float totalNumberOfHits; 59 | float accuracy; 60 | // Logical switch for every mode 61 | switch (mapMode) 62 | { 63 | case mode.osu: 64 | totalPointsOfHits = (count50) * 50 + (count100) * 100 + (count300) * 300; 65 | totalNumberOfHits = (countmiss) + (count50) + (count100) + (count300); 66 | 67 | accuracy = totalPointsOfHits / (totalNumberOfHits * 300); 68 | break; 69 | 70 | case mode.Taiko: 71 | totalPointsOfHits = ((count100) * 0.5f + (count300) * 1) * 300; 72 | totalNumberOfHits = (countmiss) + (count100) + (count300); 73 | 74 | accuracy = totalPointsOfHits / (totalNumberOfHits * 300); 75 | break; 76 | 77 | case mode.CtB: 78 | totalPointsOfHits = (count50 + count100 + count300); 79 | totalNumberOfHits = (countmiss) + (count50) + (count100) + (count300) + (countkatu); 80 | 81 | accuracy = totalPointsOfHits / totalNumberOfHits; 82 | break; 83 | 84 | case mode.osuMania: 85 | totalPointsOfHits = (count50) * 50 + (count100) * 100 + (countkatu) * 200 + (count300 + countgeki) * 300; 86 | totalNumberOfHits = (countmiss) + (count50) + (count100) + (countkatu) + (count300) + (countgeki); 87 | 88 | accuracy = totalPointsOfHits / (totalNumberOfHits * 300); 89 | break; 90 | 91 | default: 92 | accuracy = 0; 93 | break; 94 | } 95 | return (accuracy * 100); 96 | } 97 | } 98 | } 99 | -------------------------------------------------------------------------------- /Examples/Osu-Replay-Compiler/Osu-Replay-Compiler/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Examples/Osu-Replay-Compiler/Osu-Replay-Compiler/Osu-Replay-Compiler.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | PackageReference 6 | 7 | 8 | Debug 9 | AnyCPU 10 | {FAC3FB6E-FAE8-42D1-B74E-6C7248A6F208} 11 | Exe 12 | Osu_Replay_Compiler 13 | Osu-Replay-Compiler 14 | v4.6.1 15 | 512 16 | true 17 | 18 | 19 | 20 | AnyCPU 21 | true 22 | full 23 | false 24 | bin\Debug\ 25 | DEBUG;TRACE 26 | prompt 27 | 4 28 | 29 | 30 | AnyCPU 31 | pdbonly 32 | true 33 | bin\Release\ 34 | TRACE 35 | prompt 36 | 4 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | {3108ae4a-de35-40ae-a449-1efb9719367d} 58 | CSharpOsu 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /Examples/Osu-Replay-Compiler/Osu-Replay-Compiler/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using CSharpOsu; 3 | using System.IO; 4 | using System.Diagnostics; 5 | using CSharpOsu.Util.Enums; 6 | using System.Text; 7 | using System.Collections.Generic; 8 | 9 | namespace Osu_Replay_Compiler 10 | { 11 | class Program 12 | { 13 | public static void Main(string[] args) 14 | { 15 | string osukey = ""; 16 | try { 17 | osukey = File.ReadAllText(@"Osu.txt"); 18 | } 19 | catch { Console.WriteLine("API File not found!"); } 20 | 21 | if (osukey == "") 22 | { 23 | Console.WriteLine("API key not found!"); 24 | Console.Write("Enter API key: "); 25 | File.WriteAllText(@"Osu.txt", Console.ReadLine()); 26 | osukey = File.ReadAllText(@"Osu.txt"); 27 | } else{ Console.WriteLine("API Key found!"); } 28 | 29 | OsuClient Osu = new OsuClient(osukey); 30 | 31 | Console.WriteLine("0. Osu!"); 32 | Console.WriteLine("1. Taiko"); 33 | Console.WriteLine("2. CatchTheBeat"); 34 | Console.WriteLine("3. Osu!Mania"); 35 | Console.Write("Mode(int 0-3): "); 36 | mode _m =0; 37 | switch (Convert.ToInt32(Console.ReadLine())) 38 | { 39 | case 0: 40 | _m = mode.osu; 41 | break; 42 | case 1: 43 | _m = mode.Taiko; 44 | break; 45 | case 2: 46 | _m = mode.CtB; 47 | break; 48 | case 3: 49 | _m = mode.osuMania; 50 | break; 51 | } 52 | 53 | Console.Write("Beatmap_id(/b/): "); 54 | long _b = Convert.ToInt64(Console.ReadLine()); 55 | 56 | Console.Write("User(/u/): "); 57 | string _u = Console.ReadLine(); 58 | 59 | List mods=new List(); 60 | Console.Write("Mods(Eg: Hidden,DoubleTime): "); 61 | var cacheRead = Console.ReadLine(); 62 | if (cacheRead != null) 63 | { 64 | var modsStrings =cacheRead.Split(','); 65 | foreach (var mod in modsStrings) 66 | { 67 | mods.Add((Mods)Enum.Parse(typeof(Mods),mod)); 68 | } 69 | } 70 | 71 | Console.WriteLine("[WARNING! If the file already exist it will be overwritten.]"); 72 | Console.Write("File name(without extension): "); 73 | string y = Console.ReadLine(); 74 | 75 | File.WriteAllBytes(@"" + y + ".osr", Osu.GetReplay(_m, _u,_b,Osu.modsCalculator(mods))); 76 | 77 | openreplay(y); 78 | } 79 | 80 | public static void openreplay(string y) 81 | { 82 | Console.Write("Open replay?[Y/N]: "); 83 | string x = Console.ReadLine(); 84 | if (x == "Y" || x == "y") 85 | { 86 | Process.Start(@"" + y + ".osr"); 87 | } 88 | else if (x == "N"|| x == "n") 89 | { 90 | Environment.Exit(0x12); 91 | } 92 | else 93 | { 94 | openreplay(y); 95 | } 96 | } 97 | } 98 | } 99 | 100 | -------------------------------------------------------------------------------- /Examples/Osu-Replay-Compiler/Osu-Replay-Compiler/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("Osu-Replay-Compiler")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("Osu-Replay-Compiler")] 13 | [assembly: AssemblyCopyright("Copyright © 2017")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("fac3fb6e-fae8-42d1-b74e-6c7248a6f208")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Xferno2 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | # CSharpOsu [![NuGet](https://img.shields.io/nuget/dt/CSharpOSU.svg)]() [![CodeFactor](https://www.codefactor.io/repository/github/xferno2/csharposu/badge)](https://www.codefactor.io/repository/github/xferno2/csharposu) 3 | C# library for [osu!api](https://github.com/ppy/osu-api/wiki) 4 | using [Newtonsoft.Json](https://github.com/JamesNK/Newtonsoft.Json) project. This library is CLS Compilant. 5 | 6 | ## Nuget [![NuGet](https://img.shields.io/nuget/v/CSharpOsu.svg)](https://www.nuget.org/packages/CSharpOSU) 7 | [![Nuget](https://i.gyazo.com/b01edf11d69900d707d5fed3cad5081f.png)](https://www.nuget.org/packages/CSharpOSU) 8 | 9 | ### Documentation [here](https://xferno2.github.io/CSharpOsu/). 10 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-cayman -------------------------------------------------------------------------------- /docs/SearchHelp.inc.php: -------------------------------------------------------------------------------- 1 | filename = $file; 13 | $this->pageTitle = $title; 14 | $this->rank = $rank; 15 | } 16 | } 17 | 18 | 19 | /// 20 | /// Split the search text up into keywords 21 | /// 22 | /// The keywords to parse 23 | /// A list containing the words for which to search 24 | function ParseKeywords($keywords) 25 | { 26 | $keywordList = array(); 27 | $words = preg_split("/[^\w]+/", $keywords); 28 | 29 | foreach($words as $word) 30 | { 31 | $checkWord = strtolower($word); 32 | $first = substr($checkWord, 0, 1); 33 | if(strlen($checkWord) > 2 && !ctype_digit($first) && !in_array($checkWord, $keywordList)) 34 | { 35 | array_push($keywordList, $checkWord); 36 | } 37 | } 38 | 39 | return $keywordList; 40 | } 41 | 42 | 43 | /// 44 | /// Search for the specified keywords and return the results as a block of 45 | /// HTML. 46 | /// 47 | /// The keywords for which to search 48 | /// The file list 49 | /// The dictionary used to find the words 50 | /// True to sort by title, false to sort by 51 | /// ranking 52 | /// A block of HTML representing the search results. 53 | function Search($keywords, $fileInfo, $wordDictionary, $sortByTitle) 54 | { 55 | $sb = "
    "; 56 | $matches = array(); 57 | $matchingFileIndices = array(); 58 | $rankings = array(); 59 | 60 | $isFirst = true; 61 | 62 | foreach($keywords as $word) 63 | { 64 | if (!array_key_exists($word, $wordDictionary)) 65 | { 66 | return "Nothing found"; 67 | } 68 | $occurrences = $wordDictionary[$word]; 69 | 70 | $matches[$word] = $occurrences; 71 | $occurrenceIndices = array(); 72 | 73 | // Get a list of the file indices for this match 74 | foreach($occurrences as $entry) 75 | array_push($occurrenceIndices, ($entry >> 16)); 76 | 77 | if($isFirst) 78 | { 79 | $isFirst = false; 80 | foreach($occurrenceIndices as $i) 81 | { 82 | array_push($matchingFileIndices, $i); 83 | } 84 | } 85 | else 86 | { 87 | // After the first match, remove files that do not appear for 88 | // all found keywords. 89 | for($idx = 0; $idx < count($matchingFileIndices); $idx++) 90 | { 91 | if (!in_array($matchingFileIndices[$idx], $occurrenceIndices)) 92 | { 93 | array_splice($matchingFileIndices, $idx, 1); 94 | $idx--; 95 | } 96 | } 97 | } 98 | } 99 | 100 | if(count($matchingFileIndices) == 0) 101 | { 102 | return "Nothing found"; 103 | } 104 | 105 | // Rank the files based on the number of times the words occurs 106 | foreach($matchingFileIndices as $index) 107 | { 108 | // Split out the title, filename, and word count 109 | $fileIndex = explode("\x00", $fileInfo[$index]); 110 | 111 | $title = $fileIndex[0]; 112 | $filename = $fileIndex[1]; 113 | $wordCount = intval($fileIndex[2]); 114 | $matchCount = 0; 115 | 116 | foreach($keywords as $words) 117 | { 118 | $occurrences = $matches[$word]; 119 | 120 | foreach($occurrences as $entry) 121 | { 122 | if(($entry >> 16) == $index) 123 | $matchCount += $entry & 0xFFFF; 124 | } 125 | } 126 | 127 | $r = new Ranking($filename, $title, $matchCount * 1000 / $wordCount); 128 | array_push($rankings, $r); 129 | 130 | if(count($rankings) > 99) 131 | break; 132 | } 133 | 134 | // Sort by rank in descending order or by page title in ascending order 135 | if($sortByTitle) 136 | { 137 | usort($rankings, "cmprankbytitle"); 138 | } 139 | else 140 | { 141 | usort($rankings, "cmprank"); 142 | } 143 | 144 | // Format the file list and return the results 145 | foreach($rankings as $r) 146 | { 147 | $f = $r->filename; 148 | $t = $r->pageTitle; 149 | $sb .= "
  1. $t
  2. "; 150 | } 151 | 152 | $sb .= "rank - $x->rank; 166 | } 167 | 168 | function cmprankbytitle($x, $y) 169 | { 170 | return strcmp($x->pageTitle, $y->pageTitle); 171 | } 172 | 173 | ?> 174 | -------------------------------------------------------------------------------- /docs/SearchHelp.php: -------------------------------------------------------------------------------- 1 |  14 | Nothing found 15 | $val) 48 | { 49 | $wordDictionary[$ftiWord] = $val; 50 | } 51 | } 52 | } 53 | } 54 | 55 | // Perform the search and return the results as a block of HTML 56 | $results = Search($keywords, $fileList, $wordDictionary, $sortByTitle); 57 | echo $results; 58 | ?> -------------------------------------------------------------------------------- /docs/Web.Config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /docs/fti/FTI_100.json: -------------------------------------------------------------------------------- 1 | {"datetime":[1966087,2097159,5963783,6094855,7340039,8060935,9043973,9109511,10420229,11403271,11665414,12451847,13959175,14811143,16318471,18677767],"defaults":[589826,2818049,7405570,9043969,10420225,14090242,14680065],"downloading":[18022401],"download_no_video":[786433,9633798,11927553],"description":[524290,720897,786434,983041,1310722,1638402,2293761,2555907,2621441,2686977,2752515,3211265,3342339,3866625,3997697,4063233,4718593,4849665,5046273,5373953,5636097,5701633,6029313,6160385,6553602,6684674,6946818,7012353,7274497,7995395,8257538,8323074,8585217,10092545,10158081,10289153,10354689,10485761,10813441,11272193,11534337,11927553,12189697,12976130,13697025,14155777,14483457,14548993,15073281,15990785,16056324,16121858,16711681,16777217,17563649,18219010,18284546,18743298],"download":[786433,11927553,18808838],"days":[9043969],"datestr":[11665413],"database":[6684673,10158081,11665409],"determine":[10420225],"documentation":[131073,196609,262145,327681,393217,458755,524289,786433,851974,917505,1048577,1114113,1179649,1245185,1310721,1376257,1441795,1507329,1572865,1638401,1703937,1769473,1835013,1900545,1966081,2031618,2097153,2162689,2228225,2424833,2490369,2555905,2752513,2883585,2949121,3014657,3080193,3145729,3211265,3276801,3342337,3407873,3473409,3538945,3604481,3670017,3735558,3801089,3932161,3997697,4128769,4194305,4259843,4456449,4587521,4653057,4718593,4980737,5111809,5177345,5242881,5308417,5373953,5439489,5505025,5767169,5832705,5898241,5963777,6094849,6160385,6225921,6291458,6356993,6422529,6488067,6553601,6619137,6684673,6750209,6815745,6946817,7077889,7143425,7208961,7340033,7471105,7536643,7667713,7798785,7864321,7929857,7995393,8060929,8126465,8192001,8257537,8323073,8388609,8454145,8519681,8650758,8716289,8781825,8978433,9109505,9175041,9240577,9306113,9371649,9502721,9568257,9633793,9699331,9764865,9830401,9895937,9961474,10027009,10092545,10223617,10354689,10551297,10616833,10747905,10878977,11010049,11075585,11141121,11206659,11337729,11403265,11468801,11599873,11730945,11796481,11862017,11993091,12058625,12124161,12189697,12255233,12320769,12386305,12451841,12582913,12648452,12713985,12779521,12845058,12910593,12976129,13041665,13107201,13172737,13238273,13303809,13369345,13434889,13500417,13565953,13631491,13762561,13828097,13959169,14024705,14155777,14221313,14286849,14352385,14614529,14745601,14811137,14942209,15007745,15073281,15138817,15204353,15269889,15335428,15400961,15466497,15532035,15663105,15728641,15794177,15859713,16056321,16121857,16187393,16252929,16318465,16384001,16449537,16515073,16580609,16646145,16711681,16777217,16842753,16908289,16973825,17039361,17104900,17235969,17301505,17367044,17432577,17498113,17629185,17760257,17825793,17891329,18153473,18219009,18284545,18350081,18415617,18546689,18677761,18743297,18808833,18874369],"dll":[131073,196609,262145,327681,393217,458753,524289,589825,655361,786433,851969,917505,1048577,1114113,1179649,1245185,1310721,1376257,1441793,1507329,1572865,1638401,1703937,1769473,1835009,1900545,1966081,2031617,2097153,2162689,2228225,2359297,2424833,2490369,2555905,2752513,2818049,2883585,2949121,3014657,3080193,3145729,3211265,3276801,3342337,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3932161,3997697,4128769,4194305,4259841,4325377,4390913,4456449,4521985,4587521,4653057,4915201,4980737,5111809,5177345,5242881,5308417,5439489,5505025,5570561,5767169,5832705,5898241,5963777,6094849,6225921,6291457,6356993,6422529,6488065,6553601,6619137,6684673,6750209,6815745,6881281,6946817,7077889,7143425,7208961,7340033,7405569,7471105,7536641,7602177,7667713,7798785,7733249,7864321,7929857,7995393,8060929,8126465,8192001,8257537,8323073,8388609,8454145,8519681,8650753,8716289,8781825,8847361,8912897,8978433,9043969,9109505,9175041,9240577,9306113,9371649,9437185,9502721,9568257,9633793,9699329,9764865,9830401,9895937,9961473,10027009,10223617,10420225,10551297,10616833,10682369,10747905,10878977,10944513,11010049,11075585,11141121,11206657,11337729,11403265,11468801,11599873,11665409,11730945,11796481,11862017,11993089,12058625,12124161,12189697,12255233,12320769,12386305,12451841,12517377,12582913,12648449,12713985,12779521,12845057,12910593,12976129,13041665,13107201,13172737,13238273,13303809,13369345,13434881,13500417,13565953,13631489,13762561,13828097,13893633,13959169,14024705,14090241,14221313,14286849,14352385,14417921,14614529,14680065,14745601,14811137,14876673,14942209,15007745,15073281,15138817,15204353,15269889,15335425,15400961,15466497,15532033,15597569,15663105,15728641,15794177,15859713,15925249,16056321,16121857,16187393,16252929,16318465,16384001,16449537,16515073,16580609,16646145,16711681,16842753,16908289,16973825,17039361,17104897,17170433,17235969,17301505,17367041,17432577,17498113,17629185,17694721,17760257,17825793,17891329,18153473,18219009,18350081,18415617,18481153,18546689,18612225,18677761,18743297,18808833,18874369],"difficulty":[786433,7733253,10420225,11927553],"display_html":[4849665,5505030,12976129],"default":[589825,1,7405569,9043970,10420228,14090241,14680066],"data":[4325377],"doubletime":[3997697],"decimals":[5636097,11272193,14417921,14876673,18219009,18743297],"date":[524289,2097157,4849665,5636097,5963782,9043969,10420226,11272193,11403270,12451846,12976129,14811142,17563649,18219009,18743297],"documented":[786433,7733249,11927553],"defaultarg":[589828,2818049,7405570,9043970,10420232,14090242,14680066]} -------------------------------------------------------------------------------- /docs/fti/FTI_101.json: -------------------------------------------------------------------------------- 1 | {"encoding":[1900550,6946817,13697025],"existingvalue":[851975,3735559,8650759],"events":[720897,8257537,13565958],"enabled_mods":[524289,5636097,7798790,11272193,14942214,16842758,17563649,18219009,18743297],"encode":[1245185],"enumeration":[3211266,3997698,4718593,15073282,16711682],"enumerations":[4718593],"event":[4849667,5505027,8847366,9043969,12255235,12451843,12976138,13565959,16515075,17235971,18284545],"error":[524289,720897,786433,1310721,1572870,2162696,4128776,5636097,6225928,6815752,6946817,8257537,10027016,10813441,11272193,11796488,11927553,12189697,13369352,13697025,14548993,14680065,17563649,17956866,18219009,18743297],"endpoint":[17104902],"effect":[10420225],"epicfactor":[4849665,12976129,17235974],"easy":[3997697],"exposes":[524289,720897,786433,983041,1310721,1638401,2293761,2555905,2621441,2686977,2752513,3342337,4063233,4849665,5636097,5701633,6029313,6553601,6684673,6946817,7012353,7995393,8257537,8323073,8585217,10158081,10289153,10485761,10813441,11272193,11534337,11927553,12189697,12976129,13697025,14483457,14548993,15990785,16056321,16121857,17563649,18219009,18743297],"enum":[3211266,3997698,15073282,16711682],"errorhandler":[2031624,2555906,3866627,9961480,10289154],"enums":[1835014,2818049,3211267,3997699,4325377,4718594,10092545,11993092,15073283,16711683],"end":[524289,786433,1310721,1638401,2555905,2752513,3342337,6553601,6684673,6946817,7995393,8257537,8323073,12189697,12976129,16056321,16121857,18219009,18743297],"example":[10420225],"end_time":[2621441,6553601,8060934,8323073,11534337,16318470],"entered":[18087937]} -------------------------------------------------------------------------------- /docs/fti/FTI_102.json: -------------------------------------------------------------------------------- 1 | {"follow":[1],"function":[458753,589825,851969,1245185,1441793,1835009,2097153,2818049,3735553,4259841,4325377,6291457,6488065,7405569,7536641,8650753,9043969,9699329,10420225,10944513,11206657,11993089,13434881,13631489,14090241,15532033,17104897,17694721],"following":[524289,720897,786433,983041,1310721,1638401,2293761,2555905,2621441,2686977,2752513,3342337,4063233,4849665,5636097,5701633,6029313,6553601,6684673,6946817,7012353,7995393,8257537,8323073,8585217,10158081,10289153,10485761,10813441,11272193,11534337,11927553,12189697,12976129,13697025,14483457,14548993,15990785,16056321,16121857,17563649,18219009,18743297],"field":[4194306,6619138,7471106,11862018,13041666,14352386,14614530,15466498,16187394,16908290],"flag":[720897,8257537,8978438],"float":[196612,3014660,3145732,3604484,4980740,8454148,9240580,9568260,10551300,12386308,13172740,13434882,14024708,14417924,14876676,15859716,18350084],"fields":[2555905,7274498,14483458,16056321],"flashlight":[3997697],"format":[2097153,11665409],"first":[18022401],"fancy":[5636097,11272193,14417921,14876673,18219009,18743297],"false":[14680069],"flagsattribute":[3997700],"fetch":[589825,4325377,7405569,9043969,10420225,14090241,17694721],"flags":[11993094],"file":[2818050,5046273,10944513,15990785,16121857],"favourite_count":[786433,6422534,11927553],"flag_old":[720897,8257537,18153478],"friend":[327681,2555905,2752513,6684673,16056321,17104897],"fadein":[3997697],"float32":[196609,3014657,3145729,3604481,4980737,8454145,9240577,9568257,10551297,12386305,13172737,13434881,14024705,14417921,14876673,15859713,18350081]} -------------------------------------------------------------------------------- /docs/fti/FTI_103.json: -------------------------------------------------------------------------------- 1 | {"games":[1310721,11141126,14548993],"graveyarded":[16711681],"getuniqueflags":[3342337,5701633,11993096],"github":[589825,2818049,10944513],"generic":[10944513],"getreplay":[2818054,4325382,5046275,15990786,16121858],"genre_id":[786433,5308422,11927553],"getting":[18022401],"geturl":[1441800,2555905,10289153],"getscore":[589829,15990785,16121857],"gettime":[2097158,6684673,10158081],"game":[655366,2424835,2490371,2883587,3801091,5767171,6553610,7340035,8060931,11141127,11534339,11730947,13500419,18284545,18415619],"getuserbest":[14090245,15990785,16121857],"gets":[2293762,2752514,3342338,7995394,8585218,10485762],"getuser":[9043973,15990785,16121857],"game_id":[6553601,11534337,13500422],"getuserrecent":[7405573,15990785,16121857],"getbeatmap":[10420229,15990785,16121857],"getmatch":[15990785,16121857,17694725],"general":[17956865]} -------------------------------------------------------------------------------- /docs/fti/FTI_104.json: -------------------------------------------------------------------------------- 1 | {"hit_length":[786433,1048582,11927553],"hidden":[3997697],"https":[589825,2818049,10944513],"hash":[10420227],"halftime":[3997697],"hierarchy":[524289,786433,1310721,1638401,2555905,2752513,3342337,6553601,6684673,6946817,7995393,8257537,8323073,12976129,16056321,16121857,18219009,18743297],"httpclient":[12845063,14680078],"http":[12845059,14680065],"hardrock":[3997697],"hashes":[10420225]} -------------------------------------------------------------------------------- /docs/fti/FTI_105.json: -------------------------------------------------------------------------------- 1 | {"int32":[131073,393217,589825,917505,1048577,1703937,1769473,2949121,3932161,4456449,4587521,4653057,6422529,6488068,7405569,8126465,8519681,9437185,10420225,11010049,13303809,14090241,15204353,17694721,17760257,17891329],"introduction":[4784129,18022401],"int64":[262146,458757,589828,1507330,1835015,2097154,2818054,3080194,3473410,3670018,4325382,5046276,5111810,5177346,5242882,5767170,5898242,6356994,7208962,7667714,7864322,8192002,8388610,9175042,9371650,9502722,9764866,9830402,9895938,10420226,10616834,10747906,10944515,11075586,11337730,11468802,11599874,12124162,12255234,12320770,12713986,12779522,13434946,13500418,13762562,13828098,14745602,15007746,15400962,15794178,15925250,15990789,16121861,16252930,16384002,16449538,16515074,17432578,17498114,17825794],"input":[1245189],"interfaces":[18284545],"int":[131077,393221,589827,917509,1048581,1703941,1769477,2949125,3932165,4456453,4587525,4653061,6422533,6488067,6684673,7405571,8126469,8519685,9437189,10158081,10420227,11010053,13303813,14090243,15204357,17694723,17760261,17891333],"instance":[524289,655361,786433,1310721,1638401,2359297,2555905,2752513,3342337,4390913,4521985,4915201,5570561,6553601,6684673,6881281,6946817,7602177,7995393,8257537,8323073,8847361,10420225,10682369,12517377,12845057,12976129,13893633,15597569,16056321,16580609,17170433,18219009,18481153,18743297],"initializes":[524289,655361,786433,1310721,1638401,2359297,2555905,2752513,3342337,4390913,4521985,4915201,5570561,6553601,6684673,6881281,6946817,7602177,7995393,8257537,8323073,8847361,10682369,12517377,12845057,12976129,13893633,15597569,16056321,16580609,17170433,18219009,18481153,18743297],"internal":[327683,2555906,2752514,6684674,14680065,16056322,17104899],"informations":[589825,4325377,5046273,7405569,9043969,14090241,15990790,16121862,17694721],"information":[589826,7405569,10420225,14090241,15990785,16121857,17694721],"inheritance":[524289,786433,1310721,1638401,2555905,2752513,3342337,6553601,6684673,6946817,7995393,8257537,8323073,12976129,16056321,16121857,18219009,18743297],"int16":[3407874,12910594,17235970,17301506],"inherited":[2293762,2752514,3342338,7995394,8585218,10485762],"integer":[131073,393217,589825,917505,1048577,1703937,1769473,2949121,3932161,4456449,4587521,4653057,6422529,6488065,7405569,8126465,8519681,9437185,10420225,11010049,13303809,14090241,15204353,17694721,17760257,17891329],"inherits":[2752513,3342337,7995393],"interface":[524289,786433,1310721,1572865,6946817,8257537,10813441,12189701,18219009,18284545,18743297],"inherit":[2752513,3342337,7995393],"indicating":[2293762,2752514,3342338,7995394,8585218,10485762],"included":[10420227,15073281],"image":[720897,5832710,8257537],"implements":[524289,786433,1310721,2162689,4128769,6225921,6815745,6946817,8257537,10027009,11796481,13369345,18219009,18743297],"independently":[10420225]} -------------------------------------------------------------------------------- /docs/fti/FTI_106.json: -------------------------------------------------------------------------------- 1 | {"jsonconverter":[2293764,2752524,3342348,5701635,6029315,7012355,7995404,8585220,10485764],"join_date":[720897,6094854,8257537],"json":[851980,2293762,2752514,3342338,3735564,7995394,8585218,8650764,10485762,12648456,15335432,17367048],"jsonserializer":[851980,2752514,3342338,3735564,5701634,6029314,7012354,7995394,8650764,12648458,15335434,17367050],"jsonwriter":[2752513,3342337,5701633,6029313,7012353,7995393,12648458,15335434,17367050],"jsonreader":[851980,2752513,3342337,3735564,5701633,6029313,7012353,7995393,8650764]} -------------------------------------------------------------------------------- /docs/fti/FTI_107.json: -------------------------------------------------------------------------------- 1 | {"key8":[3997697],"key9":[3997697],"keycoop":[3997697],"key":[327686,2686977,14680071,16056321,16121857],"key1":[3997697],"key2":[3997697],"key3":[3997697],"key4":[3997697],"key5":[3997697],"key6":[3997697],"key7":[3997697]} -------------------------------------------------------------------------------- /docs/fti/FTI_108.json: -------------------------------------------------------------------------------- 1 | {"lobby":[15990785,16121857,17694722],"library":[18022402],"lastmod":[3997697],"logical":[10420225],"locate":[18087937],"list":[2424839,3866625,5046273,10944518,11141127,13565959],"level":[720897,3604486,8257537],"let":[589828,2818049,7405570,9043970,10420232,14090242,14680066],"long":[262152,458756,589832,1507336,1835012,2097156,2818056,3080200,3473416,3670024,4325384,5111816,5177352,5242888,5767176,5898248,6357000,7208968,7667720,7864328,8192008,8388616,9175048,9371656,9502728,9764872,9830408,9895944,10420228,10616840,10747912,10944516,11075592,11337736,11468808,11599880,12124168,12255240,12320776,12713992,12779528,13434904,13500424,13762568,13828104,14745608,15007752,15400968,15794184,15925252,16252936,16384008,16449544,16515080,17432584,17498120,17825800],"looking":[18087937],"language_id":[786433,11927553,12582918],"link":[1],"load":[17956865],"longer":[18087937],"loved":[16711681],"last_update":[786433,11927553,18677766]} -------------------------------------------------------------------------------- /docs/fti/FTI_110.json: -------------------------------------------------------------------------------- 1 | {"nullable":[589839,1966087,2818054,4325382,4980743,5046274,7405578,8060935,9043978,9109511,9437189,10420249,12386311,13303815,14090250,15925253,15990786,16121858,16318471],"needed":[2818049,5046273,15990785,16121857],"number":[9043969],"notincluded":[15073281],"nullptr":[589828,2818049,7405570,9043970,10420231,14090242,14680065],"nightcore":[3997697],"namespaces":[10092545],"net":[12845059,14680065],"namespace":[131074,196610,262146,327682,393218,458754,524290,589826,655362,720897,786434,851970,917506,1048578,983041,1114114,1179650,1245186,1310722,1376258,1441794,1507330,1572866,1638402,1703938,1769474,1835010,1900546,1966082,2031618,2097154,2162690,2228226,2293761,2359298,2424834,2490370,2555906,2621441,2686977,2752514,2818050,2883586,2949122,3014658,3080194,3145730,3211266,3276802,3342338,3407874,3473410,3538946,3604482,3670018,3735554,3801090,3866625,3932162,3997698,4063233,4128770,4194306,4259842,4325378,4390914,4456450,4521986,4587522,4653058,4718593,4849665,4915202,4980738,5046273,5111810,5177346,5242882,5308418,5373953,5439490,5505026,5570562,5636097,5701633,5767170,5832706,5898242,5963778,6029313,6094850,6160385,6225922,6291458,6356994,6422530,6488066,6553602,6619138,6684674,6750210,6815746,6881282,6946818,7012353,7077890,7143426,7208962,7274497,7340034,7405570,7471106,7536642,7602178,7667714,7798786,7733250,7864322,7929858,7995394,8060930,8126466,8192002,8257538,8323074,8388610,8454146,8519682,8585217,8650754,8716290,8781826,8847362,8912898,8978434,9043970,9109506,9175042,9240578,9306114,9371650,9437186,9502722,9568258,9633794,9699330,9764866,9830402,9895938,9961474,10027010,10092545,10158081,10223618,10289153,10354689,10420226,10485761,10551298,10616834,10682370,10747906,10813441,10878978,10944514,11010050,11075586,11141122,11206658,11272193,11337730,11403266,11468802,11534337,11599874,11665410,11730946,11796482,11862018,11927553,11993090,12058626,12124162,12189698,12255234,12320770,12386306,12451842,12517378,12582914,12648450,12713986,12779522,12845058,12910594,12976130,13041666,13107202,13172738,13238274,13303810,13369346,13434882,13500418,13565954,13631490,13697025,13762562,13828098,13893634,13959170,14024706,14090242,14155777,14221314,14286850,14352386,14417922,14483457,14548993,14614530,14680066,14745602,14811138,14876674,14942210,15007746,15073282,15138818,15204354,15269890,15335426,15400962,15466498,15532034,15597570,15663106,15728642,15794178,15859714,15925250,15990785,16056322,16121858,16187394,16252930,16318466,16384002,16449538,16515074,16580610,16646146,16711682,16777217,16842754,16908290,16973826,17039362,17104898,17170434,17235970,17301506,17367042,17432578,17498114,17563649,17629186,17694722,17760258,17825794,17891330,18153474,18219010,18284545,18350082,18415618,18481154,18546690,18612226,18677762,18743298,18808834,18874370],"newtonsoft":[851980,3735564,8650764,12648456,15335432,17367048],"null":[589832,2818050,7405572,9043972,10420238,14090244,14680068],"need":[5636097,11272193,14417921,14876673,18219009,18743297],"nofail":[3997697],"new":[524289,655363,786433,1310721,1638401,2359299,2555905,2752513,3342337,4390915,4521987,4915203,5570563,6553601,6684673,6881283,6946817,7602179,7995393,8257537,8323073,8847363,10682371,12517379,12845059,12976129,13893635,14680066,15597571,16056321,16580611,17170435,18219009,18481155,18743297],"nuget":[18022401]} -------------------------------------------------------------------------------- /docs/fti/FTI_111.json: -------------------------------------------------------------------------------- 1 | {"object":[524289,786433,851986,1310721,1638401,2555905,2752515,3342339,3735570,5701634,6029314,6553601,6684673,6946817,7012354,7995395,8257537,8323073,8650770,12648458,12976129,15335434,16056321,16121857,17104905,17367050,18219009,18743297],"objects":[14680065],"osuapiurl":[2686977,16056321,18874375],"occurred":[17956865],"optional":[589833,2818050,4784129,7405573,9043974,10420244,14090245,14680068],"osubeatmap":[786442,917507,1048579,1966083,2162691,2949123,3014659,3276803,3670019,4194310,4980739,5111811,5308419,6422531,7143427,7733250,7929859,8454147,9109507,9240579,9306115,9568259,9633795,10420229,10551299,10878979,11927555,12058627,12386307,12582915,13107203,13172739,13238275,13303811,13434894,14024707,14286851,14483457,15138819,15728643,16056321,16973827,17629187,17760259,18284545,18481158,18677763,18808835],"osu_direct":[786433,11927553,15728646],"osuuserbest":[1769475,2359302,3145731,9371651,9830403,11075587,11272195,11599875,13369347,13828099,14090245,14483457,14614534,14811139,14876674,14942211,15663107,16056321,16252931,16646147,17432579,17498115,17825795,18284545,18743306],"overrides":[851969,2752515,3342339,3735553,5701635,6029315,7012355,7995395,8650753,9699329,11206657,12648449,13631489,15335425,17367041],"osuclient":[589826,2818050,4325378,5046274,7405570,9043970,10420226,10944514,14090242,14680069,15990787,16121865,16777217,17694722],"one":[4784129],"osudowload":[14483457,16056321,16187398],"overload":[2031617,2818049,3866625,4325377,5046273,9961473],"osudirect":[6619142,14483457,16056321],"osuuser":[131075,196611,262147,393219,720899,1114115,1507331,1703939,2228227,3538947,3604483,3932163,4456451,4521990,4653059,5832707,6094851,6356995,6815747,8126467,8257546,8978435,9043973,9502723,9895939,10223619,12713987,13565955,14352390,14483457,15400963,16056321,17891331,18153475,18284545,18350083],"osuuserrecent":[5242883,5439491,5636099,5898243,5963779,6225923,7077891,7208963,7405573,7602182,8192003,8519683,10616835,11468803,11862022,14417922,14483457,14745603,15007747,16056321,16384003,16842755,18219018,18284545],"obj":[2031622],"osr":[2818050,5046273,10420225,10944513,15990785,16121857],"override":[851971,2162689,3735555,4128769,6225921,6815745,8650755,9699331,10027009,11206659,11796481,12648451,13369345,13631491,15335427,17367043,18874369],"overridable":[18874369],"objs":[9961478],"osureplay":[1900547,4325381,6946826,10027011,13041670,13697027,13893638,14483457,15269891,16056321,18284545],"osuscore":[524298,589829,1376259,3473411,4390918,5177347,6750211,7798787,8716291,9764867,11010051,11337731,11403267,11796483,12320771,12779523,12910595,13762563,15794179,15859715,17563651,18284545],"objecttype":[851975,3735559,8650759,9699335,11206663,13631495],"osumatch":[1310730,4128771,8781827,11141123,14483457,14548995,15466502,15597574,16056321,17694725,18284545],"osuscores":[7471110,14483457,16056321],"osumania":[3211265],"osu":[589827,786433,2818049,3211265,7405570,7733249,9043970,10420226,10944513,11927553,14090242,14680065,16121857]} -------------------------------------------------------------------------------- /docs/fti/FTI_112.json: -------------------------------------------------------------------------------- 1 | {"pending":[16711681],"perfect":[524289,983041,1179654,1638401,3997697,5636097,7077894,8716294,11272193,15663110,17563649,18219009,18743297],"property":[131076,196612,262148,327684,393220,917508,1048580,1114116,1179652,1376260,1507332,1572868,1703940,1769476,1900548,1966084,2162692,2228228,2424836,2490372,2883588,2949124,3014660,3080196,3145732,3276804,3407876,3473412,3538948,3604484,3670020,3801092,3932164,4128772,4456452,4587524,4653060,4980740,5111812,5177348,5242884,5308420,5439492,5505028,5767172,5832708,5898244,5963780,6094852,6225924,6356996,6422532,6750212,6815748,7077892,7143428,7208964,7340036,7667716,7798788,7733252,7864324,7929860,8060932,8126468,8192004,8388612,8454148,8519684,8716292,8781828,8978436,9109508,9175044,9240580,9306116,9371652,9502724,9568260,9633796,9764868,9830404,9895940,10027012,10223620,10551300,10616836,10747908,10878980,11010052,11075588,11141124,11337732,11403268,11468804,11599876,11730948,11796484,12058628,12124164,12255236,12320772,12386308,12451844,12582916,12713988,12779524,12910596,13107204,13172740,13238276,13303812,13369348,13500420,13565956,13762564,13828100,13959172,14024708,14221316,14286852,14417924,14745604,14811140,14876676,14942212,15007748,15138820,15204356,15269892,15400964,15663108,15728644,15794180,15859716,16252932,16318468,16384004,16449540,16515076,16646148,16842756,16973828,17039364,17235972,17301508,17432580,17498116,17629188,17760260,17825796,17891332,18153476,18350084,18415620,18546692,18677764,18808836,18874372],"param":[458753,851972,1441793,1835011,2031617,3735556,4259841,6488065,7536641,8650756,9699329,9961473,11206657,11993089,12648451,12845058,13434887,13631489,15335427,15532033,16580609,17104898,17367043],"protected":[18874371],"pass":[983041,1638401,18546694],"playcount":[720897,786433,1507334,2949126,8257537,11927553],"ppy":[589825,2818049,10944513],"pp_country_rank":[131078,720897,8257537],"parameters":[458753,589825,851969,1245185,1441793,1835009,2031617,2097153,2818049,3735553,4259841,4325377,6488065,7405569,7536641,8650753,8912897,9043969,9437185,9699329,9961473,10420225,10944513,11206657,11665409,11993089,12648449,12845057,13434881,13631489,14090241,14680065,15335425,15532033,15925249,16580609,17104897,17367041,17694721,18612225],"persists":[17956865],"project":[18022401],"play_mode":[6553601,11534337,11730950],"properties":[524289,720898,786433,983042,1310721,1638401,2293762,2621442,2686978,2752513,3342337,4849666,5636098,6553601,6946817,7995393,8257537,8323073,8585218,10485762,10813442,11272194,11534338,11927554,12189697,12976129,13697026,14548994,16056321,17563650,18219009,18743297],"params":[17104897],"private":[2097156,11993092,16908292],"pp_raw":[720897,8257537,18350086],"played":[2818051,4325379,10420225],"provide":[10420225],"page":[17956865,18087940],"paramarray":[17104897],"public":[131075,196611,262147,327683,393219,458755,524291,589827,655363,786435,851971,917507,1048579,1114115,1179651,1245187,1310723,1376259,1441795,1507331,1638403,1703939,1769475,1835011,1900547,1966083,2031619,2162691,2228227,2359299,2424835,2490371,2752513,2818051,2883587,2949123,3014659,3080195,3145731,3211267,3276803,3342340,3407875,3473411,3538947,3604483,3670019,3735555,3801091,3932163,3997699,4128771,4194307,4259843,4325379,4390915,4456451,4521987,4587523,4653059,4915203,4980739,5111811,5177347,5242883,5308419,5439491,5505027,5570563,5767171,5832707,5898243,5963779,6094851,6225923,6291459,6356995,6422531,6488067,6553603,6619139,6750211,6815747,6881283,6946819,7077891,7143427,7208963,7340035,7405571,7471107,7536643,7602179,7667715,7798787,7733251,7864323,7929859,7995396,8060931,8126467,8192003,8257539,8323075,8388611,8454147,8519683,8650755,8716291,8781827,8847363,8912899,8978435,9043971,9109507,9175043,9240579,9306115,9371651,9437187,9502723,9568259,9633795,9699331,9764867,9830403,9895939,9961475,10027011,10223619,10420227,10551299,10616835,10682371,10747907,10878979,10944515,11010051,11075587,11141123,11206659,11337731,11403267,11468803,11599875,11665411,11730947,11796483,11862019,12058627,12124163,12189699,12255235,12320771,12386307,12451843,12517379,12582915,12648451,12713987,12779523,12845059,12910595,12976131,13041667,13107203,13172739,13238275,13303811,13369347,13434883,13500419,13565955,13631491,13762563,13828099,13893635,13959171,14024707,14090243,14221315,14286851,14352387,14417923,14614531,14680067,14745603,14811139,14876675,14942211,15007747,15073283,15138819,15204355,15269891,15335427,15400963,15466499,15532035,15597571,15663107,15728643,15794179,15859715,15925251,16121859,16187395,16252931,16318467,16384003,16449539,16515075,16580611,16646147,16711683,16842755,16973827,17039363,17170435,17235971,17301507,17367043,17432579,17498115,17629187,17694723,17760259,17825795,17891331,18153475,18219011,18350083,18415619,18481155,18546691,18612227,18677763,18743299,18808835],"passcount":[786433,917510,11927553],"pp_rank":[393222,720897,8257537]} -------------------------------------------------------------------------------- /docs/fti/FTI_113.json: -------------------------------------------------------------------------------- 1 | {"querystrings":[17104902],"qualified":[16711681]} -------------------------------------------------------------------------------- /docs/fti/FTI_114.json: -------------------------------------------------------------------------------- 1 | {"recent":[7405570,15990785,16121857],"returns":[458753,851969,1245185,1441793,1835009,2097153,3735553,4259841,6291457,6488065,7536641,8650753,9699329,11206657,11993089,13434881,13631489,15532033,17104897],"rating":[786433,9568262,10420225,11927553],"relax2":[3997697],"requested":[18087937],"random":[3997697],"request":[10420225],"replay":[1835018,2818049,4063233,4325379,5046273,10420225,15990785,16056321,16121857],"relax":[3997697],"returned":[9043969,10420226,14680065],"round":[5636097,11272193,14417921,14876673,18219009,18743297],"rank":[524289,983041,1638401,5439494,5636097,6750214,11272193,14221318,16646150,17563649,18219009,18743297],"ranked":[10420225,16711681],"reference":[131073,196609,262145,327681,393217,458753,524289,589825,655361,720897,786433,851969,917505,1048577,983041,1114113,1179649,1245185,1310721,1376257,1441793,1507329,1572865,1638401,1703937,1769473,1835009,1900545,1966081,2031617,2097153,2162689,2228225,2293761,2359297,2424833,2490369,2555905,2621441,2686977,2752513,2818049,2883585,2949121,3014657,3080193,3145729,3211265,3276801,3342337,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4063233,4128769,4194305,4259841,4325377,4390913,4456449,4521985,4587521,4653057,4849665,4915201,4980737,5046273,5111809,5177345,5242881,5308417,5439489,5505025,5570561,5636097,5701633,5767169,5832705,5898241,5963777,6029313,6094849,6225921,6291457,6356993,6422529,6488065,6553601,6619137,6684673,6750209,6815745,6881281,6946817,7012353,7077889,7143425,7208961,7274497,7340033,7405569,7471105,7536641,7602177,7667713,7733249,7798785,7864321,7929857,7995393,8060929,8126465,8192001,8257537,8323073,8388609,8454145,8519681,8585217,8650753,8716289,8781825,8847361,8912897,8978433,9043969,9109505,9175041,9240577,9306113,9371649,9437185,9502721,9568257,9633793,9699329,9764865,9830401,9895937,9961473,10027009,10158081,10223617,10289153,10420225,10485761,10551297,10616833,10682369,10747905,10813441,10878977,10944513,11010049,11075585,11141121,11206657,11272193,11337729,11403265,11468801,11534337,11599873,11665409,11730945,11796481,11862017,11927553,11993089,12058625,12124161,12189697,12255233,12320769,12386305,12451841,12517377,12582913,12648449,12713985,12779521,12845057,12910593,12976129,13041665,13107201,13172737,13238273,13303809,13369345,13434881,13500417,13565953,13631489,13697025,13762561,13828097,13893633,13959169,14024705,14090241,14221313,14286849,14352385,14417921,14483457,14548993,14614529,14680065,14745601,14811137,14876673,14942209,15007745,15073281,15138817,15204353,15269889,15335425,15400961,15466497,15532033,15597569,15663105,15728641,15794177,15859713,15925249,15990785,16056321,16121857,16187393,16252929,16318465,16384001,16449537,16515073,16580609,16646145,16711681,16842753,16908289,16973825,17039361,17104897,17170433,17235969,17301505,17367041,17432577,17498113,17563649,17629185,17694721,17760257,17825793,17891329,18153473,18219009,18350081,18415617,18481153,18546689,18612225,18677761,18743297,18808833,18874369],"redirected":[1],"replays":[10420225],"ranked_score":[720897,8257537,9502726],"range":[589825,7405569,9043969,14090241],"readjson":[851980,2752514,3342338,3735564,5701634,6029314,7012354,7995394,8650764],"required":[4784129,9043969],"return":[458753,589828,851969,1245185,1441793,1835009,2097153,2818050,3735553,4259841,4325378,5046274,6291457,6488065,7405571,7536641,8650753,9043971,9699329,10420228,10944514,11206657,11993089,13434881,13631489,14090243,15532033,15990793,16121865,17104897,17694722],"read":[2293761,2752513,3342337,7995393,8585217,10485761],"readonly":[18874369],"ref":[524289,786433,1310721,1638401,2555905,2752513,3342337,6553601,6684673,6946817,7995393,8257537,8323073,12976129,16056321,16121857,18219009,18743297],"results":[589825,7405569,10420225,14090241],"reader":[851975,3735559,8650759]} -------------------------------------------------------------------------------- /docs/fti/FTI_116.json: -------------------------------------------------------------------------------- 1 | {"typo":[18087937],"true":[10420228],"target":[3997697],"throw":[14680065],"tags":[786433,9306118,11927553],"title":[65537,786433,4784129,11927553,17629190],"thumbnail":[786433,11927553,16973830],"taiko":[589825,3211265,7405569,9043969,10420225,14090241],"type":[131073,196609,262145,327681,393217,458754,524290,589830,720897,786434,851985,917505,983041,1048577,1114113,1179649,1245186,1310722,1376257,1441794,1507329,1572865,1638402,1703937,1769473,1835012,1900545,1966081,2031617,2097154,2162689,2228225,2293761,2424833,2490369,2555906,2621441,2686977,2752516,2818053,2883585,2949121,3014657,3080193,3145729,3211265,3276801,3342340,3407873,3473409,3538945,3604481,3670017,3735569,3801089,3932161,3997697,4063233,4128769,4194305,4259842,4325381,4456449,4587521,4653057,4849665,4980737,5111809,5177345,5242881,5308417,5439489,5505025,5636097,5701635,5767169,5832705,5898241,5963777,6029315,6094849,6225921,6291457,6356993,6422529,6488066,6553602,6619137,6684674,6750209,6815745,6946818,7012355,7077889,7143425,7208961,7340033,7405572,7471105,7536642,7667713,7733249,7798785,7864321,7929857,7995396,8060929,8126465,8192001,8257538,8323074,8388609,8454145,8519681,8585217,8650769,8716289,8781825,8912897,8978433,9043972,9109505,9175041,9240577,9306113,9371649,9437185,9502721,9568257,9633793,9699339,9764865,9830401,9895937,9961473,10027009,10158081,10223617,10289153,10420233,10485761,10551297,10616833,10747905,10813441,10878977,10944514,11010049,11075585,11141121,11206667,11272193,11337729,11403265,11468801,11534337,11599873,11665409,11730945,11796481,11862017,11927553,11993090,12058625,12124161,12189698,12255233,12320769,12386305,12451841,12582913,12648451,12713985,12779521,12845058,12910593,12976130,13041665,13107201,13172737,13238273,13303809,13369345,13434888,13500417,13565953,13631499,13697025,13762561,13828097,13959169,14024705,14090244,14221313,14286849,14352385,14417921,14483457,14548993,14614529,14680067,14745601,14811137,14876673,14942209,15007745,15073281,15138817,15204353,15269889,15335427,15400961,15466497,15532034,15663105,15728641,15794177,15859713,15925249,15990785,16056322,16121858,16187393,16252929,16318465,16384001,16449537,16515073,16580609,16646145,16711681,16842753,16908289,16973825,17039361,17104899,17235969,17301505,17367043,17432577,17498113,17563649,17629185,17694722,17760257,17825793,17891329,18153473,18219010,18350081,18415617,18546689,18612225,18677761,18743298,18808833,18874369],"total_score":[720897,8257537,9895942],"total_length":[786433,11927553,17760262],"topic":[1],"top":[524290,589825,720897,786434,983041,1310722,1638402,2293761,2555907,2621441,2686977,2752515,3342339,3866625,4063233,4849665,5046273,5636097,5701633,6029313,6553602,6684674,6946818,7012353,7274497,7405569,7995395,8257538,8323074,8585217,10158081,10289153,10485761,10813441,11272193,11534337,11927553,12189697,12976130,13697025,14090241,14483457,14548993,15990785,16056324,16121858,17563649,18087937,18219010,18743298],"team_type":[2883590,6553601,11534337],"trying":[10420225],"team":[983041,1638401,17301510],"throwifnull":[2555905,7274497,16908294],"touchdevice":[3997697],"timestamp":[2097153,6684674,10158082,11665409],"total_seconds_played":[720897,8257537,17891334],"try":[17956865,18087937]} -------------------------------------------------------------------------------- /docs/fti/FTI_117.json: -------------------------------------------------------------------------------- 1 | {"utility":[1441797,2031620,2555914,3866626,7274498,9961476,10289155,10354689,12845064,13434891,16908291],"util":[327683,458757,851976,1245187,1441797,1835021,2031620,2097155,2293761,2555908,2686977,2752516,2818049,3211267,3342340,3735560,3866625,3997699,4063233,4194307,4259845,4325377,4718594,4915202,5373954,5570562,5701633,6029313,6160386,6291460,6488069,6619139,6684676,7012353,7274497,7471107,7536645,7995396,8585217,8650760,8912898,9437186,9699333,9961476,10092549,10158081,10289153,10354690,10485761,11206661,11665410,11862019,11993097,12517378,12648454,12845060,13041667,13434891,13631493,14155778,14352387,14483457,14614531,15073283,15335430,15466499,15532037,15925250,16056324,16187395,16580611,16711683,16908291,17104902,17170434,17367046,18612226,18874371],"unix":[2097153,6684673,10158081],"username":[524289,589825,720897,1114118,1376262,7405569,8257537,9043969,10420225,14090241,17563649],"unsigned":[2818049],"used":[10420225],"user":[1835014,2818049,4063233,4259846,4325377,7405570,7536648,9043971,10420225,14090242,15532038,15990787,16056321,16121859],"user_best":[4063233,15532040,16056321],"unit":[655361,2031617,2359297,4390913,4521985,4915201,5570561,6291457,6881281,7602177,8847361,8912897,9437185,9961473,10682369,11665409,12517377,12648450,13893633,15335426,15597569,15925249,17170433,17367042,18481153,18612225],"user_recent":[4063233,4259848,16056321],"url":[720897,1441798,8257537,10223622,18087937],"user_id":[524289,589825,720897,983041,1638401,3473414,5242886,5636097,7405569,8257537,8388614,11272193,14090241,15400966,17498118,17563649,18219009,18743297]} -------------------------------------------------------------------------------- /docs/fti/FTI_118.json: -------------------------------------------------------------------------------- 1 | {"val":[4194305,6619137,7471105,11862017,13041665,14352385,14614529,15466497,16187393,16908289],"void":[131073,196609,262145,327681,393217,917505,1048577,1114113,1179649,1376257,1507329,1572865,1703937,1769473,1900545,1966081,2031618,2162689,2228225,2424833,2490369,2883585,2949121,3014657,3080193,3145729,3276801,3407873,3473409,3538945,3604481,3670017,3801089,3932161,4128769,4456449,4587521,4653057,4980737,5111809,5177345,5242881,5308417,5439489,5505025,5767169,5832705,5898241,5963777,6094849,6225921,6356993,6422529,6750209,6815745,7077889,7143425,7208961,7340033,7667713,7798785,7733249,7864321,7929857,8060929,8126465,8192001,8388609,8454145,8519681,8716289,8781825,8912898,8978433,9109505,9175041,9240577,9306113,9371649,9437186,9502721,9568257,9633793,9764865,9830401,9895937,9961474,10027009,10223617,10551297,10616833,10747905,10878977,11010049,11075585,11141121,11337729,11403265,11468801,11599873,11665410,11730945,11796481,12058625,12124161,12255233,12320769,12386305,12451841,12582913,12648450,12713985,12779521,12910593,13107201,13172737,13238273,13303809,13369345,13500417,13565953,13762561,13828097,13959169,14024705,14221313,14286849,14417921,14745601,14811137,14876673,14942209,15007745,15138817,15204353,15269889,15335426,15400961,15663105,15728641,15794177,15859713,15925250,16252929,16318465,16384001,16449537,16515073,16646145,16842753,16973825,17039361,17235969,17301505,17367042,17432577,17498113,17629185,17760257,17825793,17891329,18153473,18350081,18415617,18546689,18612226,18677761,18808833],"value":[131074,196610,262146,327682,393218,458753,589826,851969,917506,1048578,1114114,1179650,1245185,1376258,1441793,1507330,1572866,1703938,1769474,1835009,1900546,1966082,2097153,2162690,2228226,2293762,2424834,2490370,2752514,2818049,2883586,2949122,3014658,3080194,3145730,3211265,3276802,3342338,3407874,3473410,3538946,3604482,3670018,3735553,3801090,3932162,3997697,4128770,4194305,4259841,4325377,4456450,4587522,4653058,4980738,5111810,5177346,5242882,5308418,5439490,5505026,5636097,5767170,5832706,5898242,5963778,6094850,6225922,6291457,6356994,6422530,6488065,6619137,6750210,6815746,7077890,7143426,7208962,7340034,7405570,7471105,7536641,7667714,7798786,7733250,7864322,7929858,7995394,8060930,8126466,8192002,8388610,8454146,8519682,8585218,8650753,8716290,8781826,8978434,9043970,9109506,9175042,9240578,9306114,9371650,9502722,9568258,9633794,9699329,9764866,9830402,9895938,10027010,10223618,10420225,10485762,10551298,10616834,10747906,10878978,10944513,11010050,11075586,11141122,11206657,11272193,11337730,11403266,11468802,11599874,11730946,11796482,11862017,11993089,12058626,12124162,12255234,12320770,12386306,12451842,12582914,12648455,12713986,12779522,12910594,13041665,13107202,13172738,13238274,13303810,13369346,13434881,13500418,13565954,13631489,13762562,13828098,13959170,14024706,14090242,14221314,14286850,14352385,14417923,14614529,14745602,14811138,14876675,14942210,15007746,15073281,15138818,15204354,15269890,15335431,15400962,15466497,15532033,15663106,15728642,15794178,15859714,16187393,16252930,16318466,16384002,16449538,16515074,16646146,16711681,16842754,16908289,16973826,17039362,17104897,17235970,17301506,17367047,17432578,17498114,17629186,17694721,17760258,17825794,17891330,18153474,18219009,18350082,18415618,18546690,18677762,18743297,18808834,18874369],"version":[131073,196609,262145,327681,393217,458753,524289,589825,655361,786434,851969,917505,1048577,1114113,1179649,1245185,1310721,1376257,1441793,1507329,1572865,1638401,1703937,1769473,1835009,1900545,1966081,2031617,2097153,2162689,2228225,2359297,2424833,2490369,2555905,2752513,2818049,2883585,2949121,3014657,3080193,3145729,3211265,3276801,3342337,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3932161,3997697,4128769,4194305,4259841,4325377,4390913,4456449,4521985,4587521,4653057,4915201,4980737,5111809,5177345,5242881,5308417,5439489,5505025,5570561,5767169,5832705,5898241,5963777,6094849,6225921,6291457,6356993,6422529,6488065,6553601,6619137,6684673,6750209,6815745,6881281,6946817,7077889,7143425,7208961,7340033,7405569,7471105,7536641,7602177,7667713,7733250,7798785,7864321,7929857,7995393,8060929,8126465,8192001,8257537,8323073,8388609,8454145,8519681,8650753,8716289,8781825,8847361,8912897,8978433,9043969,9109505,9175041,9240577,9306113,9371649,9437185,9502721,9568257,9633793,9699329,9764865,9830401,9895937,9961473,10027009,10223617,10420225,10551297,10616833,10682369,10747905,10878977,10944513,11010049,11075585,11141121,11206657,11337729,11403265,11468801,11599873,11665409,11730945,11796481,11862017,11927553,11993089,12058625,12124161,12189697,12255233,12320769,12386305,12451841,12517377,12582913,12648449,12713985,12779521,12845057,12910593,12976129,13041665,13107201,13172737,13238273,13303809,13369345,13434881,13500417,13565953,13631489,13762561,13828097,13893633,13959169,14024705,14090241,14221313,14286849,14352385,14417921,14614529,14680065,14745601,14811137,14876673,14942209,15007745,15073281,15138817,15204353,15269889,15335425,15400961,15466497,15532033,15597569,15663105,15728641,15794177,15859713,15925249,16056321,16121857,16187393,16252929,16318465,16384001,16449537,16515073,16580609,16646145,16711681,16842753,16908289,16973825,17039361,17104897,17170433,17235969,17301505,17367041,17432577,17498113,17629185,17694721,17760257,17825793,17891329,18153473,18219009,18350081,18415617,18481153,18546689,18612225,18677761,18743297,18808833,18874369],"virtual":[851969,2162689,3735553,4128769,6225921,6815745,8650753,9699329,10027009,11206657,11796481,12648449,13369345,13631489,15335425,17367041,18874370]} -------------------------------------------------------------------------------- /docs/fti/FTI_119.json: -------------------------------------------------------------------------------- 1 | {"write":[2293761,2752513,3342337,7995393,8585217,10485761],"writejson":[2752514,3342338,5701634,6029314,7012354,7995394,12648458,15335434,17367050],"writer":[12648455,15335431,17367047],"writeinteger":[6684673,9437189,10158081],"wiki":[589825,2818049,10944513],"web":[18087937],"writestring":[6684673,10158081,18612229],"wip":[18022401],"writeshort":[6684673,10158081,15925253],"writedate":[6684673,10158081,11665413],"writebyte":[6684673,8912901,10158081]} -------------------------------------------------------------------------------- /docs/fti/FTI_95.json: -------------------------------------------------------------------------------- 1 | {"_mp":[17694725],"_throwifnull":[12845062,14680071],"_binwriter":[16580614],"_id":[10420231],"_isset":[10420231],"_client":[12845062],"_limit":[589831,7405575,10420231,14090247],"_since":[10420231],"_event_days":[9043975],"_mods":[589831,2818055,4325381]} -------------------------------------------------------------------------------- /docs/fti/FTI_97.json: -------------------------------------------------------------------------------- 1 | {"array":[589825,2818049,3801091,7405569,7798787,9043969,9961473,10420225,11993089,13434881,14090241,14942211,16842755,17104897],"assembly":[131073,196609,262145,327681,393217,458753,524289,589825,655361,786433,851969,917505,1048577,1114113,1179649,1245185,1310721,1376257,1441793,1507329,1572865,1638401,1703937,1769473,1835009,1900545,1966081,2031617,2097153,2162689,2228225,2359297,2424833,2490369,2555905,2752513,2818049,2883585,2949121,3014657,3080193,3145729,3211265,3276801,3342337,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3932161,3997697,4128769,4194305,4259841,4325377,4390913,4456449,4521985,4587521,4653057,4915201,4980737,5111809,5177345,5242881,5308417,5439489,5505025,5570561,5767169,5832705,5898241,5963777,6094849,6225921,6291457,6356993,6422529,6488065,6553601,6619137,6684673,6750209,6815745,6881281,6946817,7077889,7143425,7208961,7340033,7405569,7471105,7536641,7602177,7667713,7798785,7733249,7864321,7929857,7995393,8060929,8126465,8192001,8257537,8323073,8388609,8454145,8519681,8650753,8716289,8781825,8847361,8912897,8978433,9043969,9109505,9175041,9240577,9306113,9371649,9437185,9502721,9568257,9633793,9699329,9764865,9830401,9895937,9961473,10027009,10223617,10420225,10551297,10616833,10682369,10747905,10878977,10944513,11010049,11075585,11141121,11206657,11337729,11403265,11468801,11599873,11665409,11730945,11796481,11862017,11993089,12058625,12124161,12189697,12255233,12320769,12386305,12451841,12517377,12582913,12648449,12713985,12779521,12845057,12910593,12976129,13041665,13107201,13172737,13238273,13303809,13369345,13434881,13500417,13565953,13631489,13762561,13828097,13893633,13959169,14024705,14090241,14221313,14286849,14352385,14417921,14614529,14680065,14745601,14811137,14876673,14942209,15007745,15073281,15138817,15204353,15269889,15335425,15400961,15466497,15532033,15597569,15663105,15728641,15794177,15859713,15925249,16056321,16121857,16187393,16252929,16318465,16384001,16449537,16515073,16580609,16646145,16711681,16842753,16908289,16973825,17039361,17104897,17170433,17235969,17301505,17367041,17432577,17498113,17629185,17694721,17760257,17825793,17891329,18153473,18219009,18350081,18415617,18481153,18546689,18612225,18677761,18743297,18808833,18874369],"accuracycalculator":[2555905,10289153,13434894],"automatically":[1],"administrator":[17956865],"abstract":[851969,1572865,2162689,3735553,4128769,6225921,6815745,8650753,9699329,10027009,11206657,11796481,12648449,13369345,13631489,15335425,17367041,18874369],"autoplay":[3997697],"artist":[786433,7143430,11927553],"approvedconvert":[851976,6029315,6160385,7995402,8585219,9699333,15335430,17170438],"accuracy":[196614,720897,5636097,8257537,11272193,14417925,14876677,18219009,18743297],"approved":[786433,10878982,11927553,16711681],"address":[18087937],"available":[18087937],"approved_date":[786433,1966086,11927553],"aimrating":[786433,11927553,12386310],"add":[4784129,18022401],"a5b99395a42bd55bc5eb1d2411cbdf8b":[10420225],"api":[589825,786433,2818049,7733249,10944513,11927553,14680066,16121857],"approvedstatus":[4718593,10878983,16711686]} -------------------------------------------------------------------------------- /docs/fti/FTI_98.json: -------------------------------------------------------------------------------- 1 | {"beatmap":[458758,589825,1835014,2818051,4063233,4325379,6291463,10420230,15990785,16056321,16121857],"beatmap_id":[589825,786433,3670022,4849665,5636097,5767174,6553601,8192006,11075590,11272193,11534337,11927553,12976129,16515078,18219009,18743297],"beatmap_url":[786433,11927553,13107206],"box":[18087937],"binary":[6684677,8912897,9437185,10158085,11665409,15925249,18612225],"bool":[1179653,7077893,8716293,9699332,10420227,11206660,12845059,13631492,14680067,15663109,16908291,18546693],"byte":[2818052,6684673,8912897,10158081],"beatmapset":[10420226],"beatmapset_id":[786433,4849665,5111814,11927553,12255238,12976129],"best":[14090242,15990785,16121857],"bytes":[2818050,5046273,10944513,15990785,16121857],"bpm":[786433,10551302,11927553],"boolean":[1179650,7077890,8716290,9699330,10420226,11206658,12845060,13631490,14680066,15663106,16908290,18546690],"binaryhandler":[1245187,2097155,5373954,6684676,8912898,9437186,10092545,10158081,11665410,15925250,16580611,18612226],"boolconvert":[2293763,2752522,6160385,7012355,8650760,11206661,12517382,12648454],"beatmaps":[10420228,15990785,16121857],"binarywriter":[16580614],"beatmapset_url":[786433,11927553,13238278],"binhandler":[1245187,2097155,5373953,6684682,8912898,9437186,10158083,11665410,15925250,16580615,18612226]} -------------------------------------------------------------------------------- /docs/html/23d51bda-59ca-0528-5673-b745be96e7f5.htm: -------------------------------------------------------------------------------- 1 | Strings Properties -------------------------------------------------------------------------------- /docs/html/3a44a954-3c37-ef49-d6e9-c3f25882e7ff.htm: -------------------------------------------------------------------------------- 1 | CSharpOsu.Util.BinaryHandler Namespace

    CSharpOsu.Util.BinaryHandler Namespace

    [Missing <summary> documentation for "N:CSharpOsu.Util.BinaryHandler"]

    Classes
    2 |   3 | ClassDescription
    Protected classBinHandler
    -------------------------------------------------------------------------------- /docs/html/4a631c4a-2a3b-09ee-9aa7-388f6ea5447e.htm: -------------------------------------------------------------------------------- 1 | CSharpOsu.Util.Enums Namespace

    CSharpOsu.Util.Enums Namespace

    [Missing <summary> documentation for "N:CSharpOsu.Util.Enums"]

    Enumerations
    2 |   3 | EnumerationDescription
    Public enumerationApprovedStatus
    Public enumerationconv
    Public enumerationmode
    Public enumerationMods
    -------------------------------------------------------------------------------- /docs/html/4a80c94b-8b72-4f84-b02d-30d32d893f58.htm: -------------------------------------------------------------------------------- 1 | Sample1

    Sample1

    Required introduction

    Optional section title

    Add one or more sections with content