diff --git a/lib/cpp-sc2 b/lib/cpp-sc2
new file mode 160000
index 0000000000000000000000000000000000000000..f8bbf67bb3284bdf8f82544b464f4692f4f451ce
--- /dev/null
+++ b/lib/cpp-sc2
@@ -0,0 +1 @@
+Subproject commit f8bbf67bb3284bdf8f82544b464f4692f4f451ce
diff --git a/python-api-src/CMakeLists.txt b/python-api-src/CMakeLists.txt
index d2d99321846b3d88be23729a773e9f254cf4b06d..16bb62042b6a08f6a5c4da7d377e818d045415f6 100644
--- a/python-api-src/CMakeLists.txt
+++ b/python-api-src/CMakeLists.txt
@@ -1,7 +1,7 @@
 include_directories(SYSTEM
-    ${PROJECT_SOURCE_DIR}/lib/s2client-api/include
-    ${PROJECT_SOURCE_DIR}/lib/s2client-api/contrib/protobuf/src
-    ${PROJECT_BINARY_DIR}/lib/s2client-api/generated
+    ${PROJECT_SOURCE_DIR}/lib/cpp-sc2/include
+    ${PROJECT_SOURCE_DIR}/lib/cpp-sc2/contrib/protobuf/src
+    ${PROJECT_BINARY_DIR}/lib/cpp-sc2/generated
     ${PROJECT_SOURCE_DIR}/lib/json/include
 )
 
@@ -10,7 +10,7 @@ file(GLOB BOT_SOURCES "../src/*.cpp" "../src/*.h" "../src/*.hpp")
 
 file(GLOB LIBRARY_SOURCES "*.cpp" "*.h")
 
-link_directories(${PROJECT_BINARY_DIR}/s2client-api/bin)
+link_directories(${PROJECT_BINARY_DIR}/cpp-sc2/bin)
 
 # Enable compilation of the SC2 version of the bot code
 # TODO: Remove all remaining BW code
diff --git a/python-api-src/lib_sc2_typeenums.cpp b/python-api-src/lib_sc2_typeenums.cpp
index 235056ce29cc1711fc5297aa93dd85ab90013fc3..40b993a2ef2e57bc959bf7673cf4fa26b7d4eb2c 100644
--- a/python-api-src/lib_sc2_typeenums.cpp
+++ b/python-api-src/lib_sc2_typeenums.cpp
@@ -222,11 +222,80 @@ void define_typeenums(py::module & m)
 
     py::enum_<sc2::ABILITY_ID>(m, "ABILITY_ID")
         .value("INVALID", sc2::ABILITY_ID::INVALID)
-        .value("SMART", sc2::ABILITY_ID::SMART)
+        .value("ADVANCEDCONSTRUCTION_CANCEL", sc2::ABILITY_ID::ADVANCEDCONSTRUCTION_CANCEL)
+        .value("AGGRESSIVEMUTATION", sc2::ABILITY_ID::AGGRESSIVEMUTATION)
+        .value("AIURLIGHTBRIDGEABANDONEDNE10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::AIURLIGHTBRIDGEABANDONEDNE10OUT_BRIDGEEXTEND)
+        .value("AIURLIGHTBRIDGEABANDONEDNE10_BRIDGERETRACT", sc2::ABILITY_ID::AIURLIGHTBRIDGEABANDONEDNE10_BRIDGERETRACT)
+        .value("AIURLIGHTBRIDGEABANDONEDNE12OUT_BRIDGEEXTEND", sc2::ABILITY_ID::AIURLIGHTBRIDGEABANDONEDNE12OUT_BRIDGEEXTEND)
+        .value("AIURLIGHTBRIDGEABANDONEDNE12_BRIDGERETRACT", sc2::ABILITY_ID::AIURLIGHTBRIDGEABANDONEDNE12_BRIDGERETRACT)
+        .value("AIURLIGHTBRIDGEABANDONEDNE8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::AIURLIGHTBRIDGEABANDONEDNE8OUT_BRIDGEEXTEND)
+        .value("AIURLIGHTBRIDGEABANDONEDNE8_BRIDGERETRACT", sc2::ABILITY_ID::AIURLIGHTBRIDGEABANDONEDNE8_BRIDGERETRACT)
+        .value("AIURLIGHTBRIDGEABANDONEDNW10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::AIURLIGHTBRIDGEABANDONEDNW10OUT_BRIDGEEXTEND)
+        .value("AIURLIGHTBRIDGEABANDONEDNW10_BRIDGERETRACT", sc2::ABILITY_ID::AIURLIGHTBRIDGEABANDONEDNW10_BRIDGERETRACT)
+        .value("AIURLIGHTBRIDGEABANDONEDNW12OUT_BRIDGEEXTEND", sc2::ABILITY_ID::AIURLIGHTBRIDGEABANDONEDNW12OUT_BRIDGEEXTEND)
+        .value("AIURLIGHTBRIDGEABANDONEDNW12_BRIDGERETRACT", sc2::ABILITY_ID::AIURLIGHTBRIDGEABANDONEDNW12_BRIDGERETRACT)
+        .value("AIURLIGHTBRIDGEABANDONEDNW8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::AIURLIGHTBRIDGEABANDONEDNW8OUT_BRIDGEEXTEND)
+        .value("AIURLIGHTBRIDGEABANDONEDNW8_BRIDGERETRACT", sc2::ABILITY_ID::AIURLIGHTBRIDGEABANDONEDNW8_BRIDGERETRACT)
+        .value("AIURLIGHTBRIDGENE10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::AIURLIGHTBRIDGENE10OUT_BRIDGEEXTEND)
+        .value("AIURLIGHTBRIDGENE10_BRIDGERETRACT", sc2::ABILITY_ID::AIURLIGHTBRIDGENE10_BRIDGERETRACT)
+        .value("AIURLIGHTBRIDGENE12OUT_BRIDGEEXTEND", sc2::ABILITY_ID::AIURLIGHTBRIDGENE12OUT_BRIDGEEXTEND)
+        .value("AIURLIGHTBRIDGENE12_BRIDGERETRACT", sc2::ABILITY_ID::AIURLIGHTBRIDGENE12_BRIDGERETRACT)
+        .value("AIURLIGHTBRIDGENE8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::AIURLIGHTBRIDGENE8OUT_BRIDGEEXTEND)
+        .value("AIURLIGHTBRIDGENE8_BRIDGERETRACT", sc2::ABILITY_ID::AIURLIGHTBRIDGENE8_BRIDGERETRACT)
+        .value("AIURLIGHTBRIDGENW10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::AIURLIGHTBRIDGENW10OUT_BRIDGEEXTEND)
+        .value("AIURLIGHTBRIDGENW10_BRIDGERETRACT", sc2::ABILITY_ID::AIURLIGHTBRIDGENW10_BRIDGERETRACT)
+        .value("AIURLIGHTBRIDGENW12OUT_BRIDGEEXTEND", sc2::ABILITY_ID::AIURLIGHTBRIDGENW12OUT_BRIDGEEXTEND)
+        .value("AIURLIGHTBRIDGENW12_BRIDGERETRACT", sc2::ABILITY_ID::AIURLIGHTBRIDGENW12_BRIDGERETRACT)
+        .value("AIURLIGHTBRIDGENW8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::AIURLIGHTBRIDGENW8OUT_BRIDGEEXTEND)
+        .value("AIURLIGHTBRIDGENW8_BRIDGERETRACT", sc2::ABILITY_ID::AIURLIGHTBRIDGENW8_BRIDGERETRACT)
+        .value("AIURTEMPLEBRIDGENE10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::AIURTEMPLEBRIDGENE10OUT_BRIDGEEXTEND)
+        .value("AIURTEMPLEBRIDGENE10_BRIDGERETRACT", sc2::ABILITY_ID::AIURTEMPLEBRIDGENE10_BRIDGERETRACT)
+        .value("AIURTEMPLEBRIDGENE12OUT_BRIDGEEXTEND", sc2::ABILITY_ID::AIURTEMPLEBRIDGENE12OUT_BRIDGEEXTEND)
+        .value("AIURTEMPLEBRIDGENE12_BRIDGERETRACT", sc2::ABILITY_ID::AIURTEMPLEBRIDGENE12_BRIDGERETRACT)
+        .value("AIURTEMPLEBRIDGENE8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::AIURTEMPLEBRIDGENE8OUT_BRIDGEEXTEND)
+        .value("AIURTEMPLEBRIDGENE8_BRIDGERETRACT", sc2::ABILITY_ID::AIURTEMPLEBRIDGENE8_BRIDGERETRACT)
+        .value("AIURTEMPLEBRIDGENW10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::AIURTEMPLEBRIDGENW10OUT_BRIDGEEXTEND)
+        .value("AIURTEMPLEBRIDGENW10_BRIDGERETRACT", sc2::ABILITY_ID::AIURTEMPLEBRIDGENW10_BRIDGERETRACT)
+        .value("AIURTEMPLEBRIDGENW12OUT_BRIDGEEXTEND", sc2::ABILITY_ID::AIURTEMPLEBRIDGENW12OUT_BRIDGEEXTEND)
+        .value("AIURTEMPLEBRIDGENW12_BRIDGERETRACT", sc2::ABILITY_ID::AIURTEMPLEBRIDGENW12_BRIDGERETRACT)
+        .value("AIURTEMPLEBRIDGENW8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::AIURTEMPLEBRIDGENW8OUT_BRIDGEEXTEND)
+        .value("AIURTEMPLEBRIDGENW8_BRIDGERETRACT", sc2::ABILITY_ID::AIURTEMPLEBRIDGENW8_BRIDGERETRACT)
+        .value("ARBITERMPRECALL", sc2::ABILITY_ID::ARBITERMPRECALL)
+        .value("ARBITERMPSTASISFIELD", sc2::ABILITY_ID::ARBITERMPSTASISFIELD)
+        .value("ARCHIVESEAL", sc2::ABILITY_ID::ARCHIVESEAL)
+        .value("ARCHONWARP_ARCHONWARPTARGET", sc2::ABILITY_ID::ARCHONWARP_ARCHONWARPTARGET)
+        .value("ARMORYRESEARCHSWARM_TERRANVEHICLEANDSHIPPLATINGLEVEL1", sc2::ABILITY_ID::ARMORYRESEARCHSWARM_TERRANVEHICLEANDSHIPPLATINGLEVEL1)
+        .value("ARMORYRESEARCHSWARM_TERRANVEHICLEANDSHIPPLATINGLEVEL2", sc2::ABILITY_ID::ARMORYRESEARCHSWARM_TERRANVEHICLEANDSHIPPLATINGLEVEL2)
+        .value("ARMORYRESEARCHSWARM_TERRANVEHICLEANDSHIPPLATINGLEVEL3", sc2::ABILITY_ID::ARMORYRESEARCHSWARM_TERRANVEHICLEANDSHIPPLATINGLEVEL3)
+        .value("ARMORYRESEARCHSWARM_TERRANVEHICLEANDSHIPWEAPONSLEVEL1", sc2::ABILITY_ID::ARMORYRESEARCHSWARM_TERRANVEHICLEANDSHIPWEAPONSLEVEL1)
+        .value("ARMORYRESEARCHSWARM_TERRANVEHICLEANDSHIPWEAPONSLEVEL2", sc2::ABILITY_ID::ARMORYRESEARCHSWARM_TERRANVEHICLEANDSHIPWEAPONSLEVEL2)
+        .value("ARMORYRESEARCHSWARM_TERRANVEHICLEANDSHIPWEAPONSLEVEL3", sc2::ABILITY_ID::ARMORYRESEARCHSWARM_TERRANVEHICLEANDSHIPWEAPONSLEVEL3)
+        .value("ARTANISVORTEX_VORTEX", sc2::ABILITY_ID::ARTANISVORTEX_VORTEX)
+        .value("ARTANISWORMHOLETRANSIT_WORMHOLETRANSIT", sc2::ABILITY_ID::ARTANISWORMHOLETRANSIT_WORMHOLETRANSIT)
         .value("ATTACK", sc2::ABILITY_ID::ATTACK)
         .value("ATTACK_ATTACK", sc2::ABILITY_ID::ATTACK_ATTACK)
+        .value("ATTACK_ATTACKALLOWSINVULNERABLE", sc2::ABILITY_ID::ATTACK_ATTACKALLOWSINVULNERABLE)
+        .value("ATTACK_ATTACKBARRAGE", sc2::ABILITY_ID::ATTACK_ATTACKBARRAGE)
         .value("ATTACK_ATTACKBUILDING", sc2::ABILITY_ID::ATTACK_ATTACKBUILDING)
+        .value("ATTACK_ATTACKTOWARDS", sc2::ABILITY_ID::ATTACK_ATTACKTOWARDS)
+        .value("ATTACK_ATTACKWARPPRISM", sc2::ABILITY_ID::ATTACK_ATTACKWARPPRISM)
+        .value("ATTACK_BATTLECRUISER", sc2::ABILITY_ID::ATTACK_BATTLECRUISER)
         .value("ATTACK_REDIRECT", sc2::ABILITY_ID::ATTACK_REDIRECT)
+        .value("BARRACKSREACTORMORPH_REACTOR", sc2::ABILITY_ID::BARRACKSREACTORMORPH_REACTOR)
+        .value("BARRACKSTECHLABMORPH_TECHLABBARRACKS", sc2::ABILITY_ID::BARRACKSTECHLABMORPH_TECHLABBARRACKS)
+        .value("BARRACKSTECHREACTORMORPH_TECHLABBARRACKS", sc2::ABILITY_ID::BARRACKSTECHREACTORMORPH_TECHLABBARRACKS)
+        .value("BATTLECRUISERATTACKEVALUATOR_MOTHERSHIPCOREATTACK", sc2::ABILITY_ID::BATTLECRUISERATTACKEVALUATOR_MOTHERSHIPCOREATTACK)
+        .value("BATTLECRUISERMOVE_ACQUIREMOVE", sc2::ABILITY_ID::BATTLECRUISERMOVE_ACQUIREMOVE)
+        .value("BATTLECRUISERMOVE_MOVE", sc2::ABILITY_ID::BATTLECRUISERMOVE_MOVE)
+        .value("BATTLECRUISERMOVE_MOVEHOLDPOSITION", sc2::ABILITY_ID::BATTLECRUISERMOVE_MOVEHOLDPOSITION)
+        .value("BATTLECRUISERMOVE_MOVEPATROL", sc2::ABILITY_ID::BATTLECRUISERMOVE_MOVEPATROL)
+        .value("BATTLECRUISERMOVE_TURN", sc2::ABILITY_ID::BATTLECRUISERMOVE_TURN)
+        .value("BATTLECRUISERSTOPEVALUATOR_STOP", sc2::ABILITY_ID::BATTLECRUISERSTOPEVALUATOR_STOP)
+        .value("BATTLECRUISERSTOP_CHEER", sc2::ABILITY_ID::BATTLECRUISERSTOP_CHEER)
+        .value("BATTLECRUISERSTOP_DANCE", sc2::ABILITY_ID::BATTLECRUISERSTOP_DANCE)
+        .value("BATTLECRUISERSTOP_HOLDFIRE", sc2::ABILITY_ID::BATTLECRUISERSTOP_HOLDFIRE)
+        .value("BEACON_BEACONMOVE", sc2::ABILITY_ID::BEACON_BEACONMOVE)
+        .value("BEACON_CANCEL", sc2::ABILITY_ID::BEACON_CANCEL)
         .value("BEHAVIOR_BUILDINGATTACKOFF", sc2::ABILITY_ID::BEHAVIOR_BUILDINGATTACKOFF)
         .value("BEHAVIOR_BUILDINGATTACKON", sc2::ABILITY_ID::BEHAVIOR_BUILDINGATTACKON)
         .value("BEHAVIOR_CLOAKOFF", sc2::ABILITY_ID::BEHAVIOR_CLOAKOFF)
@@ -238,17 +307,35 @@ void define_typeenums(py::module & m)
         .value("BEHAVIOR_GENERATECREEPOFF", sc2::ABILITY_ID::BEHAVIOR_GENERATECREEPOFF)
         .value("BEHAVIOR_GENERATECREEPON", sc2::ABILITY_ID::BEHAVIOR_GENERATECREEPON)
         .value("BEHAVIOR_HOLDFIREOFF", sc2::ABILITY_ID::BEHAVIOR_HOLDFIREOFF)
+        .value("BEHAVIOR_HOLDFIREOFF_GHOST", sc2::ABILITY_ID::BEHAVIOR_HOLDFIREOFF_GHOST)
         .value("BEHAVIOR_HOLDFIREOFF_LURKER", sc2::ABILITY_ID::BEHAVIOR_HOLDFIREOFF_LURKER)
         .value("BEHAVIOR_HOLDFIREON", sc2::ABILITY_ID::BEHAVIOR_HOLDFIREON)
         .value("BEHAVIOR_HOLDFIREON_GHOST", sc2::ABILITY_ID::BEHAVIOR_HOLDFIREON_GHOST)
         .value("BEHAVIOR_HOLDFIREON_LURKER", sc2::ABILITY_ID::BEHAVIOR_HOLDFIREON_LURKER)
         .value("BEHAVIOR_PULSARBEAMOFF", sc2::ABILITY_ID::BEHAVIOR_PULSARBEAMOFF)
         .value("BEHAVIOR_PULSARBEAMON", sc2::ABILITY_ID::BEHAVIOR_PULSARBEAMON)
+        .value("BIODOMECOMMANDLAND_LAND", sc2::ABILITY_ID::BIODOMECOMMANDLAND_LAND)
+        .value("BIODOMECOMMANDLIFTOFF_LIFT", sc2::ABILITY_ID::BIODOMECOMMANDLIFTOFF_LIFT)
+        .value("BIODOMETRANSPORT_BIODOMELOAD", sc2::ABILITY_ID::BIODOMETRANSPORT_BIODOMELOAD)
+        .value("BIODOMETRANSPORT_BIODOMEUNLOADALL", sc2::ABILITY_ID::BIODOMETRANSPORT_BIODOMEUNLOADALL)
+        .value("BIOPLASMIDDISCHARGE", sc2::ABILITY_ID::BIOPLASMIDDISCHARGE)
+        .value("BIOSTASIS", sc2::ABILITY_ID::BIOSTASIS)
+        .value("BONESHEAL", sc2::ABILITY_ID::BONESHEAL)
+        .value("BONESTOSSGRENADE_TOSSGRENADETYCHUS", sc2::ABILITY_ID::BONESTOSSGRENADE_TOSSGRENADETYCHUS)
+        .value("BROODLORDQUEUE2_CANCEL", sc2::ABILITY_ID::BROODLORDQUEUE2_CANCEL)
+        .value("BROODLORDQUEUE2_CANCELSLOT", sc2::ABILITY_ID::BROODLORDQUEUE2_CANCELSLOT)
+        .value("BUILDINGSHIELD", sc2::ABILITY_ID::BUILDINGSHIELD)
+        .value("BUILDINGSTASIS", sc2::ABILITY_ID::BUILDINGSTASIS)
+        .value("BUILDINPROGRESSNONCANCELLABLE_CANCEL", sc2::ABILITY_ID::BUILDINPROGRESSNONCANCELLABLE_CANCEL)
+        .value("BUILDINPROGRESSNYDUSCANAL_CANCEL", sc2::ABILITY_ID::BUILDINPROGRESSNYDUSCANAL_CANCEL)
+        .value("BUILDNYDUSCANAL_CANCEL", sc2::ABILITY_ID::BUILDNYDUSCANAL_CANCEL)
+        .value("BUILDNYDUSCANAL_SUMMONNYDUSCANALATTACKER", sc2::ABILITY_ID::BUILDNYDUSCANAL_SUMMONNYDUSCANALATTACKER)
         .value("BUILD_ARMORY", sc2::ABILITY_ID::BUILD_ARMORY)
         .value("BUILD_ASSIMILATOR", sc2::ABILITY_ID::BUILD_ASSIMILATOR)
         .value("BUILD_BANELINGNEST", sc2::ABILITY_ID::BUILD_BANELINGNEST)
         .value("BUILD_BARRACKS", sc2::ABILITY_ID::BUILD_BARRACKS)
         .value("BUILD_BUNKER", sc2::ABILITY_ID::BUILD_BUNKER)
+        .value("BUILD_CANCEL", sc2::ABILITY_ID::BUILD_CANCEL)
         .value("BUILD_COMMANDCENTER", sc2::ABILITY_ID::BUILD_COMMANDCENTER)
         .value("BUILD_CREEPTUMOR", sc2::ABILITY_ID::BUILD_CREEPTUMOR)
         .value("BUILD_CREEPTUMOR_QUEEN", sc2::ABILITY_ID::BUILD_CREEPTUMOR_QUEEN)
@@ -268,6 +355,7 @@ void define_typeenums(py::module & m)
         .value("BUILD_HYDRALISKDEN", sc2::ABILITY_ID::BUILD_HYDRALISKDEN)
         .value("BUILD_INFESTATIONPIT", sc2::ABILITY_ID::BUILD_INFESTATIONPIT)
         .value("BUILD_INTERCEPTORS", sc2::ABILITY_ID::BUILD_INTERCEPTORS)
+        .value("BUILD_LURKERDEN", sc2::ABILITY_ID::BUILD_LURKERDEN)
         .value("BUILD_MISSILETURRET", sc2::ABILITY_ID::BUILD_MISSILETURRET)
         .value("BUILD_NEXUS", sc2::ABILITY_ID::BUILD_NEXUS)
         .value("BUILD_NUKE", sc2::ABILITY_ID::BUILD_NUKE)
@@ -300,36 +388,74 @@ void define_typeenums(py::module & m)
         .value("BUILD_TEMPLARARCHIVE", sc2::ABILITY_ID::BUILD_TEMPLARARCHIVE)
         .value("BUILD_TWILIGHTCOUNCIL", sc2::ABILITY_ID::BUILD_TWILIGHTCOUNCIL)
         .value("BUILD_ULTRALISKCAVERN", sc2::ABILITY_ID::BUILD_ULTRALISKCAVERN)
+        .value("BUNKERATTACK", sc2::ABILITY_ID::BUNKERATTACK)
+        .value("BUNKERSTOP_HOLDFIRESPECIAL", sc2::ABILITY_ID::BUNKERSTOP_HOLDFIRESPECIAL)
+        .value("BUNKERSTOP_STOPBUNKER", sc2::ABILITY_ID::BUNKERSTOP_STOPBUNKER)
+        .value("BURROWBANELINGDOWN_CANCEL", sc2::ABILITY_ID::BURROWBANELINGDOWN_CANCEL)
+        .value("BURROWCREEPTUMORDOWN_BURROWDOWN", sc2::ABILITY_ID::BURROWCREEPTUMORDOWN_BURROWDOWN)
         .value("BURROWDOWN", sc2::ABILITY_ID::BURROWDOWN)
         .value("BURROWDOWN_BANELING", sc2::ABILITY_ID::BURROWDOWN_BANELING)
         .value("BURROWDOWN_DRONE", sc2::ABILITY_ID::BURROWDOWN_DRONE)
         .value("BURROWDOWN_HYDRALISK", sc2::ABILITY_ID::BURROWDOWN_HYDRALISK)
         .value("BURROWDOWN_INFESTOR", sc2::ABILITY_ID::BURROWDOWN_INFESTOR)
+        .value("BURROWDOWN_INFESTORTERRAN", sc2::ABILITY_ID::BURROWDOWN_INFESTORTERRAN)
         .value("BURROWDOWN_LURKER", sc2::ABILITY_ID::BURROWDOWN_LURKER)
         .value("BURROWDOWN_QUEEN", sc2::ABILITY_ID::BURROWDOWN_QUEEN)
         .value("BURROWDOWN_RAVAGER", sc2::ABILITY_ID::BURROWDOWN_RAVAGER)
         .value("BURROWDOWN_ROACH", sc2::ABILITY_ID::BURROWDOWN_ROACH)
         .value("BURROWDOWN_SWARMHOST", sc2::ABILITY_ID::BURROWDOWN_SWARMHOST)
+        .value("BURROWDOWN_ULTRALISK", sc2::ABILITY_ID::BURROWDOWN_ULTRALISK)
         .value("BURROWDOWN_WIDOWMINE", sc2::ABILITY_ID::BURROWDOWN_WIDOWMINE)
         .value("BURROWDOWN_ZERGLING", sc2::ABILITY_ID::BURROWDOWN_ZERGLING)
+        .value("BURROWDRONEDOWN_CANCEL", sc2::ABILITY_ID::BURROWDRONEDOWN_CANCEL)
+        .value("BURROWEDBANELINGSTOP_HOLDFIRESPECIAL", sc2::ABILITY_ID::BURROWEDBANELINGSTOP_HOLDFIRESPECIAL)
+        .value("BURROWEDBANELINGSTOP_STOPROACHBURROWED", sc2::ABILITY_ID::BURROWEDBANELINGSTOP_STOPROACHBURROWED)
+        .value("BURROWEDSTOP_HOLDFIRESPECIAL", sc2::ABILITY_ID::BURROWEDSTOP_HOLDFIRESPECIAL)
+        .value("BURROWEDSTOP_STOPROACHBURROWED", sc2::ABILITY_ID::BURROWEDSTOP_STOPROACHBURROWED)
+        .value("BURROWHUNTERKILLERDOWN_BURROWDOWN", sc2::ABILITY_ID::BURROWHUNTERKILLERDOWN_BURROWDOWN)
+        .value("BURROWHUNTERKILLERDOWN_CANCEL", sc2::ABILITY_ID::BURROWHUNTERKILLERDOWN_CANCEL)
+        .value("BURROWHUNTERKILLERUP_BURROWUP", sc2::ABILITY_ID::BURROWHUNTERKILLERUP_BURROWUP)
+        .value("BURROWHYDRALISKDOWN_CANCEL", sc2::ABILITY_ID::BURROWHYDRALISKDOWN_CANCEL)
+        .value("BURROWINFESTEDABOMINATIONDOWN_BURROWDOWN", sc2::ABILITY_ID::BURROWINFESTEDABOMINATIONDOWN_BURROWDOWN)
+        .value("BURROWINFESTEDABOMINATIONUP_BURROWUP", sc2::ABILITY_ID::BURROWINFESTEDABOMINATIONUP_BURROWUP)
+        .value("BURROWINFESTEDCIVILIANDOWN_BURROWDOWN", sc2::ABILITY_ID::BURROWINFESTEDCIVILIANDOWN_BURROWDOWN)
+        .value("BURROWINFESTEDCIVILIANUP_BURROWUP", sc2::ABILITY_ID::BURROWINFESTEDCIVILIANUP_BURROWUP)
+        .value("BURROWINFESTEDTERRANCAMPAIGNDOWN_BURROWDOWN", sc2::ABILITY_ID::BURROWINFESTEDTERRANCAMPAIGNDOWN_BURROWDOWN)
+        .value("BURROWINFESTEDTERRANCAMPAIGNUP_BURROWUP", sc2::ABILITY_ID::BURROWINFESTEDTERRANCAMPAIGNUP_BURROWUP)
+        .value("BURROWINFESTORDOWN_CANCEL", sc2::ABILITY_ID::BURROWINFESTORDOWN_CANCEL)
+        .value("BURROWLURKERDOWN_BURROWDOWN", sc2::ABILITY_ID::BURROWLURKERDOWN_BURROWDOWN)
+        .value("BURROWLURKERDOWN_CANCEL", sc2::ABILITY_ID::BURROWLURKERDOWN_CANCEL)
+        .value("BURROWLURKERMPDOWN_CANCEL", sc2::ABILITY_ID::BURROWLURKERMPDOWN_CANCEL)
+        .value("BURROWLURKERUP_BURROWUP", sc2::ABILITY_ID::BURROWLURKERUP_BURROWUP)
+        .value("BURROWOMEGALISKDOWN_BURROWDOWN", sc2::ABILITY_ID::BURROWOMEGALISKDOWN_BURROWDOWN)
+        .value("BURROWOMEGALISKUP_BURROWUP", sc2::ABILITY_ID::BURROWOMEGALISKUP_BURROWUP)
+        .value("BURROWQUEENDOWN_CANCEL", sc2::ABILITY_ID::BURROWQUEENDOWN_CANCEL)
+        .value("BURROWRAVAGERDOWN_CANCEL", sc2::ABILITY_ID::BURROWRAVAGERDOWN_CANCEL)
+        .value("BURROWROACHDOWN_CANCEL", sc2::ABILITY_ID::BURROWROACHDOWN_CANCEL)
         .value("BURROWUP", sc2::ABILITY_ID::BURROWUP)
         .value("BURROWUP_BANELING", sc2::ABILITY_ID::BURROWUP_BANELING)
         .value("BURROWUP_DRONE", sc2::ABILITY_ID::BURROWUP_DRONE)
         .value("BURROWUP_HYDRALISK", sc2::ABILITY_ID::BURROWUP_HYDRALISK)
         .value("BURROWUP_INFESTOR", sc2::ABILITY_ID::BURROWUP_INFESTOR)
+        .value("BURROWUP_INFESTORTERRAN", sc2::ABILITY_ID::BURROWUP_INFESTORTERRAN)
         .value("BURROWUP_LURKER", sc2::ABILITY_ID::BURROWUP_LURKER)
         .value("BURROWUP_QUEEN", sc2::ABILITY_ID::BURROWUP_QUEEN)
         .value("BURROWUP_RAVAGER", sc2::ABILITY_ID::BURROWUP_RAVAGER)
         .value("BURROWUP_ROACH", sc2::ABILITY_ID::BURROWUP_ROACH)
         .value("BURROWUP_SWARMHOST", sc2::ABILITY_ID::BURROWUP_SWARMHOST)
+        .value("BURROWUP_ULTRALISK", sc2::ABILITY_ID::BURROWUP_ULTRALISK)
         .value("BURROWUP_WIDOWMINE", sc2::ABILITY_ID::BURROWUP_WIDOWMINE)
         .value("BURROWUP_ZERGLING", sc2::ABILITY_ID::BURROWUP_ZERGLING)
+        .value("BURROWZERGLINGDOWN_CANCEL", sc2::ABILITY_ID::BURROWZERGLINGDOWN_CANCEL)
         .value("CANCEL", sc2::ABILITY_ID::CANCEL)
         .value("CANCELSLOT_ADDON", sc2::ABILITY_ID::CANCELSLOT_ADDON)
+        .value("CANCELSLOT_HANGARQUEUE5", sc2::ABILITY_ID::CANCELSLOT_HANGARQUEUE5)
         .value("CANCELSLOT_QUEUE1", sc2::ABILITY_ID::CANCELSLOT_QUEUE1)
         .value("CANCELSLOT_QUEUE5", sc2::ABILITY_ID::CANCELSLOT_QUEUE5)
         .value("CANCELSLOT_QUEUECANCELTOSELECTION", sc2::ABILITY_ID::CANCELSLOT_QUEUECANCELTOSELECTION)
         .value("CANCELSLOT_QUEUEPASSIVE", sc2::ABILITY_ID::CANCELSLOT_QUEUEPASSIVE)
+        .value("CANCELSLOT_QUEUEPASSIVECANCELTOSELECTION", sc2::ABILITY_ID::CANCELSLOT_QUEUEPASSIVECANCELTOSELECTION)
+        .value("CANCELTERRAZINEHARVEST_CANCEL", sc2::ABILITY_ID::CANCELTERRAZINEHARVEST_CANCEL)
         .value("CANCEL_ADEPTPHASESHIFT", sc2::ABILITY_ID::CANCEL_ADEPTPHASESHIFT)
         .value("CANCEL_ADEPTSHADEPHASESHIFT", sc2::ABILITY_ID::CANCEL_ADEPTSHADEPHASESHIFT)
         .value("CANCEL_BARRACKSADDON", sc2::ABILITY_ID::CANCEL_BARRACKSADDON)
@@ -337,8 +463,12 @@ void define_typeenums(py::module & m)
         .value("CANCEL_CREEPTUMOR", sc2::ABILITY_ID::CANCEL_CREEPTUMOR)
         .value("CANCEL_FACTORYADDON", sc2::ABILITY_ID::CANCEL_FACTORYADDON)
         .value("CANCEL_GRAVITONBEAM", sc2::ABILITY_ID::CANCEL_GRAVITONBEAM)
+        .value("CANCEL_HANGARQUEUE5", sc2::ABILITY_ID::CANCEL_HANGARQUEUE5)
         .value("CANCEL_LAST", sc2::ABILITY_ID::CANCEL_LAST)
+        .value("CANCEL_LOCKON", sc2::ABILITY_ID::CANCEL_LOCKON)
         .value("CANCEL_MORPHBROODLORD", sc2::ABILITY_ID::CANCEL_MORPHBROODLORD)
+        .value("CANCEL_MORPHGREATERSPIRE", sc2::ABILITY_ID::CANCEL_MORPHGREATERSPIRE)
+        .value("CANCEL_MORPHHIVE", sc2::ABILITY_ID::CANCEL_MORPHHIVE)
         .value("CANCEL_MORPHLAIR", sc2::ABILITY_ID::CANCEL_MORPHLAIR)
         .value("CANCEL_MORPHLURKER", sc2::ABILITY_ID::CANCEL_MORPHLURKER)
         .value("CANCEL_MORPHLURKERDEN", sc2::ABILITY_ID::CANCEL_MORPHLURKERDEN)
@@ -348,16 +478,86 @@ void define_typeenums(py::module & m)
         .value("CANCEL_MORPHOVERSEER", sc2::ABILITY_ID::CANCEL_MORPHOVERSEER)
         .value("CANCEL_MORPHPLANETARYFORTRESS", sc2::ABILITY_ID::CANCEL_MORPHPLANETARYFORTRESS)
         .value("CANCEL_MORPHRAVAGER", sc2::ABILITY_ID::CANCEL_MORPHRAVAGER)
+        .value("CANCEL_MORPHTHOREXPLOSIVEMODE", sc2::ABILITY_ID::CANCEL_MORPHTHOREXPLOSIVEMODE)
+        .value("CANCEL_MOTHERSHIPSTASIS", sc2::ABILITY_ID::CANCEL_MOTHERSHIPSTASIS)
+        .value("CANCEL_NEURALPARASITE", sc2::ABILITY_ID::CANCEL_NEURALPARASITE)
+        .value("CANCEL_NUKE", sc2::ABILITY_ID::CANCEL_NUKE)
+        .value("CANCEL_PROTOSSBUILDINGQUEUE", sc2::ABILITY_ID::CANCEL_PROTOSSBUILDINGQUEUE)
         .value("CANCEL_QUEUE1", sc2::ABILITY_ID::CANCEL_QUEUE1)
         .value("CANCEL_QUEUE5", sc2::ABILITY_ID::CANCEL_QUEUE5)
         .value("CANCEL_QUEUEADDON", sc2::ABILITY_ID::CANCEL_QUEUEADDON)
         .value("CANCEL_QUEUECANCELTOSELECTION", sc2::ABILITY_ID::CANCEL_QUEUECANCELTOSELECTION)
         .value("CANCEL_QUEUEPASIVE", sc2::ABILITY_ID::CANCEL_QUEUEPASIVE)
         .value("CANCEL_QUEUEPASSIVECANCELTOSELECTION", sc2::ABILITY_ID::CANCEL_QUEUEPASSIVECANCELTOSELECTION)
+        .value("CANCEL_SLOT", sc2::ABILITY_ID::CANCEL_SLOT)
         .value("CANCEL_SPINECRAWLERROOT", sc2::ABILITY_ID::CANCEL_SPINECRAWLERROOT)
+        .value("CANCEL_SPORECRAWLERROOT", sc2::ABILITY_ID::CANCEL_SPORECRAWLERROOT)
         .value("CANCEL_STARPORTADDON", sc2::ABILITY_ID::CANCEL_STARPORTADDON)
+        .value("CANCEL_STASISTRAP", sc2::ABILITY_ID::CANCEL_STASISTRAP)
+        .value("CANCEL_TEMPESTDISRUPTIONBLAST", sc2::ABILITY_ID::CANCEL_TEMPESTDISRUPTIONBLAST)
+        .value("CANCEL_VOIDRAYPRISMATICALIGNMENT", sc2::ABILITY_ID::CANCEL_VOIDRAYPRISMATICALIGNMENT)
+        .value("CHANGESHRINEPROTOSS", sc2::ABILITY_ID::CHANGESHRINEPROTOSS)
+        .value("CHANGESHRINETERRAN", sc2::ABILITY_ID::CHANGESHRINETERRAN)
+        .value("CLIFFDOORCLOSE0_SPACEPLATFORMDOORCLOSE", sc2::ABILITY_ID::CLIFFDOORCLOSE0_SPACEPLATFORMDOORCLOSE)
+        .value("CLIFFDOORCLOSE1_SPACEPLATFORMDOORCLOSE", sc2::ABILITY_ID::CLIFFDOORCLOSE1_SPACEPLATFORMDOORCLOSE)
+        .value("CLIFFDOOROPEN0_SPACEPLATFORMDOOROPEN", sc2::ABILITY_ID::CLIFFDOOROPEN0_SPACEPLATFORMDOOROPEN)
+        .value("CLIFFDOOROPEN1_SPACEPLATFORMDOOROPEN", sc2::ABILITY_ID::CLIFFDOOROPEN1_SPACEPLATFORMDOOROPEN)
+        .value("CLOAKINGDRONE", sc2::ABILITY_ID::CLOAKINGDRONE)
+        .value("CLONE", sc2::ABILITY_ID::CLONE)
+        .value("COLONISTSHIPLAND_LAND", sc2::ABILITY_ID::COLONISTSHIPLAND_LAND)
+        .value("COLONISTSHIPLIFTOFF_LIFT", sc2::ABILITY_ID::COLONISTSHIPLIFTOFF_LIFT)
+        .value("COLONISTTRANSPORTTRANSPORT_COLONISTTRANSPORTLOAD", sc2::ABILITY_ID::COLONISTTRANSPORTTRANSPORT_COLONISTTRANSPORTLOAD)
+        .value("COLONISTTRANSPORTTRANSPORT_COLONISTTRANSPORTUNLOADALL", sc2::ABILITY_ID::COLONISTTRANSPORTTRANSPORT_COLONISTTRANSPORTUNLOADALL)
+        .value("COLONYINFESTATION", sc2::ABILITY_ID::COLONYINFESTATION)
+        .value("COLONYSHIPTRANSPORT_MEDIVACLOAD", sc2::ABILITY_ID::COLONYSHIPTRANSPORT_MEDIVACLOAD)
+        .value("COLONYSHIPTRANSPORT_MEDIVACUNLOADALL", sc2::ABILITY_ID::COLONYSHIPTRANSPORT_MEDIVACUNLOADALL)
+        .value("CONSUMEDNA", sc2::ABILITY_ID::CONSUMEDNA)
+        .value("CONSUMPTION", sc2::ABILITY_ID::CONSUMPTION)
+        .value("CORRUPTIONBOMB", sc2::ABILITY_ID::CORRUPTIONBOMB)
+        .value("CORRUPTIONBOMB_CANCEL", sc2::ABILITY_ID::CORRUPTIONBOMB_CANCEL)
+        .value("CORRUPTION_CANCEL", sc2::ABILITY_ID::CORRUPTION_CANCEL)
+        .value("CORRUPTION_CORRUPTIONABILITY", sc2::ABILITY_ID::CORRUPTION_CORRUPTIONABILITY)
+        .value("CORSAIRMPDISRUPTIONWEB", sc2::ABILITY_ID::CORSAIRMPDISRUPTIONWEB)
+        .value("CRITTERFLEE", sc2::ABILITY_ID::CRITTERFLEE)
+        .value("D8CHARGE", sc2::ABILITY_ID::D8CHARGE)
+        .value("DEFENSIVEMATRIX", sc2::ABILITY_ID::DEFENSIVEMATRIX)
+        .value("DEFILERMPBURROW_BURROWDOWN", sc2::ABILITY_ID::DEFILERMPBURROW_BURROWDOWN)
+        .value("DEFILERMPBURROW_CANCEL", sc2::ABILITY_ID::DEFILERMPBURROW_CANCEL)
+        .value("DEFILERMPCONSUME", sc2::ABILITY_ID::DEFILERMPCONSUME)
+        .value("DEFILERMPDARKSWARM", sc2::ABILITY_ID::DEFILERMPDARKSWARM)
+        .value("DEFILERMPPLAGUE", sc2::ABILITY_ID::DEFILERMPPLAGUE)
+        .value("DEFILERMPUNBURROW_BURROWUP", sc2::ABILITY_ID::DEFILERMPUNBURROW_BURROWUP)
+        .value("DESTRUCTIBLEGATEDIAGONALBLURLOWERED_GATEOPEN", sc2::ABILITY_ID::DESTRUCTIBLEGATEDIAGONALBLURLOWERED_GATEOPEN)
+        .value("DESTRUCTIBLEGATEDIAGONALBLUR_GATECLOSE", sc2::ABILITY_ID::DESTRUCTIBLEGATEDIAGONALBLUR_GATECLOSE)
+        .value("DESTRUCTIBLEGATEDIAGONALULBRLOWERED_GATEOPEN", sc2::ABILITY_ID::DESTRUCTIBLEGATEDIAGONALULBRLOWERED_GATEOPEN)
+        .value("DESTRUCTIBLEGATEDIAGONALULBR_GATECLOSE", sc2::ABILITY_ID::DESTRUCTIBLEGATEDIAGONALULBR_GATECLOSE)
+        .value("DESTRUCTIBLEGATESTRAIGHTHORIZONTALBFLOWERED_GATEOPEN", sc2::ABILITY_ID::DESTRUCTIBLEGATESTRAIGHTHORIZONTALBFLOWERED_GATEOPEN)
+        .value("DESTRUCTIBLEGATESTRAIGHTHORIZONTALBF_GATECLOSE", sc2::ABILITY_ID::DESTRUCTIBLEGATESTRAIGHTHORIZONTALBF_GATECLOSE)
+        .value("DESTRUCTIBLEGATESTRAIGHTHORIZONTALLOWERED_GATEOPEN", sc2::ABILITY_ID::DESTRUCTIBLEGATESTRAIGHTHORIZONTALLOWERED_GATEOPEN)
+        .value("DESTRUCTIBLEGATESTRAIGHTHORIZONTAL_GATECLOSE", sc2::ABILITY_ID::DESTRUCTIBLEGATESTRAIGHTHORIZONTAL_GATECLOSE)
+        .value("DESTRUCTIBLEGATESTRAIGHTVERTICALLFLOWERED_GATEOPEN", sc2::ABILITY_ID::DESTRUCTIBLEGATESTRAIGHTVERTICALLFLOWERED_GATEOPEN)
+        .value("DESTRUCTIBLEGATESTRAIGHTVERTICALLF_GATECLOSE", sc2::ABILITY_ID::DESTRUCTIBLEGATESTRAIGHTVERTICALLF_GATECLOSE)
+        .value("DESTRUCTIBLEGATESTRAIGHTVERTICALLOWERED_GATEOPEN", sc2::ABILITY_ID::DESTRUCTIBLEGATESTRAIGHTVERTICALLOWERED_GATEOPEN)
+        .value("DESTRUCTIBLEGATESTRAIGHTVERTICAL_GATECLOSE", sc2::ABILITY_ID::DESTRUCTIBLEGATESTRAIGHTVERTICAL_GATECLOSE)
+        .value("DIGESTERCREEPSPRAY", sc2::ABILITY_ID::DIGESTERCREEPSPRAY)
+        .value("DIGESTERTRANSPORT_LOADDIGESTER", sc2::ABILITY_ID::DIGESTERTRANSPORT_LOADDIGESTER)
+        .value("DISGUISEASMARINEWITHOUTSHIELD_MARINE", sc2::ABILITY_ID::DISGUISEASMARINEWITHOUTSHIELD_MARINE)
+        .value("DISGUISEASMARINEWITHSHIELD_MARINE", sc2::ABILITY_ID::DISGUISEASMARINEWITHSHIELD_MARINE)
+        .value("DISGUISEASZEALOT_ZEALOT", sc2::ABILITY_ID::DISGUISEASZEALOT_ZEALOT)
+        .value("DISGUISEASZERGLINGWITHOUTWINGS_ZERGLING", sc2::ABILITY_ID::DISGUISEASZERGLINGWITHOUTWINGS_ZERGLING)
+        .value("DISGUISEASZERGLINGWITHWINGS_ZERGLING", sc2::ABILITY_ID::DISGUISEASZERGLINGWITHWINGS_ZERGLING)
+        .value("DOMINATION", sc2::ABILITY_ID::DOMINATION)
+        .value("DOMINATION_CANCEL", sc2::ABILITY_ID::DOMINATION_CANCEL)
+        .value("DROPTOSUPPLYDEPOT_RAISE", sc2::ABILITY_ID::DROPTOSUPPLYDEPOT_RAISE)
+        .value("DUKESREVENGEDEFENSIVEMATRIX_DEFENSIVEMATRIX", sc2::ABILITY_ID::DUKESREVENGEDEFENSIVEMATRIX_DEFENSIVEMATRIX)
+        .value("DUKESREVENGEMISSILEPODS_MISSILEPODS", sc2::ABILITY_ID::DUKESREVENGEMISSILEPODS_MISSILEPODS)
+        .value("DUSKWINGBANSHEECLOAKINGFIELD_CLOAKOFF", sc2::ABILITY_ID::DUSKWINGBANSHEECLOAKINGFIELD_CLOAKOFF)
+        .value("DUSKWINGBANSHEECLOAKINGFIELD_CLOAKONBANSHEE", sc2::ABILITY_ID::DUSKWINGBANSHEECLOAKINGFIELD_CLOAKONBANSHEE)
+        .value("DUTCHPLACETURRET", sc2::ABILITY_ID::DUTCHPLACETURRET)
         .value("EFFECT_ABDUCT", sc2::ABILITY_ID::EFFECT_ABDUCT)
         .value("EFFECT_ADEPTPHASESHIFT", sc2::ABILITY_ID::EFFECT_ADEPTPHASESHIFT)
+        .value("EFFECT_AMORPHOUSARMORCLOUD", sc2::ABILITY_ID::EFFECT_AMORPHOUSARMORCLOUD)
+        .value("EFFECT_ANTIARMORMISSILE", sc2::ABILITY_ID::EFFECT_ANTIARMORMISSILE)
         .value("EFFECT_AUTOTURRET", sc2::ABILITY_ID::EFFECT_AUTOTURRET)
         .value("EFFECT_BLINDINGCLOUD", sc2::ABILITY_ID::EFFECT_BLINDINGCLOUD)
         .value("EFFECT_BLINK", sc2::ABILITY_ID::EFFECT_BLINK)
@@ -366,6 +566,7 @@ void define_typeenums(py::module & m)
         .value("EFFECT_CAUSTICSPRAY", sc2::ABILITY_ID::EFFECT_CAUSTICSPRAY)
         .value("EFFECT_CHARGE", sc2::ABILITY_ID::EFFECT_CHARGE)
         .value("EFFECT_CHRONOBOOST", sc2::ABILITY_ID::EFFECT_CHRONOBOOST)
+        .value("EFFECT_CHRONOBOOSTENERGYCOST", sc2::ABILITY_ID::EFFECT_CHRONOBOOSTENERGYCOST)
         .value("EFFECT_CONTAMINATE", sc2::ABILITY_ID::EFFECT_CONTAMINATE)
         .value("EFFECT_CORROSIVEBILE", sc2::ABILITY_ID::EFFECT_CORROSIVEBILE)
         .value("EFFECT_EMP", sc2::ABILITY_ID::EFFECT_EMP)
@@ -381,12 +582,15 @@ void define_typeenums(py::module & m)
         .value("EFFECT_IMMORTALBARRIER", sc2::ABILITY_ID::EFFECT_IMMORTALBARRIER)
         .value("EFFECT_INFESTEDTERRANS", sc2::ABILITY_ID::EFFECT_INFESTEDTERRANS)
         .value("EFFECT_INJECTLARVA", sc2::ABILITY_ID::EFFECT_INJECTLARVA)
+        .value("EFFECT_INTERFERENCEMATRIX", sc2::ABILITY_ID::EFFECT_INTERFERENCEMATRIX)
         .value("EFFECT_KD8CHARGE", sc2::ABILITY_ID::EFFECT_KD8CHARGE)
         .value("EFFECT_LOCKON", sc2::ABILITY_ID::EFFECT_LOCKON)
         .value("EFFECT_LOCUSTSWOOP", sc2::ABILITY_ID::EFFECT_LOCUSTSWOOP)
         .value("EFFECT_MASSRECALL", sc2::ABILITY_ID::EFFECT_MASSRECALL)
         .value("EFFECT_MASSRECALL_MOTHERSHIP", sc2::ABILITY_ID::EFFECT_MASSRECALL_MOTHERSHIP)
         .value("EFFECT_MASSRECALL_MOTHERSHIPCORE", sc2::ABILITY_ID::EFFECT_MASSRECALL_MOTHERSHIPCORE)
+        .value("EFFECT_MASSRECALL_NEXUS", sc2::ABILITY_ID::EFFECT_MASSRECALL_NEXUS)
+        .value("EFFECT_MASSRECALL_STRATEGICRECALL", sc2::ABILITY_ID::EFFECT_MASSRECALL_STRATEGICRECALL)
         .value("EFFECT_MEDIVACIGNITEAFTERBURNERS", sc2::ABILITY_ID::EFFECT_MEDIVACIGNITEAFTERBURNERS)
         .value("EFFECT_NEURALPARASITE", sc2::ABILITY_ID::EFFECT_NEURALPARASITE)
         .value("EFFECT_NUKECALLDOWN", sc2::ABILITY_ID::EFFECT_NUKECALLDOWN)
@@ -397,7 +601,9 @@ void define_typeenums(py::module & m)
         .value("EFFECT_PSISTORM", sc2::ABILITY_ID::EFFECT_PSISTORM)
         .value("EFFECT_PURIFICATIONNOVA", sc2::ABILITY_ID::EFFECT_PURIFICATIONNOVA)
         .value("EFFECT_REPAIR", sc2::ABILITY_ID::EFFECT_REPAIR)
+        .value("EFFECT_REPAIRDRONE", sc2::ABILITY_ID::EFFECT_REPAIRDRONE)
         .value("EFFECT_REPAIR_MULE", sc2::ABILITY_ID::EFFECT_REPAIR_MULE)
+        .value("EFFECT_REPAIR_REPAIRDRONE", sc2::ABILITY_ID::EFFECT_REPAIR_REPAIRDRONE)
         .value("EFFECT_REPAIR_SCV", sc2::ABILITY_ID::EFFECT_REPAIR_SCV)
         .value("EFFECT_RESTORE", sc2::ABILITY_ID::EFFECT_RESTORE)
         .value("EFFECT_SALVAGE", sc2::ABILITY_ID::EFFECT_SALVAGE)
@@ -411,6 +617,7 @@ void define_typeenums(py::module & m)
         .value("EFFECT_SPRAY_ZERG", sc2::ABILITY_ID::EFFECT_SPRAY_ZERG)
         .value("EFFECT_STIM", sc2::ABILITY_ID::EFFECT_STIM)
         .value("EFFECT_STIM_MARAUDER", sc2::ABILITY_ID::EFFECT_STIM_MARAUDER)
+        .value("EFFECT_STIM_MARAUDER_REDIRECT", sc2::ABILITY_ID::EFFECT_STIM_MARAUDER_REDIRECT)
         .value("EFFECT_STIM_MARINE", sc2::ABILITY_ID::EFFECT_STIM_MARINE)
         .value("EFFECT_STIM_MARINE_REDIRECT", sc2::ABILITY_ID::EFFECT_STIM_MARINE_REDIRECT)
         .value("EFFECT_SUPPLYDROP", sc2::ABILITY_ID::EFFECT_SUPPLYDROP)
@@ -422,6 +629,37 @@ void define_typeenums(py::module & m)
         .value("EFFECT_VOIDRAYPRISMATICALIGNMENT", sc2::ABILITY_ID::EFFECT_VOIDRAYPRISMATICALIGNMENT)
         .value("EFFECT_WIDOWMINEATTACK", sc2::ABILITY_ID::EFFECT_WIDOWMINEATTACK)
         .value("EFFECT_YAMATOGUN", sc2::ABILITY_ID::EFFECT_YAMATOGUN)
+        .value("EGGPOP", sc2::ABILITY_ID::EGGPOP)
+        .value("ENERGYNOVA", sc2::ABILITY_ID::ENERGYNOVA)
+        .value("EVOLUTIONCHAMBERRESEARCH_EVOLVEPROPULSIVEPERISTALSIS", sc2::ABILITY_ID::EVOLUTIONCHAMBERRESEARCH_EVOLVEPROPULSIVEPERISTALSIS)
+        .value("EXPERIMENTALPLASMAGUN", sc2::ABILITY_ID::EXPERIMENTALPLASMAGUN)
+        .value("EXTENDINGBRIDGENEWIDE10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::EXTENDINGBRIDGENEWIDE10OUT_BRIDGEEXTEND)
+        .value("EXTENDINGBRIDGENEWIDE10_BRIDGERETRACT", sc2::ABILITY_ID::EXTENDINGBRIDGENEWIDE10_BRIDGERETRACT)
+        .value("EXTENDINGBRIDGENEWIDE12OUT_BRIDGEEXTEND", sc2::ABILITY_ID::EXTENDINGBRIDGENEWIDE12OUT_BRIDGEEXTEND)
+        .value("EXTENDINGBRIDGENEWIDE12_BRIDGERETRACT", sc2::ABILITY_ID::EXTENDINGBRIDGENEWIDE12_BRIDGERETRACT)
+        .value("EXTENDINGBRIDGENEWIDE8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::EXTENDINGBRIDGENEWIDE8OUT_BRIDGEEXTEND)
+        .value("EXTENDINGBRIDGENEWIDE8_BRIDGERETRACT", sc2::ABILITY_ID::EXTENDINGBRIDGENEWIDE8_BRIDGERETRACT)
+        .value("EXTENDINGBRIDGENWWIDE10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::EXTENDINGBRIDGENWWIDE10OUT_BRIDGEEXTEND)
+        .value("EXTENDINGBRIDGENWWIDE10_BRIDGERETRACT", sc2::ABILITY_ID::EXTENDINGBRIDGENWWIDE10_BRIDGERETRACT)
+        .value("EXTENDINGBRIDGENWWIDE12OUT_BRIDGEEXTEND", sc2::ABILITY_ID::EXTENDINGBRIDGENWWIDE12OUT_BRIDGEEXTEND)
+        .value("EXTENDINGBRIDGENWWIDE12_BRIDGERETRACT", sc2::ABILITY_ID::EXTENDINGBRIDGENWWIDE12_BRIDGERETRACT)
+        .value("EXTENDINGBRIDGENWWIDE8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::EXTENDINGBRIDGENWWIDE8OUT_BRIDGEEXTEND)
+        .value("EXTENDINGBRIDGENWWIDE8_BRIDGERETRACT", sc2::ABILITY_ID::EXTENDINGBRIDGENWWIDE8_BRIDGERETRACT)
+        .value("EYESTALK", sc2::ABILITY_ID::EYESTALK)
+        .value("EYESTALK_CANCEL", sc2::ABILITY_ID::EYESTALK_CANCEL)
+        .value("FACTORYREACTORMORPH_REACTOR", sc2::ABILITY_ID::FACTORYREACTORMORPH_REACTOR)
+        .value("FACTORYTECHLABMORPH_TECHLABFACTORY", sc2::ABILITY_ID::FACTORYTECHLABMORPH_TECHLABFACTORY)
+        .value("FACTORYTECHREACTORMORPH_TECHLABFACTORY", sc2::ABILITY_ID::FACTORYTECHREACTORMORPH_TECHLABFACTORY)
+        .value("FLYERSHIELD", sc2::ABILITY_ID::FLYERSHIELD)
+        .value("FORCEFIELD_CANCEL", sc2::ABILITY_ID::FORCEFIELD_CANCEL)
+        .value("FRENZY", sc2::ABILITY_ID::FRENZY)
+        .value("GATHERSPECIALOBJECT", sc2::ABILITY_ID::GATHERSPECIALOBJECT)
+        .value("GENERAL_HOLDPOSITION", sc2::ABILITY_ID::GENERAL_HOLDPOSITION)
+        .value("GENERAL_MOVE", sc2::ABILITY_ID::GENERAL_MOVE)
+        .value("GENERAL_PATROL", sc2::ABILITY_ID::GENERAL_PATROL)
+        .value("GRAPPLE", sc2::ABILITY_ID::GRAPPLE)
+        .value("GRAVITONPRISON", sc2::ABILITY_ID::GRAVITONPRISON)
+        .value("GWALEARN_TESTLEARN", sc2::ABILITY_ID::GWALEARN_TESTLEARN)
         .value("HALLUCINATION_ADEPT", sc2::ABILITY_ID::HALLUCINATION_ADEPT)
         .value("HALLUCINATION_ARCHON", sc2::ABILITY_ID::HALLUCINATION_ARCHON)
         .value("HALLUCINATION_COLOSSUS", sc2::ABILITY_ID::HALLUCINATION_COLOSSUS)
@@ -440,6 +678,7 @@ void define_typeenums(py::module & m)
         .value("HALT_TERRANBUILD", sc2::ABILITY_ID::HALT_TERRANBUILD)
         .value("HARVEST_GATHER", sc2::ABILITY_ID::HARVEST_GATHER)
         .value("HARVEST_GATHER_DRONE", sc2::ABILITY_ID::HARVEST_GATHER_DRONE)
+        .value("HARVEST_GATHER_MULE", sc2::ABILITY_ID::HARVEST_GATHER_MULE)
         .value("HARVEST_GATHER_PROBE", sc2::ABILITY_ID::HARVEST_GATHER_PROBE)
         .value("HARVEST_GATHER_SCV", sc2::ABILITY_ID::HARVEST_GATHER_SCV)
         .value("HARVEST_RETURN", sc2::ABILITY_ID::HARVEST_RETURN)
@@ -447,385 +686,1360 @@ void define_typeenums(py::module & m)
         .value("HARVEST_RETURN_MULE", sc2::ABILITY_ID::HARVEST_RETURN_MULE)
         .value("HARVEST_RETURN_PROBE", sc2::ABILITY_ID::HARVEST_RETURN_PROBE)
         .value("HARVEST_RETURN_SCV", sc2::ABILITY_ID::HARVEST_RETURN_SCV)
-        .value("HOLDPOSITION", sc2::ABILITY_ID::HOLDPOSITION)
-        .value("LAND", sc2::ABILITY_ID::LAND)
-        .value("LAND_BARRACKS", sc2::ABILITY_ID::LAND_BARRACKS)
-        .value("LAND_COMMANDCENTER", sc2::ABILITY_ID::LAND_COMMANDCENTER)
-        .value("LAND_FACTORY", sc2::ABILITY_ID::LAND_FACTORY)
-        .value("LAND_ORBITALCOMMAND", sc2::ABILITY_ID::LAND_ORBITALCOMMAND)
-        .value("LAND_STARPORT", sc2::ABILITY_ID::LAND_STARPORT)
-        .value("LIFT", sc2::ABILITY_ID::LIFT)
-        .value("LIFT_BARRACKS", sc2::ABILITY_ID::LIFT_BARRACKS)
-        .value("LIFT_COMMANDCENTER", sc2::ABILITY_ID::LIFT_COMMANDCENTER)
-        .value("LIFT_FACTORY", sc2::ABILITY_ID::LIFT_FACTORY)
-        .value("LIFT_ORBITALCOMMAND", sc2::ABILITY_ID::LIFT_ORBITALCOMMAND)
-        .value("LIFT_STARPORT", sc2::ABILITY_ID::LIFT_STARPORT)
-        .value("LOAD", sc2::ABILITY_ID::LOAD)
-        .value("LOADALL", sc2::ABILITY_ID::LOADALL)
-        .value("LOADALL_COMMANDCENTER", sc2::ABILITY_ID::LOADALL_COMMANDCENTER)
-        .value("LOAD_BUNKER", sc2::ABILITY_ID::LOAD_BUNKER)
-        .value("LOAD_MEDIVAC", sc2::ABILITY_ID::LOAD_MEDIVAC)
-        .value("MORPH_ARCHON", sc2::ABILITY_ID::MORPH_ARCHON)
-        .value("MORPH_BROODLORD", sc2::ABILITY_ID::MORPH_BROODLORD)
-        .value("MORPH_GATEWAY", sc2::ABILITY_ID::MORPH_GATEWAY)
-        .value("MORPH_GREATERSPIRE", sc2::ABILITY_ID::MORPH_GREATERSPIRE)
-        .value("MORPH_HELLBAT", sc2::ABILITY_ID::MORPH_HELLBAT)
-        .value("MORPH_HELLION", sc2::ABILITY_ID::MORPH_HELLION)
-        .value("MORPH_HIVE", sc2::ABILITY_ID::MORPH_HIVE)
-        .value("MORPH_LAIR", sc2::ABILITY_ID::MORPH_LAIR)
-        .value("MORPH_LIBERATORAAMODE", sc2::ABILITY_ID::MORPH_LIBERATORAAMODE)
-        .value("MORPH_LIBERATORAGMODE", sc2::ABILITY_ID::MORPH_LIBERATORAGMODE)
-        .value("MORPH_LURKER", sc2::ABILITY_ID::MORPH_LURKER)
-        .value("MORPH_LURKERDEN", sc2::ABILITY_ID::MORPH_LURKERDEN)
-        .value("MORPH_MOTHERSHIP", sc2::ABILITY_ID::MORPH_MOTHERSHIP)
-        .value("MORPH_ORBITALCOMMAND", sc2::ABILITY_ID::MORPH_ORBITALCOMMAND)
-        .value("MORPH_OVERLORDTRANSPORT", sc2::ABILITY_ID::MORPH_OVERLORDTRANSPORT)
-        .value("MORPH_OVERSEER", sc2::ABILITY_ID::MORPH_OVERSEER)
-        .value("MORPH_PLANETARYFORTRESS", sc2::ABILITY_ID::MORPH_PLANETARYFORTRESS)
-        .value("MORPH_RAVAGER", sc2::ABILITY_ID::MORPH_RAVAGER)
-        .value("MORPH_ROOT", sc2::ABILITY_ID::MORPH_ROOT)
-        .value("MORPH_SIEGEMODE", sc2::ABILITY_ID::MORPH_SIEGEMODE)
-        .value("MORPH_SPINECRAWLERROOT", sc2::ABILITY_ID::MORPH_SPINECRAWLERROOT)
-        .value("MORPH_SPINECRAWLERUPROOT", sc2::ABILITY_ID::MORPH_SPINECRAWLERUPROOT)
-        .value("MORPH_SPORECRAWLERROOT", sc2::ABILITY_ID::MORPH_SPORECRAWLERROOT)
-        .value("MORPH_SPORECRAWLERUPROOT", sc2::ABILITY_ID::MORPH_SPORECRAWLERUPROOT)
-        .value("MORPH_SUPPLYDEPOT_LOWER", sc2::ABILITY_ID::MORPH_SUPPLYDEPOT_LOWER)
-        .value("MORPH_SUPPLYDEPOT_RAISE", sc2::ABILITY_ID::MORPH_SUPPLYDEPOT_RAISE)
-        .value("MORPH_THOREXPLOSIVEMODE", sc2::ABILITY_ID::MORPH_THOREXPLOSIVEMODE)
-        .value("MORPH_THORHIGHIMPACTMODE", sc2::ABILITY_ID::MORPH_THORHIGHIMPACTMODE)
-        .value("MORPH_UNSIEGE", sc2::ABILITY_ID::MORPH_UNSIEGE)
-        .value("MORPH_UPROOT", sc2::ABILITY_ID::MORPH_UPROOT)
-        .value("MORPH_VIKINGASSAULTMODE", sc2::ABILITY_ID::MORPH_VIKINGASSAULTMODE)
-        .value("MORPH_VIKINGFIGHTERMODE", sc2::ABILITY_ID::MORPH_VIKINGFIGHTERMODE)
-        .value("MORPH_WARPGATE", sc2::ABILITY_ID::MORPH_WARPGATE)
-        .value("MORPH_WARPPRISMPHASINGMODE", sc2::ABILITY_ID::MORPH_WARPPRISMPHASINGMODE)
-        .value("MORPH_WARPPRISMTRANSPORTMODE", sc2::ABILITY_ID::MORPH_WARPPRISMTRANSPORTMODE)
-        .value("MOVE", sc2::ABILITY_ID::MOVE)
-        .value("PATROL", sc2::ABILITY_ID::PATROL)
-        .value("RALLY_BUILDING", sc2::ABILITY_ID::RALLY_BUILDING)
-        .value("RALLY_COMMANDCENTER", sc2::ABILITY_ID::RALLY_COMMANDCENTER)
-        .value("RALLY_HATCHERY_UNITS", sc2::ABILITY_ID::RALLY_HATCHERY_UNITS)
-        .value("RALLY_HATCHERY_WORKERS", sc2::ABILITY_ID::RALLY_HATCHERY_WORKERS)
-        .value("RALLY_MORPHING_UNIT", sc2::ABILITY_ID::RALLY_MORPHING_UNIT)
-        .value("RALLY_NEXUS", sc2::ABILITY_ID::RALLY_NEXUS)
-        .value("RALLY_UNITS", sc2::ABILITY_ID::RALLY_UNITS)
-        .value("RALLY_WORKERS", sc2::ABILITY_ID::RALLY_WORKERS)
-        .value("RESEARCH_ADEPTRESONATINGGLAIVES", sc2::ABILITY_ID::RESEARCH_ADEPTRESONATINGGLAIVES)
-        .value("RESEARCH_ADVANCEDBALLISTICS", sc2::ABILITY_ID::RESEARCH_ADVANCEDBALLISTICS)
-        .value("RESEARCH_BANSHEECLOAKINGFIELD", sc2::ABILITY_ID::RESEARCH_BANSHEECLOAKINGFIELD)
-        .value("RESEARCH_BANSHEEHYPERFLIGHTROTORS", sc2::ABILITY_ID::RESEARCH_BANSHEEHYPERFLIGHTROTORS)
-        .value("RESEARCH_BATTLECRUISERWEAPONREFIT", sc2::ABILITY_ID::RESEARCH_BATTLECRUISERWEAPONREFIT)
-        .value("RESEARCH_BLINK", sc2::ABILITY_ID::RESEARCH_BLINK)
-        .value("RESEARCH_BURROW", sc2::ABILITY_ID::RESEARCH_BURROW)
-        .value("RESEARCH_CENTRIFUGALHOOKS", sc2::ABILITY_ID::RESEARCH_CENTRIFUGALHOOKS)
-        .value("RESEARCH_CHARGE", sc2::ABILITY_ID::RESEARCH_CHARGE)
-        .value("RESEARCH_CHITINOUSPLATING", sc2::ABILITY_ID::RESEARCH_CHITINOUSPLATING)
-        .value("RESEARCH_COMBATSHIELD", sc2::ABILITY_ID::RESEARCH_COMBATSHIELD)
-        .value("RESEARCH_CONCUSSIVESHELLS", sc2::ABILITY_ID::RESEARCH_CONCUSSIVESHELLS)
-        .value("RESEARCH_DRILLINGCLAWS", sc2::ABILITY_ID::RESEARCH_DRILLINGCLAWS)
-        .value("RESEARCH_ENHANCEDMUNITIONS", sc2::ABILITY_ID::RESEARCH_ENHANCEDMUNITIONS)
-        .value("RESEARCH_EXTENDEDTHERMALLANCE", sc2::ABILITY_ID::RESEARCH_EXTENDEDTHERMALLANCE)
-        .value("RESEARCH_GLIALREGENERATION", sc2::ABILITY_ID::RESEARCH_GLIALREGENERATION)
-        .value("RESEARCH_GRAVITICBOOSTER", sc2::ABILITY_ID::RESEARCH_GRAVITICBOOSTER)
-        .value("RESEARCH_GRAVITICDRIVE", sc2::ABILITY_ID::RESEARCH_GRAVITICDRIVE)
-        .value("RESEARCH_GROOVEDSPINES", sc2::ABILITY_ID::RESEARCH_GROOVEDSPINES)
-        .value("RESEARCH_HIGHCAPACITYFUELTANKS", sc2::ABILITY_ID::RESEARCH_HIGHCAPACITYFUELTANKS)
-        .value("RESEARCH_HISECAUTOTRACKING", sc2::ABILITY_ID::RESEARCH_HISECAUTOTRACKING)
-        .value("RESEARCH_INFERNALPREIGNITER", sc2::ABILITY_ID::RESEARCH_INFERNALPREIGNITER)
-        .value("RESEARCH_INTERCEPTORGRAVITONCATAPULT", sc2::ABILITY_ID::RESEARCH_INTERCEPTORGRAVITONCATAPULT)
-        .value("RESEARCH_MAGFIELDLAUNCHERS", sc2::ABILITY_ID::RESEARCH_MAGFIELDLAUNCHERS)
-        .value("RESEARCH_MUSCULARAUGMENTS", sc2::ABILITY_ID::RESEARCH_MUSCULARAUGMENTS)
-        .value("RESEARCH_NEOSTEELFRAME", sc2::ABILITY_ID::RESEARCH_NEOSTEELFRAME)
-        .value("RESEARCH_NEURALPARASITE", sc2::ABILITY_ID::RESEARCH_NEURALPARASITE)
-        .value("RESEARCH_PATHOGENGLANDS", sc2::ABILITY_ID::RESEARCH_PATHOGENGLANDS)
-        .value("RESEARCH_PERSONALCLOAKING", sc2::ABILITY_ID::RESEARCH_PERSONALCLOAKING)
-        .value("RESEARCH_PHOENIXANIONPULSECRYSTALS", sc2::ABILITY_ID::RESEARCH_PHOENIXANIONPULSECRYSTALS)
-        .value("RESEARCH_PNEUMATIZEDCARAPACE", sc2::ABILITY_ID::RESEARCH_PNEUMATIZEDCARAPACE)
-        .value("RESEARCH_PROTOSSAIRARMOR", sc2::ABILITY_ID::RESEARCH_PROTOSSAIRARMOR)
-        .value("RESEARCH_PROTOSSAIRARMORLEVEL1", sc2::ABILITY_ID::RESEARCH_PROTOSSAIRARMORLEVEL1)
-        .value("RESEARCH_PROTOSSAIRARMORLEVEL2", sc2::ABILITY_ID::RESEARCH_PROTOSSAIRARMORLEVEL2)
-        .value("RESEARCH_PROTOSSAIRARMORLEVEL3", sc2::ABILITY_ID::RESEARCH_PROTOSSAIRARMORLEVEL3)
-        .value("RESEARCH_PROTOSSAIRWEAPONS", sc2::ABILITY_ID::RESEARCH_PROTOSSAIRWEAPONS)
-        .value("RESEARCH_PROTOSSAIRWEAPONSLEVEL1", sc2::ABILITY_ID::RESEARCH_PROTOSSAIRWEAPONSLEVEL1)
-        .value("RESEARCH_PROTOSSAIRWEAPONSLEVEL2", sc2::ABILITY_ID::RESEARCH_PROTOSSAIRWEAPONSLEVEL2)
-        .value("RESEARCH_PROTOSSAIRWEAPONSLEVEL3", sc2::ABILITY_ID::RESEARCH_PROTOSSAIRWEAPONSLEVEL3)
-        .value("RESEARCH_PROTOSSGROUNDARMOR", sc2::ABILITY_ID::RESEARCH_PROTOSSGROUNDARMOR)
-        .value("RESEARCH_PROTOSSGROUNDARMORLEVEL1", sc2::ABILITY_ID::RESEARCH_PROTOSSGROUNDARMORLEVEL1)
-        .value("RESEARCH_PROTOSSGROUNDARMORLEVEL2", sc2::ABILITY_ID::RESEARCH_PROTOSSGROUNDARMORLEVEL2)
-        .value("RESEARCH_PROTOSSGROUNDARMORLEVEL3", sc2::ABILITY_ID::RESEARCH_PROTOSSGROUNDARMORLEVEL3)
-        .value("RESEARCH_PROTOSSGROUNDWEAPONS", sc2::ABILITY_ID::RESEARCH_PROTOSSGROUNDWEAPONS)
-        .value("RESEARCH_PROTOSSGROUNDWEAPONSLEVEL1", sc2::ABILITY_ID::RESEARCH_PROTOSSGROUNDWEAPONSLEVEL1)
-        .value("RESEARCH_PROTOSSGROUNDWEAPONSLEVEL2", sc2::ABILITY_ID::RESEARCH_PROTOSSGROUNDWEAPONSLEVEL2)
-        .value("RESEARCH_PROTOSSGROUNDWEAPONSLEVEL3", sc2::ABILITY_ID::RESEARCH_PROTOSSGROUNDWEAPONSLEVEL3)
-        .value("RESEARCH_PROTOSSSHIELDS", sc2::ABILITY_ID::RESEARCH_PROTOSSSHIELDS)
-        .value("RESEARCH_PROTOSSSHIELDSLEVEL1", sc2::ABILITY_ID::RESEARCH_PROTOSSSHIELDSLEVEL1)
-        .value("RESEARCH_PROTOSSSHIELDSLEVEL2", sc2::ABILITY_ID::RESEARCH_PROTOSSSHIELDSLEVEL2)
-        .value("RESEARCH_PROTOSSSHIELDSLEVEL3", sc2::ABILITY_ID::RESEARCH_PROTOSSSHIELDSLEVEL3)
-        .value("RESEARCH_PSISTORM", sc2::ABILITY_ID::RESEARCH_PSISTORM)
-        .value("RESEARCH_RAPIDFIRELAUNCHERS", sc2::ABILITY_ID::RESEARCH_RAPIDFIRELAUNCHERS)
-        .value("RESEARCH_RAVENCORVIDREACTOR", sc2::ABILITY_ID::RESEARCH_RAVENCORVIDREACTOR)
-        .value("RESEARCH_RAVENRECALIBRATEDEXPLOSIVES", sc2::ABILITY_ID::RESEARCH_RAVENRECALIBRATEDEXPLOSIVES)
-        .value("RESEARCH_SHADOWSTRIKE", sc2::ABILITY_ID::RESEARCH_SHADOWSTRIKE)
-        .value("RESEARCH_SMARTSERVOS", sc2::ABILITY_ID::RESEARCH_SMARTSERVOS)
-        .value("RESEARCH_STIMPACK", sc2::ABILITY_ID::RESEARCH_STIMPACK)
-        .value("RESEARCH_TERRANINFANTRYARMOR", sc2::ABILITY_ID::RESEARCH_TERRANINFANTRYARMOR)
-        .value("RESEARCH_TERRANINFANTRYARMORLEVEL1", sc2::ABILITY_ID::RESEARCH_TERRANINFANTRYARMORLEVEL1)
-        .value("RESEARCH_TERRANINFANTRYARMORLEVEL2", sc2::ABILITY_ID::RESEARCH_TERRANINFANTRYARMORLEVEL2)
-        .value("RESEARCH_TERRANINFANTRYARMORLEVEL3", sc2::ABILITY_ID::RESEARCH_TERRANINFANTRYARMORLEVEL3)
-        .value("RESEARCH_TERRANINFANTRYWEAPONS", sc2::ABILITY_ID::RESEARCH_TERRANINFANTRYWEAPONS)
-        .value("RESEARCH_TERRANINFANTRYWEAPONSLEVEL1", sc2::ABILITY_ID::RESEARCH_TERRANINFANTRYWEAPONSLEVEL1)
-        .value("RESEARCH_TERRANINFANTRYWEAPONSLEVEL2", sc2::ABILITY_ID::RESEARCH_TERRANINFANTRYWEAPONSLEVEL2)
-        .value("RESEARCH_TERRANINFANTRYWEAPONSLEVEL3", sc2::ABILITY_ID::RESEARCH_TERRANINFANTRYWEAPONSLEVEL3)
-        .value("RESEARCH_TERRANSHIPWEAPONS", sc2::ABILITY_ID::RESEARCH_TERRANSHIPWEAPONS)
-        .value("RESEARCH_TERRANSHIPWEAPONSLEVEL1", sc2::ABILITY_ID::RESEARCH_TERRANSHIPWEAPONSLEVEL1)
-        .value("RESEARCH_TERRANSHIPWEAPONSLEVEL2", sc2::ABILITY_ID::RESEARCH_TERRANSHIPWEAPONSLEVEL2)
-        .value("RESEARCH_TERRANSHIPWEAPONSLEVEL3", sc2::ABILITY_ID::RESEARCH_TERRANSHIPWEAPONSLEVEL3)
-        .value("RESEARCH_TERRANSTRUCTUREARMORUPGRADE", sc2::ABILITY_ID::RESEARCH_TERRANSTRUCTUREARMORUPGRADE)
-        .value("RESEARCH_TERRANVEHICLEANDSHIPPLATING", sc2::ABILITY_ID::RESEARCH_TERRANVEHICLEANDSHIPPLATING)
-        .value("RESEARCH_TERRANVEHICLEANDSHIPPLATINGLEVEL1", sc2::ABILITY_ID::RESEARCH_TERRANVEHICLEANDSHIPPLATINGLEVEL1)
-        .value("RESEARCH_TERRANVEHICLEANDSHIPPLATINGLEVEL2", sc2::ABILITY_ID::RESEARCH_TERRANVEHICLEANDSHIPPLATINGLEVEL2)
-        .value("RESEARCH_TERRANVEHICLEANDSHIPPLATINGLEVEL3", sc2::ABILITY_ID::RESEARCH_TERRANVEHICLEANDSHIPPLATINGLEVEL3)
-        .value("RESEARCH_TERRANVEHICLEWEAPONS", sc2::ABILITY_ID::RESEARCH_TERRANVEHICLEWEAPONS)
-        .value("RESEARCH_TERRANVEHICLEWEAPONSLEVEL1", sc2::ABILITY_ID::RESEARCH_TERRANVEHICLEWEAPONSLEVEL1)
-        .value("RESEARCH_TERRANVEHICLEWEAPONSLEVEL2", sc2::ABILITY_ID::RESEARCH_TERRANVEHICLEWEAPONSLEVEL2)
-        .value("RESEARCH_TERRANVEHICLEWEAPONSLEVEL3", sc2::ABILITY_ID::RESEARCH_TERRANVEHICLEWEAPONSLEVEL3)
-        .value("RESEARCH_TUNNELINGCLAWS", sc2::ABILITY_ID::RESEARCH_TUNNELINGCLAWS)
-        .value("RESEARCH_WARPGATE", sc2::ABILITY_ID::RESEARCH_WARPGATE)
-        .value("RESEARCH_ZERGFLYERARMOR", sc2::ABILITY_ID::RESEARCH_ZERGFLYERARMOR)
-        .value("RESEARCH_ZERGFLYERARMORLEVEL1", sc2::ABILITY_ID::RESEARCH_ZERGFLYERARMORLEVEL1)
-        .value("RESEARCH_ZERGFLYERARMORLEVEL2", sc2::ABILITY_ID::RESEARCH_ZERGFLYERARMORLEVEL2)
-        .value("RESEARCH_ZERGFLYERARMORLEVEL3", sc2::ABILITY_ID::RESEARCH_ZERGFLYERARMORLEVEL3)
-        .value("RESEARCH_ZERGFLYERATTACK", sc2::ABILITY_ID::RESEARCH_ZERGFLYERATTACK)
-        .value("RESEARCH_ZERGFLYERATTACKLEVEL1", sc2::ABILITY_ID::RESEARCH_ZERGFLYERATTACKLEVEL1)
-        .value("RESEARCH_ZERGFLYERATTACKLEVEL2", sc2::ABILITY_ID::RESEARCH_ZERGFLYERATTACKLEVEL2)
-        .value("RESEARCH_ZERGFLYERATTACKLEVEL3", sc2::ABILITY_ID::RESEARCH_ZERGFLYERATTACKLEVEL3)
-        .value("RESEARCH_ZERGGROUNDARMOR", sc2::ABILITY_ID::RESEARCH_ZERGGROUNDARMOR)
-        .value("RESEARCH_ZERGGROUNDARMORLEVEL1", sc2::ABILITY_ID::RESEARCH_ZERGGROUNDARMORLEVEL1)
-        .value("RESEARCH_ZERGGROUNDARMORLEVEL2", sc2::ABILITY_ID::RESEARCH_ZERGGROUNDARMORLEVEL2)
-        .value("RESEARCH_ZERGGROUNDARMORLEVEL3", sc2::ABILITY_ID::RESEARCH_ZERGGROUNDARMORLEVEL3)
-        .value("RESEARCH_ZERGLINGADRENALGLANDS", sc2::ABILITY_ID::RESEARCH_ZERGLINGADRENALGLANDS)
-        .value("RESEARCH_ZERGLINGMETABOLICBOOST", sc2::ABILITY_ID::RESEARCH_ZERGLINGMETABOLICBOOST)
-        .value("RESEARCH_ZERGMELEEWEAPONS", sc2::ABILITY_ID::RESEARCH_ZERGMELEEWEAPONS)
-        .value("RESEARCH_ZERGMELEEWEAPONSLEVEL1", sc2::ABILITY_ID::RESEARCH_ZERGMELEEWEAPONSLEVEL1)
-        .value("RESEARCH_ZERGMELEEWEAPONSLEVEL2", sc2::ABILITY_ID::RESEARCH_ZERGMELEEWEAPONSLEVEL2)
-        .value("RESEARCH_ZERGMELEEWEAPONSLEVEL3", sc2::ABILITY_ID::RESEARCH_ZERGMELEEWEAPONSLEVEL3)
-        .value("RESEARCH_ZERGMISSILEWEAPONS", sc2::ABILITY_ID::RESEARCH_ZERGMISSILEWEAPONS)
-        .value("RESEARCH_ZERGMISSILEWEAPONSLEVEL1", sc2::ABILITY_ID::RESEARCH_ZERGMISSILEWEAPONSLEVEL1)
-        .value("RESEARCH_ZERGMISSILEWEAPONSLEVEL2", sc2::ABILITY_ID::RESEARCH_ZERGMISSILEWEAPONSLEVEL2)
-        .value("RESEARCH_ZERGMISSILEWEAPONSLEVEL3", sc2::ABILITY_ID::RESEARCH_ZERGMISSILEWEAPONSLEVEL3)
-        .value("SCAN_MOVE", sc2::ABILITY_ID::SCAN_MOVE)
-        .value("STOP", sc2::ABILITY_ID::STOP)
-        .value("STOP_BUILDING", sc2::ABILITY_ID::STOP_BUILDING)
-        .value("STOP_CHEER", sc2::ABILITY_ID::STOP_CHEER)
-        .value("STOP_DANCE", sc2::ABILITY_ID::STOP_DANCE)
-        .value("STOP_REDIRECT", sc2::ABILITY_ID::STOP_REDIRECT)
-        .value("STOP_STOP", sc2::ABILITY_ID::STOP_STOP)
-        .value("TRAINWARP_ADEPT", sc2::ABILITY_ID::TRAINWARP_ADEPT)
-        .value("TRAINWARP_DARKTEMPLAR", sc2::ABILITY_ID::TRAINWARP_DARKTEMPLAR)
-        .value("TRAINWARP_HIGHTEMPLAR", sc2::ABILITY_ID::TRAINWARP_HIGHTEMPLAR)
-        .value("TRAINWARP_SENTRY", sc2::ABILITY_ID::TRAINWARP_SENTRY)
-        .value("TRAINWARP_STALKER", sc2::ABILITY_ID::TRAINWARP_STALKER)
-        .value("TRAINWARP_ZEALOT", sc2::ABILITY_ID::TRAINWARP_ZEALOT)
-        .value("TRAIN_ADEPT", sc2::ABILITY_ID::TRAIN_ADEPT)
-        .value("TRAIN_BANELING", sc2::ABILITY_ID::TRAIN_BANELING)
-        .value("TRAIN_BANSHEE", sc2::ABILITY_ID::TRAIN_BANSHEE)
-        .value("TRAIN_BATTLECRUISER", sc2::ABILITY_ID::TRAIN_BATTLECRUISER)
-        .value("TRAIN_CARRIER", sc2::ABILITY_ID::TRAIN_CARRIER)
-        .value("TRAIN_COLOSSUS", sc2::ABILITY_ID::TRAIN_COLOSSUS)
-        .value("TRAIN_CORRUPTOR", sc2::ABILITY_ID::TRAIN_CORRUPTOR)
-        .value("TRAIN_CYCLONE", sc2::ABILITY_ID::TRAIN_CYCLONE)
-        .value("TRAIN_DARKTEMPLAR", sc2::ABILITY_ID::TRAIN_DARKTEMPLAR)
-        .value("TRAIN_DISRUPTOR", sc2::ABILITY_ID::TRAIN_DISRUPTOR)
-        .value("TRAIN_DRONE", sc2::ABILITY_ID::TRAIN_DRONE)
-        .value("TRAIN_GHOST", sc2::ABILITY_ID::TRAIN_GHOST)
-        .value("TRAIN_HELLBAT", sc2::ABILITY_ID::TRAIN_HELLBAT)
-        .value("TRAIN_HELLION", sc2::ABILITY_ID::TRAIN_HELLION)
-        .value("TRAIN_HIGHTEMPLAR", sc2::ABILITY_ID::TRAIN_HIGHTEMPLAR)
-        .value("TRAIN_HYDRALISK", sc2::ABILITY_ID::TRAIN_HYDRALISK)
-        .value("TRAIN_IMMORTAL", sc2::ABILITY_ID::TRAIN_IMMORTAL)
-        .value("TRAIN_INFESTOR", sc2::ABILITY_ID::TRAIN_INFESTOR)
-        .value("TRAIN_LIBERATOR", sc2::ABILITY_ID::TRAIN_LIBERATOR)
-        .value("TRAIN_MARAUDER", sc2::ABILITY_ID::TRAIN_MARAUDER)
-        .value("TRAIN_MARINE", sc2::ABILITY_ID::TRAIN_MARINE)
-        .value("TRAIN_MEDIVAC", sc2::ABILITY_ID::TRAIN_MEDIVAC)
-        .value("TRAIN_MOTHERSHIP", sc2::ABILITY_ID::TRAIN_MOTHERSHIP)
-        .value("TRAIN_MOTHERSHIPCORE", sc2::ABILITY_ID::TRAIN_MOTHERSHIPCORE)
-        .value("TRAIN_MUTALISK", sc2::ABILITY_ID::TRAIN_MUTALISK)
-        .value("TRAIN_OBSERVER", sc2::ABILITY_ID::TRAIN_OBSERVER)
-        .value("TRAIN_ORACLE", sc2::ABILITY_ID::TRAIN_ORACLE)
-        .value("TRAIN_OVERLORD", sc2::ABILITY_ID::TRAIN_OVERLORD)
-        .value("TRAIN_PHOENIX", sc2::ABILITY_ID::TRAIN_PHOENIX)
-        .value("TRAIN_PROBE", sc2::ABILITY_ID::TRAIN_PROBE)
-        .value("TRAIN_QUEEN", sc2::ABILITY_ID::TRAIN_QUEEN)
-        .value("TRAIN_RAVEN", sc2::ABILITY_ID::TRAIN_RAVEN)
-        .value("TRAIN_REAPER", sc2::ABILITY_ID::TRAIN_REAPER)
-        .value("TRAIN_ROACH", sc2::ABILITY_ID::TRAIN_ROACH)
-        .value("TRAIN_SCV", sc2::ABILITY_ID::TRAIN_SCV)
-        .value("TRAIN_SENTRY", sc2::ABILITY_ID::TRAIN_SENTRY)
-        .value("TRAIN_SIEGETANK", sc2::ABILITY_ID::TRAIN_SIEGETANK)
-        .value("TRAIN_STALKER", sc2::ABILITY_ID::TRAIN_STALKER)
-        .value("TRAIN_SWARMHOST", sc2::ABILITY_ID::TRAIN_SWARMHOST)
-        .value("TRAIN_TEMPEST", sc2::ABILITY_ID::TRAIN_TEMPEST)
-        .value("TRAIN_THOR", sc2::ABILITY_ID::TRAIN_THOR)
-        .value("TRAIN_ULTRALISK", sc2::ABILITY_ID::TRAIN_ULTRALISK)
-        .value("TRAIN_VIKINGFIGHTER", sc2::ABILITY_ID::TRAIN_VIKINGFIGHTER)
-        .value("TRAIN_VIPER", sc2::ABILITY_ID::TRAIN_VIPER)
-        .value("TRAIN_VOIDRAY", sc2::ABILITY_ID::TRAIN_VOIDRAY)
-        .value("TRAIN_WARPPRISM", sc2::ABILITY_ID::TRAIN_WARPPRISM)
-        .value("TRAIN_WIDOWMINE", sc2::ABILITY_ID::TRAIN_WIDOWMINE)
-        .value("TRAIN_ZEALOT", sc2::ABILITY_ID::TRAIN_ZEALOT)
-        .value("TRAIN_ZERGLING", sc2::ABILITY_ID::TRAIN_ZERGLING)
-        .value("UNLOADALL", sc2::ABILITY_ID::UNLOADALL)
-        .value("UNLOADALLAT", sc2::ABILITY_ID::UNLOADALLAT)
-        .value("UNLOADALLAT_MEDIVAC", sc2::ABILITY_ID::UNLOADALLAT_MEDIVAC)
-        .value("UNLOADALLAT_OVERLORD", sc2::ABILITY_ID::UNLOADALLAT_OVERLORD)
-        .value("UNLOADALLAT_WARPPRISM", sc2::ABILITY_ID::UNLOADALLAT_WARPPRISM)
-        .value("UNLOADALL_BUNKER", sc2::ABILITY_ID::UNLOADALL_BUNKER)
-        .value("UNLOADALL_COMMANDCENTER", sc2::ABILITY_ID::UNLOADALL_COMMANDCENTER)
-        .value("UNLOADALL_NYDASNETWORK", sc2::ABILITY_ID::UNLOADALL_NYDASNETWORK)
-        .value("UNLOADALL_NYDUSWORM", sc2::ABILITY_ID::UNLOADALL_NYDUSWORM)
-        .value("UNLOADUNIT_BUNKER", sc2::ABILITY_ID::UNLOADUNIT_BUNKER)
-        .value("UNLOADUNIT_COMMANDCENTER", sc2::ABILITY_ID::UNLOADUNIT_COMMANDCENTER)
-        .value("UNLOADUNIT_MEDIVAC", sc2::ABILITY_ID::UNLOADUNIT_MEDIVAC)
-        .value("UNLOADUNIT_NYDASNETWORK", sc2::ABILITY_ID::UNLOADUNIT_NYDASNETWORK)
-        .value("UNLOADUNIT_OVERLORD", sc2::ABILITY_ID::UNLOADUNIT_OVERLORD)
-        .value("UNLOADUNIT_WARPPRISM", sc2::ABILITY_ID::UNLOADUNIT_WARPPRISM);
+		.value("HEAL_MEDICHEAL", sc2::ABILITY_ID::HEAL_MEDICHEAL)
+		.value("HELIOSCRASHMORPH_CRASHMORPH", sc2::ABILITY_ID::HELIOSCRASHMORPH_CRASHMORPH)
+		.value("HERCULESLAND", sc2::ABILITY_ID::HERCULESLAND)
+		.value("HERCULESLIFTOFF_LIFT", sc2::ABILITY_ID::HERCULESLIFTOFF_LIFT)
+		.value("HERCULESTRANSPORT_MEDIVACLOAD", sc2::ABILITY_ID::HERCULESTRANSPORT_MEDIVACLOAD)
+		.value("HERCULESTRANSPORT_MEDIVACUNLOADALL", sc2::ABILITY_ID::HERCULESTRANSPORT_MEDIVACUNLOADALL)
+		.value("HERDINTERACT_HERD", sc2::ABILITY_ID::HERDINTERACT_HERD)
+		.value("HEROARMNUKE_NUKEARM", sc2::ABILITY_ID::HEROARMNUKE_NUKEARM)
+		.value("HERONUCLEARSTRIKE_CANCEL", sc2::ABILITY_ID::HERONUCLEARSTRIKE_CANCEL)
+		.value("HOLDFIRE", sc2::ABILITY_ID::HOLDFIRE)
+		.value("HOLDFIRE_STOPSPECIAL", sc2::ABILITY_ID::HOLDFIRE_STOPSPECIAL)
+		.value("HUTTRANSPORT_HUTLOAD", sc2::ABILITY_ID::HUTTRANSPORT_HUTLOAD)
+		.value("HUTTRANSPORT_HUTUNLOADALL", sc2::ABILITY_ID::HUTTRANSPORT_HUTUNLOADALL)
+		.value("HYBRIDBLINK_ZERATULBLINK", sc2::ABILITY_ID::HYBRIDBLINK_ZERATULBLINK)
+		.value("HYBRIDCPLASMABLAST", sc2::ABILITY_ID::HYBRIDCPLASMABLAST)
+		.value("HYBRIDFAOESTUN", sc2::ABILITY_ID::HYBRIDFAOESTUN)
+		.value("HYPERIONYAMATOSPECIAL_HYPERIONYAMATOGUN", sc2::ABILITY_ID::HYPERIONYAMATOSPECIAL_HYPERIONYAMATOGUN)
+		.value("IMPALE", sc2::ABILITY_ID::IMPALE)
+		.value("IMPLOSION", sc2::ABILITY_ID::IMPLOSION)
+		.value("INFESTABLEHUTTRANSPORT_HUTLOAD", sc2::ABILITY_ID::INFESTABLEHUTTRANSPORT_HUTLOAD)
+		.value("INFESTABLEHUTTRANSPORT_HUTUNLOADALL", sc2::ABILITY_ID::INFESTABLEHUTTRANSPORT_HUTUNLOADALL)
+		.value("INFESTEDVENTSPAWNBROODLORD_SPAWNBROODLORD", sc2::ABILITY_ID::INFESTEDVENTSPAWNBROODLORD_SPAWNBROODLORD)
+		.value("INFESTEDVENTSPAWNCORRUPTOR_SPAWNCORRUPTOR", sc2::ABILITY_ID::INFESTEDVENTSPAWNCORRUPTOR_SPAWNCORRUPTOR)
+		.value("INFESTEDVENTSPAWNMUTALISK_LEVIATHANSPAWNMUTALISK", sc2::ABILITY_ID::INFESTEDVENTSPAWNMUTALISK_LEVIATHANSPAWNMUTALISK)
+		.value("INFESTORENSNARE", sc2::ABILITY_ID::INFESTORENSNARE)
+		.value("INVULNERABILITYSHIELD", sc2::ABILITY_ID::INVULNERABILITYSHIELD)
+		.value("IRRADIATE", sc2::ABILITY_ID::IRRADIATE)
+		.value("IRRADIATE_CANCEL", sc2::ABILITY_ID::IRRADIATE_CANCEL)
+		.value("KARASSPLASMASURGE", sc2::ABILITY_ID::KARASSPLASMASURGE)
+		.value("LAND", sc2::ABILITY_ID::LAND)
+		.value("LAND_BARRACKS", sc2::ABILITY_ID::LAND_BARRACKS)
+		.value("LAND_COMMANDCENTER", sc2::ABILITY_ID::LAND_COMMANDCENTER)
+		.value("LAND_FACTORY", sc2::ABILITY_ID::LAND_FACTORY)
+		.value("LAND_ORBITALCOMMAND", sc2::ABILITY_ID::LAND_ORBITALCOMMAND)
+		.value("LAND_STARPORT", sc2::ABILITY_ID::LAND_STARPORT)
+		.value("LEECH", sc2::ABILITY_ID::LEECH)
+		.value("LEECHRESOURCES_CANCEL", sc2::ABILITY_ID::LEECHRESOURCES_CANCEL)
+		.value("LEVIATHANSPAWNBROODLORD_SPAWNBROODLORD", sc2::ABILITY_ID::LEVIATHANSPAWNBROODLORD_SPAWNBROODLORD)
+		.value("LEVIATHANSPAWNMUTALISK", sc2::ABILITY_ID::LEVIATHANSPAWNMUTALISK)
+		.value("LIBERATORMORPHTOAA_LIBERATORAAMODE", sc2::ABILITY_ID::LIBERATORMORPHTOAA_LIBERATORAAMODE)
+		.value("LIBERATORMORPHTOAG_LIBERATORAGMODE", sc2::ABILITY_ID::LIBERATORMORPHTOAG_LIBERATORAGMODE)
+		.value("LIBRARYDOWN", sc2::ABILITY_ID::LIBRARYDOWN)
+		.value("LIBRARYUP", sc2::ABILITY_ID::LIBRARYUP)
+		.value("LIFT", sc2::ABILITY_ID::LIFT)
+		.value("LIFT_BARRACKS", sc2::ABILITY_ID::LIFT_BARRACKS)
+		.value("LIFT_COMMANDCENTER", sc2::ABILITY_ID::LIFT_COMMANDCENTER)
+		.value("LIFT_FACTORY", sc2::ABILITY_ID::UNLOADALL_NYDASNETWORK)
+		.value("LIFT_ORBITALCOMMAND", sc2::ABILITY_ID::LIFT_ORBITALCOMMAND)
+		.value("LIFT_STARPORT", sc2::ABILITY_ID::LIFT_STARPORT)
+		.value("LIGHTBRIDGEOFF", sc2::ABILITY_ID::LIGHTBRIDGEOFF)
+		.value("LIGHTBRIDGEOFFTOPRIGHT_LIGHTBRIDGEOFF", sc2::ABILITY_ID::LIGHTBRIDGEOFFTOPRIGHT_LIGHTBRIDGEOFF)
+		.value("LIGHTBRIDGEON", sc2::ABILITY_ID::LIGHTBRIDGEON)
+		.value("LIGHTBRIDGEONTOPRIGHT_LIGHTBRIDGEON", sc2::ABILITY_ID::LIGHTBRIDGEONTOPRIGHT_LIGHTBRIDGEON)
+		.value("LIGHTNINGBOMB", sc2::ABILITY_ID::LIGHTNINGBOMB)
+		.value("LIGHTOFAIUR", sc2::ABILITY_ID::LIGHTOFAIUR)
+		.value("LOAD", sc2::ABILITY_ID::LOAD)
+		.value("LOADALL", sc2::ABILITY_ID::LOADALL)
+		.value("LOADALL_COMMANDCENTER", sc2::ABILITY_ID::LOADALL_COMMANDCENTER)
+		.value("LOAD_BUNKER", sc2::ABILITY_ID::LOAD_BUNKER)
+		.value("LOAD_MEDIVAC", sc2::ABILITY_ID::LOAD_MEDIVAC)
+		.value("LOAD_NYDUSNETWORK", sc2::ABILITY_ID::LOAD_NYDUSNETWORK)
+		.value("LOAD_NYDUSWORM", sc2::ABILITY_ID::LOAD_NYDUSWORM)
+		.value("LOAD_OVERLORD", sc2::ABILITY_ID::LOAD_OVERLORD)
+		.value("LOAD_WARPPRISM", sc2::ABILITY_ID::LOAD_WARPPRISM)
+		.value("LOCKONAIR", sc2::ABILITY_ID::LOCKONAIR)
+		.value("LOCUSTMPFLYINGMORPHTOGROUND_LOCUSTMPFLYINGSWOOP", sc2::ABILITY_ID::LOCUSTMPFLYINGMORPHTOGROUND_LOCUSTMPFLYINGSWOOP)
+		.value("LOCUSTMPFLYINGSWOOPATTACK_LOCUSTMPFLYINGSWOOP", sc2::ABILITY_ID::LOCUSTMPFLYINGSWOOPATTACK_LOCUSTMPFLYINGSWOOP)
+		.value("LOCUSTMPMORPHTOAIR_LOCUSTMPFLYINGSWOOP", sc2::ABILITY_ID::LOCUSTMPMORPHTOAIR_LOCUSTMPFLYINGSWOOP)
+		.value("LOKIMISSILEPODS_MISSILEPODS", sc2::ABILITY_ID::LOKIMISSILEPODS_MISSILEPODS)
+		.value("LOKIUNDOCK_LIFT", sc2::ABILITY_ID::LOKIUNDOCK_LIFT)
+		.value("LOKIYAMATO_LOKIYAMATOGUN", sc2::ABILITY_ID::LOKIYAMATO_LOKIYAMATOGUN)
+		.value("LURKERASPECTFROMHYDRALISKBURROWED_CANCEL", sc2::ABILITY_ID::LURKERASPECTFROMHYDRALISKBURROWED_CANCEL)
+		.value("LURKERASPECTFROMHYDRALISKBURROWED_LURKERFROMHYDRALISKBURROWED", sc2::ABILITY_ID::LURKERASPECTFROMHYDRALISKBURROWED_LURKERFROMHYDRALISKBURROWED)
+		.value("LURKERASPECTMPFROMHYDRALISKBURROWED_CANCEL", sc2::ABILITY_ID::LURKERASPECTMPFROMHYDRALISKBURROWED_CANCEL)
+		.value("LURKERASPECTMPFROMHYDRALISKBURROWED_LURKERMPFROMHYDRALISKBURROWED", sc2::ABILITY_ID::LURKERASPECTMPFROMHYDRALISKBURROWED_LURKERMPFROMHYDRALISKBURROWED)
+		.value("LURKERASPECTMP_CANCEL", sc2::ABILITY_ID::LURKERASPECTMP_CANCEL)
+		.value("LURKERASPECTMP_LURKERMP", sc2::ABILITY_ID::LURKERASPECTMP_LURKERMP)
+		.value("LURKERASPECT_CANCEL", sc2::ABILITY_ID::LURKERASPECT_CANCEL)
+		.value("LURKERASPECT_LURKER", sc2::ABILITY_ID::LURKERASPECT_LURKER)
+		.value("LIGHTBRIDGEONTOPRIGHT_LIGHTBRIDGEON", sc2::ABILITY_ID::LIGHTBRIDGEONTOPRIGHT_LIGHTBRIDGEON)
+		.value("MAKEVULTURESPIDERMINES_SPIDERMINEREPLENISH", sc2::ABILITY_ID::MAKEVULTURESPIDERMINES_SPIDERMINEREPLENISH)
+		.value("MASSIVEKNOCKOVER", sc2::ABILITY_ID::MASSIVEKNOCKOVER)
+		.value("MAXIUMTHRUST_MAXIMUMTHRUST", sc2::ABILITY_ID::MAXIUMTHRUST_MAXIMUMTHRUST)
+		.value("MERGEABLE_CANCEL", sc2::ABILITY_ID::MERGEABLE_CANCEL)
+		.value("METALGATEDIAGONALBLURLOWERED_GATEOPEN", sc2::ABILITY_ID::METALGATEDIAGONALBLURLOWERED_GATEOPEN)
+		.value("METALGATEDIAGONALBLUR_GATECLOSE", sc2::ABILITY_ID::METALGATEDIAGONALBLUR_GATECLOSE)
+		.value("METALGATEDIAGONALULBRLOWERED_GATEOPEN", sc2::ABILITY_ID::METALGATEDIAGONALULBRLOWERED_GATEOPEN)
+		.value("METALGATEDIAGONALULBR_GATECLOSE", sc2::ABILITY_ID::METALGATEDIAGONALULBR_GATECLOSE)
+		.value("METALGATESTRAIGHTHORIZONTALBFLOWERED_GATEOPEN", sc2::ABILITY_ID::METALGATESTRAIGHTHORIZONTALBFLOWERED_GATEOPEN)
+		.value("METALGATESTRAIGHTHORIZONTALBF_GATECLOSE", sc2::ABILITY_ID::METALGATESTRAIGHTHORIZONTALBF_GATECLOSE)
+		.value("METALGATESTRAIGHTHORIZONTALLOWERED_GATEOPEN", sc2::ABILITY_ID::METALGATESTRAIGHTHORIZONTALLOWERED_GATEOPEN)
+		.value("METALGATESTRAIGHTHORIZONTAL_GATECLOSE", sc2::ABILITY_ID::METALGATESTRAIGHTHORIZONTAL_GATECLOSE)
+		.value("METALGATESTRAIGHTVERTICALLFLOWERED_GATEOPEN", sc2::ABILITY_ID::METALGATESTRAIGHTVERTICALLFLOWERED_GATEOPEN)
+		.value("METALGATESTRAIGHTVERTICALLF_GATECLOSE", sc2::ABILITY_ID::METALGATESTRAIGHTVERTICALLF_GATECLOSE)
+		.value("METALGATESTRAIGHTVERTICALLOWERED_GATEOPEN", sc2::ABILITY_ID::METALGATESTRAIGHTVERTICALLOWERED_GATEOPEN)
+		.value("METALGATESTRAIGHTVERTICAL_GATECLOSE", sc2::ABILITY_ID::METALGATESTRAIGHTVERTICAL_GATECLOSE)
+		.value("MINDBLAST", sc2::ABILITY_ID::MINDBLAST)
+		.value("MINDCONTROL", sc2::ABILITY_ID::MINDCONTROL)
+		.value("MISSILEPODS", sc2::ABILITY_ID::MISSILEPODS)
+		.value("MORPH_ARCHON", sc2::ABILITY_ID::MORPH_ARCHON)
+		.value("MORPH_BANELING", sc2::ABILITY_ID::MORPH_BANELING)
+		.value("MORPH_BROODLORD", sc2::ABILITY_ID::MORPH_BROODLORD)
+		.value("MORPH_CANCEL", sc2::ABILITY_ID::MORPH_CANCEL)
+		.value("MORPH_GATEWAY", sc2::ABILITY_ID::MORPH_GATEWAY)
+		.value("MORPH_GREATERSPIRE", sc2::ABILITY_ID::MORPH_GREATERSPIRE)
+		.value("MORPH_HELLBAT", sc2::ABILITY_ID::MORPH_HELLBAT)
+		.value("MORPH_HELLION", sc2::ABILITY_ID::MORPH_HELLION)
+		.value("MORPH_HIVE", sc2::ABILITY_ID::MORPH_HIVE)
+		.value("MORPH_LAIR", sc2::ABILITY_ID::MORPH_LAIR)
+		.value("MORPH_LIBERATORAAMODE", sc2::ABILITY_ID::MORPH_LIBERATORAAMODE)
+		.value("MORPH_LIBERATORAGMODE", sc2::ABILITY_ID::MORPH_LIBERATORAGMODE)
+		.value("MORPH_LURKER", sc2::ABILITY_ID::MORPH_LURKER)
+		.value("MORPH_LURKERDEN", sc2::ABILITY_ID::MORPH_LURKERDEN)
+		.value("MORPH_MORPHTODEVOURERMP", sc2::ABILITY_ID::MORPH_MORPHTODEVOURERMP)
+		.value("MORPH_MORPHTOGUARDIANMP", sc2::ABILITY_ID::MORPH_MORPHTOGUARDIANMP)
+		.value("MORPH_MORPHTOINFESTEDCIVILIAN", sc2::ABILITY_ID::MORPH_MORPHTOINFESTEDCIVILIAN)
+		.value("MORPH_MOTHERSHIP", sc2::ABILITY_ID::MORPH_MOTHERSHIP)
+		.value("MORPH_MOVE", sc2::ABILITY_ID::MORPH_MOVE)
+		.value("MORPH_OBSERVERMODE", sc2::ABILITY_ID::MORPH_OBSERVERMODE)
+		.value("MORPH_ORBITALCOMMAND", sc2::ABILITY_ID::MORPH_ORBITALCOMMAND)
+		.value("MORPH_OVERLORDTRANSPORT", sc2::ABILITY_ID::MORPH_OVERLORDTRANSPORT)
+		.value("MORPH_OVERSEER", sc2::ABILITY_ID::MORPH_OVERSEER)
+		.value("MORPH_OVERSEERMODE", sc2::ABILITY_ID::MORPH_OVERSEERMODE)
+		.value("MORPH_OVERSIGHTMODE", sc2::ABILITY_ID::MORPH_OVERSIGHTMODE)
+		.value("MORPH_PLANETARYFORTRESS", sc2::ABILITY_ID::MORPH_PLANETARYFORTRESS)
+		.value("MORPH_RAVAGER", sc2::ABILITY_ID::MORPH_RAVAGER)
+		.value("MORPH_ROOT", sc2::ABILITY_ID::MORPH_ROOT)
+		.value("MORPH_SIEGEMODE", sc2::ABILITY_ID::MORPH_SIEGEMODE)
+		.value("MORPH_SPINECRAWLERROOT", sc2::ABILITY_ID::MORPH_SPINECRAWLERROOT)
+		.value("MORPH_SPINECRAWLERUPROOT", sc2::ABILITY_ID::MORPH_SPINECRAWLERUPROOT)
+		.value("MORPH_SPORECRAWLERROOT", sc2::ABILITY_ID::MORPH_SPORECRAWLERROOT)
+		.value("MORPH_SPORECRAWLERUPROOT", sc2::ABILITY_ID::MORPH_SPORECRAWLERUPROOT)
+		.value("MORPH_SUPPLYDEPOT_LOWER", sc2::ABILITY_ID::MORPH_SUPPLYDEPOT_LOWER)
+		.value("MORPH_SUPPLYDEPOT_RAISE", sc2::ABILITY_ID::MORPH_SUPPLYDEPOT_RAISE)
+		.value("MORPH_SURVEILLANCEMODE", sc2::ABILITY_ID::MORPH_SURVEILLANCEMODE)
+		.value("MORPH_THOREXPLOSIVEMODE", sc2::ABILITY_ID::MORPH_THOREXPLOSIVEMODE)
+		.value("MORPH_THORHIGHIMPACTMODE", sc2::ABILITY_ID::MORPH_THORHIGHIMPACTMODE)
+		.value("MORPH_UNSIEGE", sc2::ABILITY_ID::MORPH_UNSIEGE)
+		.value("MORPH_UPROOT", sc2::ABILITY_ID::MORPH_UPROOT)
+		.value("MORPH_VIKINGASSAULTMODE", sc2::ABILITY_ID::MORPH_VIKINGASSAULTMODE)
+		.value("MORPH_VIKINGFIGHTERMODE", sc2::ABILITY_ID::MORPH_VIKINGFIGHTERMODE)
+		.value("MORPH_WARPGATE", sc2::ABILITY_ID::MORPH_WARPGATE)
+		.value("MORPH_WARPPRISMPHASINGMODE", sc2::ABILITY_ID::MORPH_WARPPRISMPHASINGMODE)
+		.value("MORPH_WARPPRISMTRANSPORTMODE", sc2::ABILITY_ID::MORPH_WARPPRISMTRANSPORTMODE)
+		.value("MOTHERSHIPCOREENERGIZE", sc2::ABILITY_ID::MOTHERSHIPCOREENERGIZE)
+		.value("MOTHERSHIPCOREENERGIZE_CANCEL", sc2::ABILITY_ID::MOTHERSHIPCOREENERGIZE_CANCEL)
+		.value("MOTHERSHIPCOREPURIFYNEXUSCANCEL_CANCEL", sc2::ABILITY_ID::MOTHERSHIPCOREPURIFYNEXUSCANCEL_CANCEL)
+		.value("MOTHERSHIPCORETELEPORT", sc2::ABILITY_ID::MOTHERSHIPCORETELEPORT)
+		.value("MOTHERSHIPCOREWEAPON_MOTHERSHIPSTASIS", sc2::ABILITY_ID::MOTHERSHIPCOREWEAPON_MOTHERSHIPSTASIS)
+		.value("MOTHERSHIPSTASIS", sc2::ABILITY_ID::MOTHERSHIPSTASIS)
+		.value("MOVE_ACQUIREMOVE", sc2::ABILITY_ID::MOVE_ACQUIREMOVE)
+		.value("MOVE_MOVE", sc2::ABILITY_ID::MOVE_MOVE)
+		.value("MOVE_MOVEHOLDPOSITION", sc2::ABILITY_ID::MOVE_MOVEHOLDPOSITION)
+		.value("MOVE_MOVEPATROL", sc2::ABILITY_ID::MOVE_MOVEPATROL)
+		.value("MOVE_TURN", sc2::ABILITY_ID::MOVE_TURN)
+		.value("NEXUSINVULNERABILITY", sc2::ABILITY_ID::NEXUSINVULNERABILITY)
+		.value("NEXUSPHASESHIFT", sc2::ABILITY_ID::NEXUSPHASESHIFT)
+		.value("NEXUSSHIELDOVERCHARGE", sc2::ABILITY_ID::NEXUSSHIELDOVERCHARGE)
+		.value("NEXUSSHIELDOVERCHARGEOFF", sc2::ABILITY_ID::NEXUSSHIELDOVERCHARGEOFF)
+		.value("NEXUSSHIELDRECHARGE", sc2::ABILITY_ID::NEXUSSHIELDRECHARGE)
+		.value("NEXUSSHIELDRECHARGEONPYLON", sc2::ABILITY_ID::NEXUSSHIELDRECHARGEONPYLON)
+		.value("NOVASNIPE", sc2::ABILITY_ID::NOVASNIPE)
+		.value("OBLITERATE", sc2::ABILITY_ID::OBLITERATE)
+		.value("ODINBARRAGE", sc2::ABILITY_ID::ODINBARRAGE)
+		.value("ODINBARRAGE_CANCEL", sc2::ABILITY_ID::ODINBARRAGE_CANCEL)
+		.value("ODINNUCLEARSTRIKE_CANCEL", sc2::ABILITY_ID::ODINNUCLEARSTRIKE_CANCEL)
+		.value("ODINNUCLEARSTRIKE_ODINNUKECALLDOWN", sc2::ABILITY_ID::ODINNUCLEARSTRIKE_ODINNUKECALLDOWN)
+		.value("ODINWRECKAGE_ODIN", sc2::ABILITY_ID::ODINWRECKAGE_ODIN)
+		.value("OMEGASTORM", sc2::ABILITY_ID::OMEGASTORM)
+		.value("ORACLECLOAKFIELD", sc2::ABILITY_ID::ORACLECLOAKFIELD)
+		.value("ORACLECLOAKINGFIELDTARGETED", sc2::ABILITY_ID::ORACLECLOAKINGFIELDTARGETED)
+		.value("ORACLENORMALMODE", sc2::ABILITY_ID::ORACLENORMALMODE)
+		.value("ORACLENORMALMODE_CANCEL", sc2::ABILITY_ID::ORACLENORMALMODE_CANCEL)
+		.value("ORACLEPHASESHIFT", sc2::ABILITY_ID::ORACLEPHASESHIFT)
+		.value("ORACLEREVELATIONMODE", sc2::ABILITY_ID::ORACLEREVELATIONMODE)
+		.value("ORACLEREVELATIONMODE_CANCEL", sc2::ABILITY_ID::ORACLEREVELATIONMODE_CANCEL)
+		.value("ORACLESTASISTRAPACTIVATE_ACTIVATESTASISWARD", sc2::ABILITY_ID::ORACLESTASISTRAPACTIVATE_ACTIVATESTASISWARD)
+		.value("ORACLESTASISTRAP_ORACLEBUILDSTASISTRAP", sc2::ABILITY_ID::ORACLESTASISTRAP_ORACLEBUILDSTASISTRAP)
+		.value("OVERCHARGE", sc2::ABILITY_ID::OVERCHARGE)
+		.value("PARKCOLONISTVEHICLE", sc2::ABILITY_ID::PARKCOLONISTVEHICLE)
+		.value("PENETRATINGSHOT", sc2::ABILITY_ID::PENETRATINGSHOT)
+		.value("PHASEMINEBLAST", sc2::ABILITY_ID::PHASEMINEBLAST)
+		.value("PHASESHIFT", sc2::ABILITY_ID::PHASESHIFT)
+		.value("PICKUP", sc2::ABILITY_ID::PICKUP)
+		.value("PICKUPARCADE_PICKUP", sc2::ABILITY_ID::PICKUPARCADE_PICKUP)
+		.value("PICKUPGAS100", sc2::ABILITY_ID::PICKUPGAS100)
+		.value("PICKUPMINERALS100", sc2::ABILITY_ID::PICKUPMINERALS100)
+		.value("PICKUPPALLETGAS", sc2::ABILITY_ID::PICKUPPALLETGAS)
+		.value("PICKUPPALLETMINERALS", sc2::ABILITY_ID::PICKUPPALLETMINERALS)
+		.value("PICKUPSCRAPLARGE", sc2::ABILITY_ID::PICKUPSCRAPLARGE)
+		.value("PICKUPSCRAPMEDIUM", sc2::ABILITY_ID::PICKUPSCRAPMEDIUM)
+		.value("PICKUPSCRAPSMALL", sc2::ABILITY_ID::PICKUPSCRAPSMALL)
+		.value("PORTCITY_BRIDGE_UNITE10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITE10OUT_BRIDGEEXTEND)
+		.value("PORTCITY_BRIDGE_UNITE10_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITE10_BRIDGERETRACT)
+		.value("PORTCITY_BRIDGE_UNITE12OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITE12OUT_BRIDGEEXTEND)
+		.value("PORTCITY_BRIDGE_UNITE12_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITE12_BRIDGERETRACT)
+		.value("PORTCITY_BRIDGE_UNITE8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITE8OUT_BRIDGEEXTEND)
+		.value("PORTCITY_BRIDGE_UNITE8_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITE8_BRIDGERETRACT)
+		.value("PORTCITY_BRIDGE_UNITN10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITN10OUT_BRIDGEEXTEND)
+		.value("PORTCITY_BRIDGE_UNITN10_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITN10_BRIDGERETRACT)
+		.value("PORTCITY_BRIDGE_UNITN12OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITN12OUT_BRIDGEEXTEND)
+		.value("PORTCITY_BRIDGE_UNITN12_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITN12_BRIDGERETRACT)
+		.value("PORTCITY_BRIDGE_UNITN8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITN8OUT_BRIDGEEXTEND)
+		.value("PORTCITY_BRIDGE_UNITN8_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITN8_BRIDGERETRACT)
+		.value("PORTCITY_BRIDGE_UNITNE10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITNE10OUT_BRIDGEEXTEND)
+		.value("PORTCITY_BRIDGE_UNITNE10_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITNE10_BRIDGERETRACT)
+		.value("PORTCITY_BRIDGE_UNITNE12OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITNE12OUT_BRIDGEEXTEND)
+		.value("PORTCITY_BRIDGE_UNITNE12_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITNE12_BRIDGERETRACT)
+		.value("PORTCITY_BRIDGE_UNITNE8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITNE8OUT_BRIDGEEXTEND)
+		.value("PORTCITY_BRIDGE_UNITNE8_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITNE8_BRIDGERETRACT)
+		.value("PORTCITY_BRIDGE_UNITNW10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITNW10OUT_BRIDGEEXTEND)
+		.value("PORTCITY_BRIDGE_UNITNW10_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITNW10_BRIDGERETRACT)
+		.value("PORTCITY_BRIDGE_UNITNW12OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITNW12OUT_BRIDGEEXTEND)
+		.value("PORTCITY_BRIDGE_UNITNW12_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITNW12_BRIDGERETRACT)
+		.value("PORTCITY_BRIDGE_UNITNW8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITNW8OUT_BRIDGEEXTEND)
+		.value("PORTCITY_BRIDGE_UNITNW8_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITNW8_BRIDGERETRACT)
+		.value("PORTCITY_BRIDGE_UNITS10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITS10OUT_BRIDGEEXTEND)
+		.value("PORTCITY_BRIDGE_UNITS10_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITS10_BRIDGERETRACT)
+		.value("PORTCITY_BRIDGE_UNITS12OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITS12OUT_BRIDGEEXTEND)
+		.value("PORTCITY_BRIDGE_UNITS12_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITS12_BRIDGERETRACT)
+		.value("PORTCITY_BRIDGE_UNITS8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITS8OUT_BRIDGEEXTEND)
+		.value("PORTCITY_BRIDGE_UNITS8_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITS8_BRIDGERETRACT)
+		.value("PORTCITY_BRIDGE_UNITSE10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITSE10OUT_BRIDGEEXTEND)
+		.value("PORTCITY_BRIDGE_UNITSE10_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITSE10_BRIDGERETRACT)
+		.value("PORTCITY_BRIDGE_UNITSE12OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITSE12OUT_BRIDGEEXTEND)
+		.value("PORTCITY_BRIDGE_UNITSE12_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITSE12_BRIDGERETRACT)
+		.value("PORTCITY_BRIDGE_UNITSE8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITSE8OUT_BRIDGEEXTEND)
+		.value("PORTCITY_BRIDGE_UNITSE8_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITSE8_BRIDGERETRACT)
+		.value("PORTCITY_BRIDGE_UNITSW10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITSW10OUT_BRIDGEEXTEND)
+		.value("PORTCITY_BRIDGE_UNITSW10_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITSW10_BRIDGERETRACT)
+		.value("PORTCITY_BRIDGE_UNITSW12OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITSW12OUT_BRIDGEEXTEND)
+		.value("PORTCITY_BRIDGE_UNITSW12_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITSW12_BRIDGERETRACT)
+		.value("PORTCITY_BRIDGE_UNITSW8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITSW8OUT_BRIDGEEXTEND)
+		.value("PORTCITY_BRIDGE_UNITSW8_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITSW8_BRIDGERETRACT)
+		.value("PORTCITY_BRIDGE_UNITW10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITW10OUT_BRIDGEEXTEND)
+		.value("PORTCITY_BRIDGE_UNITW10_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITW10_BRIDGERETRACT)
+		.value("PORTCITY_BRIDGE_UNITW12OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITW12OUT_BRIDGEEXTEND)
+		.value("PORTCITY_BRIDGE_UNITW12_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITW12_BRIDGERETRACT)
+		.value("PORTCITY_BRIDGE_UNITW8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITW8OUT_BRIDGEEXTEND)
+		.value("PORTCITY_BRIDGE_UNITW8_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITW8_BRIDGERETRACT)
+		.value("PROTOSSBUILDINGQUEUE_CANCELSLOT", sc2::ABILITY_ID::PROTOSSBUILDINGQUEUE_CANCELSLOT)
+		.value("PSIONICSHOCKWAVE", sc2::ABILITY_ID::PSIONICSHOCKWAVE)
+		.value("PSYTROUSOXIDE_PSYTROUSOXIDEOFF", sc2::ABILITY_ID::PSYTROUSOXIDE_PSYTROUSOXIDEOFF)
+		.value("PSYTROUSOXIDE_PSYTROUSOXIDEON", sc2::ABILITY_ID::PSYTROUSOXIDE_PSYTROUSOXIDEON)
+		.value("PULSARBEAM_RIPFIELD", sc2::ABILITY_ID::PULSARBEAM_RIPFIELD)
+		.value("PULSARCANNON", sc2::ABILITY_ID::PULSARCANNON)
+		.value("PURIFICATIONNOVA", sc2::ABILITY_ID::PURIFICATIONNOVA)
+		.value("PURIFICATIONNOVAMORPHBACK_PURIFICATIONNOVA", sc2::ABILITY_ID::PURIFICATIONNOVAMORPHBACK_PURIFICATIONNOVA)
+		.value("PURIFICATIONNOVAMORPH_PURIFICATIONNOVA", sc2::ABILITY_ID::PURIFICATIONNOVAMORPH_PURIFICATIONNOVA)
+		.value("PURIFIERPLANETCRACKER_PLANETCRACKER", sc2::ABILITY_ID::PURIFIERPLANETCRACKER_PLANETCRACKER)
+		.value("PURIFIERTOGGLEPOWER_PURIFIERPOWERDOWN", sc2::ABILITY_ID::PURIFIERTOGGLEPOWER_PURIFIERPOWERDOWN)
+		.value("PURIFIERTOGGLEPOWER_PURIFIERPOWERUP", sc2::ABILITY_ID::PURIFIERTOGGLEPOWER_PURIFIERPOWERUP)
+		.value("PURIFYMORPHPYLONBACK_MOTHERSHIPCOREWEAPON", sc2::ABILITY_ID::PURIFYMORPHPYLONBACK_MOTHERSHIPCOREWEAPON)
+		.value("PURIFYMORPHPYLON_MOTHERSHIPCOREWEAPON", sc2::ABILITY_ID::PURIFYMORPHPYLON_MOTHERSHIPCOREWEAPON)
+		.value("QUE5LONGBLEND_CANCEL", sc2::ABILITY_ID::QUE5LONGBLEND_CANCEL)
+		.value("QUE5LONGBLEND_CANCELSLOT", sc2::ABILITY_ID::QUE5LONGBLEND_CANCELSLOT)
+		.value("QUE8_CANCEL", sc2::ABILITY_ID::QUE8_CANCEL)
+		.value("QUE8_CANCELSLOT", sc2::ABILITY_ID::QUE8_CANCELSLOT)
+		.value("QUEENBUILD_CANCEL", sc2::ABILITY_ID::QUEENBUILD_CANCEL)
+		.value("QUEENFLY", sc2::ABILITY_ID::QUEENFLY)
+		.value("QUEENLAND", sc2::ABILITY_ID::QUEENLAND)
+		.value("QUEENMPENSNARE", sc2::ABILITY_ID::QUEENMPENSNARE)
+		.value("QUEENMPINFESTCOMMANDCENTER", sc2::ABILITY_ID::QUEENMPINFESTCOMMANDCENTER)
+		.value("QUEENMPSPAWNBROODLINGS", sc2::ABILITY_ID::QUEENMPSPAWNBROODLINGS)
+		.value("QUEENSHOCKWAVE", sc2::ABILITY_ID::QUEENSHOCKWAVE)
+		.value("RALLY_BUILDING", sc2::ABILITY_ID::RALLY_BUILDING)
+		.value("RALLY_COMMANDCENTER", sc2::ABILITY_ID::RALLY_COMMANDCENTER)
+		.value("RALLY_HATCHERY_UNITS", sc2::ABILITY_ID::RALLY_HATCHERY_UNITS)
+		.value("RALLY_HATCHERY_WORKERS", sc2::ABILITY_ID::RALLY_HATCHERY_WORKERS)
+		.value("RALLY_MORPHING_UNIT", sc2::ABILITY_ID::RALLY_MORPHING_UNIT)
+		.value("RALLY_NEXUS", sc2::ABILITY_ID::RALLY_NEXUS)
+		.value("RALLY_UNITS", sc2::ABILITY_ID::RALLY_UNITS)
+		.value("RALLY_WORKERS", sc2::ABILITY_ID::RALLY_WORKERS)
+		.value("RAVENBUILD_CANCEL", sc2::ABILITY_ID::RAVENBUILD_CANCEL)
+		.value("RAYNORC4_PLANTC4CHARGE", sc2::ABILITY_ID::RAYNORC4_PLANTC4CHARGE)
+		.value("RAYNORSNIPE", sc2::ABILITY_ID::RAYNORSNIPE)
+		.value("REDSTONELAVACRITTERBURROW_BURROWDOWN", sc2::ABILITY_ID::REDSTONELAVACRITTERBURROW_BURROWDOWN)
+		.value("REDSTONELAVACRITTERINJUREDBURROW_BURROWDOWN", sc2::ABILITY_ID::REDSTONELAVACRITTERINJUREDBURROW_BURROWDOWN)
+		.value("REDSTONELAVACRITTERINJUREDUNBURROW_BURROWUP", sc2::ABILITY_ID::REDSTONELAVACRITTERINJUREDUNBURROW_BURROWUP)
+		.value("REDSTONELAVACRITTERUNBURROW_BURROWUP", sc2::ABILITY_ID::REDSTONELAVACRITTERUNBURROW_BURROWUP)
+		.value("REFINERYTOAUTOMATEDREFINERY_RAISE", sc2::ABILITY_ID::REFINERYTOAUTOMATEDREFINERY_RAISE)
+		.value("RELEASEINTERCEPTORS", sc2::ABILITY_ID::RELEASEINTERCEPTORS)
+		.value("RELEASEMINION", sc2::ABILITY_ID::RELEASEMINION)
+		.value("RESEARCHLABTRANSPORT_HUTLOAD", sc2::ABILITY_ID::RESEARCHLABTRANSPORT_HUTLOAD)
+		.value("RESEARCHLABTRANSPORT_HUTUNLOADALL", sc2::ABILITY_ID::RESEARCHLABTRANSPORT_HUTUNLOADALL)
+		.value("RESEARCH_ADAPTIVETALONS", sc2::ABILITY_ID::RESEARCH_ADAPTIVETALONS)
+		.value("RESEARCH_ADEPTRESONATINGGLAIVES", sc2::ABILITY_ID::RESEARCH_ADEPTRESONATINGGLAIVES)
+		.value("RESEARCH_ADVANCEDBALLISTICS", sc2::ABILITY_ID::RESEARCH_ADVANCEDBALLISTICS)
+		.value("RESEARCH_AMPLIFIEDSHIELDING", sc2::ABILITY_ID::RESEARCH_AMPLIFIEDSHIELDING)
+		.value("RESEARCH_ANABOLICSYNTHESIS", sc2::ABILITY_ID::RESEARCH_ANABOLICSYNTHESIS)
+		.value("RESEARCH_ARMORPIERCINGROCKETS", sc2::ABILITY_ID::RESEARCH_ARMORPIERCINGROCKETS)
+		.value("RESEARCH_BALLISTICRANGE", sc2::ABILITY_ID::RESEARCH_BALLISTICRANGE)
+		.value("RESEARCH_BANSHEECLOAKINGFIELD", sc2::ABILITY_ID::RESEARCH_BANSHEECLOAKINGFIELD)
+		.value("RESEARCH_BANSHEEHYPERFLIGHTROTORS", sc2::ABILITY_ID::RESEARCH_BANSHEEHYPERFLIGHTROTORS)
+		.value("RESEARCH_BATTLECRUISERWEAPONREFIT", sc2::ABILITY_ID::RESEARCH_BATTLECRUISERWEAPONREFIT)
+		.value("RESEARCH_BLINK", sc2::ABILITY_ID::RESEARCH_BLINK)
+		.value("RESEARCH_BURROW", sc2::ABILITY_ID::RESEARCH_BURROW)
+		.value("RESEARCH_CENTRIFUGALHOOKS", sc2::ABILITY_ID::RESEARCH_CENTRIFUGALHOOKS)
+		.value("RESEARCH_CHARGE", sc2::ABILITY_ID::RESEARCH_CHARGE)
+		.value("RESEARCH_CHITINOUSPLATING", sc2::ABILITY_ID::RESEARCH_CHITINOUSPLATING)
+		.value("RESEARCH_COMBATSHIELD", sc2::ABILITY_ID::RESEARCH_COMBATSHIELD)
+		.value("RESEARCH_CONCUSSIVESHELLS", sc2::ABILITY_ID::RESEARCH_CONCUSSIVESHELLS)
+		.value("RESEARCH_CYCLONELOCKONDAMAGE", sc2::ABILITY_ID::RESEARCH_CYCLONELOCKONDAMAGE)
+		.value("RESEARCH_CYCLONERAPIDFIRELAUNCHERS", sc2::ABILITY_ID::RESEARCH_CYCLONERAPIDFIRELAUNCHERS)
+		.value("RESEARCH_DRILLINGCLAWS", sc2::ABILITY_ID::RESEARCH_DRILLINGCLAWS)
+		.value("RESEARCH_DURABLEMATERIALS", sc2::ABILITY_ID::RESEARCH_DURABLEMATERIALS)
+		.value("RESEARCH_ENHANCEDMUNITIONS", sc2::ABILITY_ID::RESEARCH_ENHANCEDMUNITIONS)
+		.value("RESEARCH_ENHANCEDSHOCKWAVES", sc2::ABILITY_ID::RESEARCH_ENHANCEDSHOCKWAVES)
+		.value("RESEARCH_EVOLVEAMORPHOUSARMORCLOUD", sc2::ABILITY_ID::RESEARCH_EVOLVEAMORPHOUSARMORCLOUD)
+		.value("RESEARCH_EVOLVEVENTRALSACKS", sc2::ABILITY_ID::RESEARCH_EVOLVEVENTRALSACKS)
+		.value("RESEARCH_EXTENDEDTHERMALLANCE", sc2::ABILITY_ID::RESEARCH_EXTENDEDTHERMALLANCE)
+		.value("RESEARCH_GHOSTENERGYUPGRADE", sc2::ABILITY_ID::RESEARCH_GHOSTENERGYUPGRADE)
+		.value("RESEARCH_GLIALREGENERATION", sc2::ABILITY_ID::RESEARCH_GLIALREGENERATION)
+		.value("RESEARCH_GRAVITICBOOSTER", sc2::ABILITY_ID::RESEARCH_GRAVITICBOOSTER)
+		.value("RESEARCH_GRAVITICDRIVE", sc2::ABILITY_ID::RESEARCH_GRAVITICDRIVE)
+		.value("RESEARCH_GROOVEDSPINES", sc2::ABILITY_ID::RESEARCH_GROOVEDSPINES)
+		.value("RESEARCH_HALLUCINATION", sc2::ABILITY_ID::RESEARCH_HALLUCINATION)
+		.value("RESEARCH_HIGHCAPACITYFUELTANKS", sc2::ABILITY_ID::RESEARCH_HIGHCAPACITYFUELTANKS)
+		.value("RESEARCH_HISECAUTOTRACKING", sc2::ABILITY_ID::RESEARCH_HISECAUTOTRACKING)
+		.value("RESEARCH_IMMORTALREVIVE", sc2::ABILITY_ID::RESEARCH_IMMORTALREVIVE)
+		.value("RESEARCH_INFERNALPREIGNITER", sc2::ABILITY_ID::RESEARCH_INFERNALPREIGNITER)
+		.value("RESEARCH_INTERCEPTORGRAVITONCATAPULT", sc2::ABILITY_ID::RESEARCH_INTERCEPTORGRAVITONCATAPULT)
+		.value("RESEARCH_INTERCEPTORLAUNCHSPEEDUPGRADE", sc2::ABILITY_ID::RESEARCH_INTERCEPTORLAUNCHSPEEDUPGRADE)
+		.value("RESEARCH_LIBERATORAGMODE", sc2::ABILITY_ID::RESEARCH_LIBERATORAGMODE)
+		.value("RESEARCH_LOCKONRANGEUPGRADE", sc2::ABILITY_ID::RESEARCH_LOCKONRANGEUPGRADE)
+		.value("RESEARCH_LOCUSTLIFETIMEINCREASE", sc2::ABILITY_ID::RESEARCH_LOCUSTLIFETIMEINCREASE)
+		.value("RESEARCH_LURKERRANGE", sc2::ABILITY_ID::RESEARCH_LURKERRANGE)
+		.value("RESEARCH_MEDIVACENERGYUPGRADE", sc2::ABILITY_ID::RESEARCH_MEDIVACENERGYUPGRADE)
+		.value("RESEARCH_MUSCULARAUGMENTS", sc2::ABILITY_ID::RESEARCH_MUSCULARAUGMENTS)
+		.value("RESEARCH_NEOSTEELFRAME", sc2::ABILITY_ID::RESEARCH_NEOSTEELFRAME)
+		.value("RESEARCH_NEURALPARASITE", sc2::ABILITY_ID::RESEARCH_NEURALPARASITE)
+		.value("RESEARCH_PATHOGENGLANDS", sc2::ABILITY_ID::RESEARCH_PATHOGENGLANDS)
+		.value("RESEARCH_PERSONALCLOAKING", sc2::ABILITY_ID::RESEARCH_PERSONALCLOAKING)
+		.value("RESEARCH_PHOENIXANIONPULSECRYSTALS", sc2::ABILITY_ID::RESEARCH_PHOENIXANIONPULSECRYSTALS)
+		.value("RESEARCH_PNEUMATIZEDCARAPACE", sc2::ABILITY_ID::RESEARCH_PNEUMATIZEDCARAPACE)
+		.value("RESEARCH_PROTOSSAIRARMOR", sc2::ABILITY_ID::RESEARCH_PROTOSSAIRARMOR)
+		.value("RESEARCH_PROTOSSAIRARMORLEVEL1", sc2::ABILITY_ID::RESEARCH_PROTOSSAIRARMORLEVEL1)
+		.value("RESEARCH_PROTOSSAIRARMORLEVEL2", sc2::ABILITY_ID::RESEARCH_PROTOSSAIRARMORLEVEL2)
+		.value("RESEARCH_PROTOSSAIRARMORLEVEL3", sc2::ABILITY_ID::RESEARCH_PROTOSSAIRARMORLEVEL3)
+		.value("RESEARCH_PROTOSSAIRWEAPONS", sc2::ABILITY_ID::RESEARCH_PROTOSSAIRWEAPONS)
+		.value("RESEARCH_PROTOSSAIRWEAPONSLEVEL1", sc2::ABILITY_ID::RESEARCH_PROTOSSAIRWEAPONSLEVEL1)
+		.value("RESEARCH_PROTOSSAIRWEAPONSLEVEL2", sc2::ABILITY_ID::RESEARCH_PROTOSSAIRWEAPONSLEVEL2)
+		.value("RESEARCH_PROTOSSAIRWEAPONSLEVEL3", sc2::ABILITY_ID::RESEARCH_PROTOSSAIRWEAPONSLEVEL3)
+		.value("RESEARCH_PROTOSSGROUNDARMOR", sc2::ABILITY_ID::RESEARCH_PROTOSSGROUNDARMOR)
+		.value("RESEARCH_PROTOSSGROUNDARMORLEVEL1", sc2::ABILITY_ID::RESEARCH_PROTOSSGROUNDARMORLEVEL1)
+		.value("RESEARCH_PROTOSSGROUNDARMORLEVEL2", sc2::ABILITY_ID::RESEARCH_PROTOSSGROUNDARMORLEVEL2)
+		.value("RESEARCH_PROTOSSGROUNDARMORLEVEL3", sc2::ABILITY_ID::RESEARCH_PROTOSSGROUNDARMORLEVEL3)
+		.value("RESEARCH_PROTOSSGROUNDWEAPONS", sc2::ABILITY_ID::RESEARCH_PROTOSSGROUNDWEAPONS)
+		.value("RESEARCH_PROTOSSGROUNDWEAPONSLEVEL1", sc2::ABILITY_ID::RESEARCH_PROTOSSGROUNDWEAPONSLEVEL1)
+		.value("RESEARCH_PROTOSSGROUNDWEAPONSLEVEL2", sc2::ABILITY_ID::RESEARCH_PROTOSSGROUNDWEAPONSLEVEL2)
+		.value("RESEARCH_PROTOSSGROUNDWEAPONSLEVEL3", sc2::ABILITY_ID::RESEARCH_PROTOSSGROUNDWEAPONSLEVEL3)
+		.value("RESEARCH_PROTOSSSHIELDS", sc2::ABILITY_ID::RESEARCH_PROTOSSSHIELDS)
+		.value("RESEARCH_PROTOSSSHIELDSLEVEL1", sc2::ABILITY_ID::RESEARCH_PROTOSSSHIELDSLEVEL1)
+		.value("RESEARCH_PROTOSSSHIELDSLEVEL2", sc2::ABILITY_ID::RESEARCH_PROTOSSSHIELDSLEVEL2)
+		.value("RESEARCH_PROTOSSSHIELDSLEVEL3", sc2::ABILITY_ID::RESEARCH_PROTOSSSHIELDSLEVEL3)
+		.value("RESEARCH_PSIONICAMPLIFIERS", sc2::ABILITY_ID::RESEARCH_PSIONICAMPLIFIERS)
+		.value("RESEARCH_PSIONICSURGE", sc2::ABILITY_ID::RESEARCH_PSIONICSURGE)
+		.value("RESEARCH_PSISTORM", sc2::ABILITY_ID::RESEARCH_PSISTORM)
+		.value("RESEARCH_RAPIDDEPLOYMENT", sc2::ABILITY_ID::RESEARCH_RAPIDDEPLOYMENT)
+		.value("RESEARCH_RAPIDREIGNITIONSYSTEM", sc2::ABILITY_ID::RESEARCH_RAPIDREIGNITIONSYSTEM)
+		.value("RESEARCH_RAVENCORVIDREACTOR", sc2::ABILITY_ID::RESEARCH_RAVENCORVIDREACTOR)
+		.value("RESEARCH_RAVENRECALIBRATEDEXPLOSIVES", sc2::ABILITY_ID::RESEARCH_RAVENRECALIBRATEDEXPLOSIVES)
+		.value("RESEARCH_REAPERSPEED", sc2::ABILITY_ID::RESEARCH_REAPERSPEED)
+		.value("RESEARCH_ROACHSUPPLY", sc2::ABILITY_ID::RESEARCH_ROACHSUPPLY)
+		.value("RESEARCH_SEEKERMISSILE", sc2::ABILITY_ID::RESEARCH_SEEKERMISSILE)
+		.value("RESEARCH_SHADOWSTRIKE", sc2::ABILITY_ID::RESEARCH_SHADOWSTRIKE)
+		.value("RESEARCH_SMARTSERVOS", sc2::ABILITY_ID::RESEARCH_SMARTSERVOS)
+		.value("RESEARCH_STIMPACK", sc2::ABILITY_ID::RESEARCH_STIMPACK)
+		.value("RESEARCH_TEMPESTRANGEUPGRADE", sc2::ABILITY_ID::RESEARCH_TEMPESTRANGEUPGRADE)
+		.value("RESEARCH_TERRANINFANTRYARMOR", sc2::ABILITY_ID::RESEARCH_TERRANINFANTRYARMOR)
+		.value("RESEARCH_TERRANINFANTRYARMORLEVEL1", sc2::ABILITY_ID::RESEARCH_TERRANINFANTRYARMORLEVEL1)
+		.value("RESEARCH_TERRANINFANTRYARMORLEVEL2", sc2::ABILITY_ID::RESEARCH_TERRANINFANTRYARMORLEVEL2)
+		.value("RESEARCH_TERRANINFANTRYARMORLEVEL3", sc2::ABILITY_ID::RESEARCH_TERRANINFANTRYARMORLEVEL3)
+		.value("RESEARCH_TERRANINFANTRYWEAPONS", sc2::ABILITY_ID::RESEARCH_TERRANINFANTRYWEAPONS)
+		.value("RESEARCH_TERRANINFANTRYWEAPONSLEVEL1", sc2::ABILITY_ID::RESEARCH_TERRANINFANTRYWEAPONSLEVEL1)
+		.value("RESEARCH_TERRANINFANTRYWEAPONSLEVEL2", sc2::ABILITY_ID::RESEARCH_TERRANINFANTRYWEAPONSLEVEL2)
+		.value("RESEARCH_TERRANINFANTRYWEAPONSLEVEL3", sc2::ABILITY_ID::RESEARCH_TERRANINFANTRYWEAPONSLEVEL3)
+		.value("RESEARCH_TERRANSHIPPLATINGLEVEL1", sc2::ABILITY_ID::RESEARCH_TERRANSHIPPLATINGLEVEL1)
+		.value("RESEARCH_TERRANSHIPPLATINGLEVEL2", sc2::ABILITY_ID::RESEARCH_TERRANSHIPPLATINGLEVEL2)
+		.value("RESEARCH_TERRANSHIPPLATINGLEVEL3", sc2::ABILITY_ID::RESEARCH_TERRANSHIPPLATINGLEVEL3)
+		.value("RESEARCH_TERRANSHIPWEAPONS", sc2::ABILITY_ID::RESEARCH_TERRANSHIPWEAPONS)
+		.value("RESEARCH_TERRANSHIPWEAPONSLEVEL1", sc2::ABILITY_ID::RESEARCH_TERRANSHIPWEAPONSLEVEL1)
+		.value("RESEARCH_TERRANSHIPWEAPONSLEVEL2", sc2::ABILITY_ID::RESEARCH_TERRANSHIPWEAPONSLEVEL2)
+		.value("RESEARCH_TERRANSHIPWEAPONSLEVEL3", sc2::ABILITY_ID::RESEARCH_TERRANSHIPWEAPONSLEVEL3)
+		.value("RESEARCH_TERRANSTRUCTUREARMORUPGRADE", sc2::ABILITY_ID::RESEARCH_TERRANSTRUCTUREARMORUPGRADE)
+		.value("RESEARCH_TERRANVEHICLEANDSHIPPLATING", sc2::ABILITY_ID::RESEARCH_TERRANVEHICLEANDSHIPPLATING)
+		.value("RESEARCH_TERRANVEHICLEANDSHIPPLATINGLEVEL1", sc2::ABILITY_ID::RESEARCH_TERRANVEHICLEANDSHIPPLATINGLEVEL1)
+		.value("RESEARCH_TERRANVEHICLEANDSHIPPLATINGLEVEL2", sc2::ABILITY_ID::RESEARCH_TERRANVEHICLEANDSHIPPLATINGLEVEL2)
+		.value("RESEARCH_TERRANVEHICLEANDSHIPPLATINGLEVEL3", sc2::ABILITY_ID::RESEARCH_TERRANVEHICLEANDSHIPPLATINGLEVEL3)
+		.value("RESEARCH_TERRANVEHICLEPLATINGLEVEL1", sc2::ABILITY_ID::RESEARCH_TERRANVEHICLEPLATINGLEVEL1)
+		.value("RESEARCH_TERRANVEHICLEPLATINGLEVEL2", sc2::ABILITY_ID::RESEARCH_TERRANVEHICLEPLATINGLEVEL2)
+		.value("RESEARCH_TERRANVEHICLEPLATINGLEVEL3", sc2::ABILITY_ID::RESEARCH_TERRANVEHICLEPLATINGLEVEL3)
+		.value("RESEARCH_TERRANVEHICLEWEAPONS", sc2::ABILITY_ID::RESEARCH_TERRANVEHICLEWEAPONS)
+		.value("RESEARCH_TERRANVEHICLEWEAPONSLEVEL1", sc2::ABILITY_ID::RESEARCH_TERRANVEHICLEWEAPONSLEVEL1)
+		.value("RESEARCH_TERRANVEHICLEWEAPONSLEVEL2", sc2::ABILITY_ID::RESEARCH_TERRANVEHICLEWEAPONSLEVEL2)
+		.value("RESEARCH_TERRANVEHICLEWEAPONSLEVEL3", sc2::ABILITY_ID::RESEARCH_TERRANVEHICLEWEAPONSLEVEL3)
+		.value("RESEARCH_TRANSFORMATIONSERVOS", sc2::ABILITY_ID::RESEARCH_TRANSFORMATIONSERVOS)
+		.value("RESEARCH_TUNNELINGCLAWS", sc2::ABILITY_ID::RESEARCH_TUNNELINGCLAWS)
+		.value("RESEARCH_VOIDRAYSPEEDUPGRADE", sc2::ABILITY_ID::RESEARCH_VOIDRAYSPEEDUPGRADE)
+		.value("RESEARCH_WARPGATE", sc2::ABILITY_ID::RESEARCH_WARPGATE)
+		.value("RESEARCH_ZERGFLYERARMOR", sc2::ABILITY_ID::RESEARCH_ZERGFLYERARMOR)
+		.value("RESEARCH_ZERGFLYERARMORLEVEL1", sc2::ABILITY_ID::RESEARCH_ZERGFLYERARMORLEVEL1)
+		.value("RESEARCH_ZERGFLYERARMORLEVEL2", sc2::ABILITY_ID::RESEARCH_ZERGFLYERARMORLEVEL2)
+		.value("RESEARCH_ZERGFLYERARMORLEVEL3", sc2::ABILITY_ID::RESEARCH_ZERGFLYERARMORLEVEL3)
+		.value("RESEARCH_ZERGFLYERATTACK", sc2::ABILITY_ID::RESEARCH_ZERGFLYERATTACK)
+		.value("RESEARCH_ZERGFLYERATTACKLEVEL1", sc2::ABILITY_ID::RESEARCH_ZERGFLYERATTACKLEVEL1)
+		.value("RESEARCH_ZERGFLYERATTACKLEVEL2", sc2::ABILITY_ID::RESEARCH_ZERGFLYERATTACKLEVEL2)
+		.value("RESEARCH_ZERGFLYERATTACKLEVEL3", sc2::ABILITY_ID::RESEARCH_ZERGFLYERATTACKLEVEL3)
+		.value("RESEARCH_ZERGGROUNDARMOR", sc2::ABILITY_ID::RESEARCH_ZERGGROUNDARMOR)
+		.value("RESEARCH_ZERGGROUNDARMORLEVEL1", sc2::ABILITY_ID::RESEARCH_ZERGGROUNDARMORLEVEL1)
+		.value("RESEARCH_ZERGGROUNDARMORLEVEL2", sc2::ABILITY_ID::RESEARCH_ZERGGROUNDARMORLEVEL2)
+		.value("RESEARCH_ZERGGROUNDARMORLEVEL3", sc2::ABILITY_ID::RESEARCH_ZERGGROUNDARMORLEVEL3)
+		.value("RESEARCH_ZERGLINGADRENALGLANDS", sc2::ABILITY_ID::RESEARCH_ZERGLINGADRENALGLANDS)
+		.value("RESEARCH_ZERGLINGMETABOLICBOOST", sc2::ABILITY_ID::RESEARCH_ZERGLINGMETABOLICBOOST)
+		.value("RESEARCH_ZERGMELEEWEAPONS", sc2::ABILITY_ID::RESEARCH_ZERGMELEEWEAPONS)
+		.value("RESEARCH_ZERGMELEEWEAPONSLEVEL1", sc2::ABILITY_ID::RESEARCH_ZERGMELEEWEAPONSLEVEL1)
+		.value("RESEARCH_ZERGMELEEWEAPONSLEVEL2", sc2::ABILITY_ID::RESEARCH_ZERGMELEEWEAPONSLEVEL2)
+		.value("RESEARCH_ZERGMELEEWEAPONSLEVEL3", sc2::ABILITY_ID::RESEARCH_ZERGMELEEWEAPONSLEVEL3)
+		.value("RESEARCH_ZERGMISSILEWEAPONS", sc2::ABILITY_ID::RESEARCH_ZERGMISSILEWEAPONS)
+		.value("RESEARCH_ZERGMISSILEWEAPONSLEVEL1", sc2::ABILITY_ID::RESEARCH_ZERGMISSILEWEAPONSLEVEL1)
+		.value("RESEARCH_ZERGMISSILEWEAPONSLEVEL2", sc2::ABILITY_ID::RESEARCH_ZERGMISSILEWEAPONSLEVEL2)
+		.value("RESEARCH_ZERGMISSILEWEAPONSLEVEL3", sc2::ABILITY_ID::RESEARCH_ZERGMISSILEWEAPONSLEVEL3)
+		.value("RESTORESHIELDS", sc2::ABILITY_ID::RESTORESHIELDS)
+		.value("ROGUEGHOSTCLOAK_CLOAKOFF", sc2::ABILITY_ID::ROGUEGHOSTCLOAK_CLOAKOFF)
+		.value("ROGUEGHOSTCLOAK_CLOAKONSPECTRE", sc2::ABILITY_ID::ROGUEGHOSTCLOAK_CLOAKONSPECTRE)
+		.value("SALVAGEBANELINGREFUND_SALVAGE", sc2::ABILITY_ID::SALVAGEBANELINGREFUND_SALVAGE)
+		.value("SALVAGEBANELING_SALVAGE", sc2::ABILITY_ID::SALVAGEBANELING_SALVAGE)
+		.value("SALVAGEBUNKERREFUND_SALVAGE", sc2::ABILITY_ID::SALVAGEBUNKERREFUND_SALVAGE)
+		.value("SALVAGEBUNKER_SALVAGE", sc2::ABILITY_ID::SALVAGEBUNKER_SALVAGE)
+		.value("SALVAGEDRONEREFUND_SALVAGE", sc2::ABILITY_ID::SALVAGEDRONEREFUND_SALVAGE)
+		.value("SALVAGEDRONE_SALVAGE", sc2::ABILITY_ID::SALVAGEDRONE_SALVAGE)
+		.value("SALVAGEHYDRALISKREFUND_SALVAGE", sc2::ABILITY_ID::SALVAGEHYDRALISKREFUND_SALVAGE)
+		.value("SALVAGEHYDRALISK_SALVAGE", sc2::ABILITY_ID::SALVAGEHYDRALISK_SALVAGE)
+		.value("SALVAGEINFESTORREFUND_SALVAGE", sc2::ABILITY_ID::SALVAGEINFESTORREFUND_SALVAGE)
+		.value("SALVAGEINFESTOR_SALVAGE", sc2::ABILITY_ID::SALVAGEINFESTOR_SALVAGE)
+		.value("SALVAGEQUEENREFUND_SALVAGE", sc2::ABILITY_ID::SALVAGEQUEENREFUND_SALVAGE)
+		.value("SALVAGEQUEEN_SALVAGE", sc2::ABILITY_ID::SALVAGEQUEEN_SALVAGE)
+		.value("SALVAGEROACHREFUND_SALVAGE", sc2::ABILITY_ID::SALVAGEROACHREFUND_SALVAGE)
+		.value("SALVAGEROACH_SALVAGE", sc2::ABILITY_ID::SALVAGEROACH_SALVAGE)
+		.value("SALVAGESWARMHOSTREFUND_SALVAGE", sc2::ABILITY_ID::SALVAGESWARMHOSTREFUND_SALVAGE)
+		.value("SALVAGESWARMHOST_SALVAGE", sc2::ABILITY_ID::SALVAGESWARMHOST_SALVAGE)
+		.value("SALVAGEULTRALISKREFUND_SALVAGE", sc2::ABILITY_ID::SALVAGEULTRALISKREFUND_SALVAGE)
+		.value("SALVAGEULTRALISK_SALVAGE", sc2::ABILITY_ID::SALVAGEULTRALISK_SALVAGE)
+		.value("SALVAGEZERGLINGREFUND_SALVAGE", sc2::ABILITY_ID::SALVAGEZERGLINGREFUND_SALVAGE)
+		.value("SALVAGEZERGLING_SALVAGE", sc2::ABILITY_ID::SALVAGEZERGLING_SALVAGE)
+		.value("SAPSTRUCTURE", sc2::ABILITY_ID::SAPSTRUCTURE)
+		.value("SCRYER", sc2::ABILITY_ID::SCRYER)
+		.value("SECURITYGATEDIAGONALBLURLOWERED_GATEOPEN", sc2::ABILITY_ID::SECURITYGATEDIAGONALBLURLOWERED_GATEOPEN)
+		.value("SECURITYGATEDIAGONALBLUR_GATECLOSE", sc2::ABILITY_ID::SECURITYGATEDIAGONALBLUR_GATECLOSE)
+		.value("SECURITYGATEDIAGONALULBRLOWERED_GATEOPEN", sc2::ABILITY_ID::SECURITYGATEDIAGONALULBRLOWERED_GATEOPEN)
+		.value("SECURITYGATEDIAGONALULBR_GATECLOSE", sc2::ABILITY_ID::SECURITYGATEDIAGONALULBR_GATECLOSE)
+		.value("SECURITYGATESTRAIGHTHORIZONTALBFLOWERED_GATEOPEN", sc2::ABILITY_ID::SECURITYGATESTRAIGHTHORIZONTALBFLOWERED_GATEOPEN)
+		.value("SECURITYGATESTRAIGHTHORIZONTALBF_GATECLOSE", sc2::ABILITY_ID::SECURITYGATESTRAIGHTHORIZONTALBF_GATECLOSE)
+		.value("SECURITYGATESTRAIGHTHORIZONTALLOWERED_GATEOPEN", sc2::ABILITY_ID::SECURITYGATESTRAIGHTHORIZONTALLOWERED_GATEOPEN)
+		.value("SECURITYGATESTRAIGHTHORIZONTAL_GATECLOSE", sc2::ABILITY_ID::SECURITYGATESTRAIGHTHORIZONTAL_GATECLOSE)
+		.value("SECURITYGATESTRAIGHTVERTICALLFLOWERED_GATEOPEN", sc2::ABILITY_ID::SECURITYGATESTRAIGHTVERTICALLFLOWERED_GATEOPEN)
+		.value("SECURITYGATESTRAIGHTVERTICALLF_GATECLOSE", sc2::ABILITY_ID::SECURITYGATESTRAIGHTVERTICALLF_GATECLOSE)
+		.value("SECURITYGATESTRAIGHTVERTICALLOWERED_GATEOPEN", sc2::ABILITY_ID::SECURITYGATESTRAIGHTVERTICALLOWERED_GATEOPEN)
+		.value("SECURITYGATESTRAIGHTVERTICAL_GATECLOSE", sc2::ABILITY_ID::SECURITYGATESTRAIGHTVERTICAL_GATECLOSE)
+		.value("SELENDISHANGAR_INTERCEPTOR", sc2::ABILITY_ID::SELENDISHANGAR_INTERCEPTOR)
+		.value("SELFREPAIR", sc2::ABILITY_ID::SELFREPAIR)
+		.value("SELFREPAIR_CANCEL", sc2::ABILITY_ID::SELFREPAIR_CANCEL)
+		.value("SENTRYGUNBURROW_BURROWTURRET", sc2::ABILITY_ID::SENTRYGUNBURROW_BURROWTURRET)
+		.value("SENTRYGUNUNBURROW_UNBURROWTURRET", sc2::ABILITY_ID::SENTRYGUNUNBURROW_UNBURROWTURRET)
+		.value("SHAKURASLIGHTBRIDGENE10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::SHAKURASLIGHTBRIDGENE10OUT_BRIDGEEXTEND)
+		.value("SHAKURASLIGHTBRIDGENE10_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITNW12OUT_BRIDGEEXTEND)
+		.value("PORTCITY_BRIDGE_UNITNW12_BRIDGERETRACT", sc2::ABILITY_ID::SHAKURASLIGHTBRIDGENE10_BRIDGERETRACT)
+		.value("SHAKURASLIGHTBRIDGENE12OUT_BRIDGEEXTEND", sc2::ABILITY_ID::SHAKURASLIGHTBRIDGENE12OUT_BRIDGEEXTEND)
+		.value("SHAKURASLIGHTBRIDGENE12_BRIDGERETRACT", sc2::ABILITY_ID::SHAKURASLIGHTBRIDGENE12_BRIDGERETRACT)
+		.value("SHAKURASLIGHTBRIDGENE8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::SHAKURASLIGHTBRIDGENE8OUT_BRIDGEEXTEND)
+		.value("SHAKURASLIGHTBRIDGENE8_BRIDGERETRACT", sc2::ABILITY_ID::SHAKURASLIGHTBRIDGENE8_BRIDGERETRACT)
+		.value("SHAKURASLIGHTBRIDGENW10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::SHAKURASLIGHTBRIDGENW10OUT_BRIDGEEXTEND)
+		.value("SHAKURASLIGHTBRIDGENW10_BRIDGERETRACT", sc2::ABILITY_ID::SHAKURASLIGHTBRIDGENW10_BRIDGERETRACT)
+		.value("SHAKURASLIGHTBRIDGENW12OUT_BRIDGEEXTEND", sc2::ABILITY_ID::SHAKURASLIGHTBRIDGENW12OUT_BRIDGEEXTEND)
+		.value("SHAKURASLIGHTBRIDGENW12_BRIDGERETRACT", sc2::ABILITY_ID::SHAKURASLIGHTBRIDGENW12_BRIDGERETRACT)
+		.value("SHAKURASLIGHTBRIDGENW8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::SHAKURASLIGHTBRIDGENW8OUT_BRIDGEEXTEND)
+		.value("SHAKURASLIGHTBRIDGENW8_BRIDGERETRACT", sc2::ABILITY_ID::SHAKURASLIGHTBRIDGENW8_BRIDGERETRACT)
+		.value("SINGLERECALL", sc2::ABILITY_ID::SINGLERECALL)
+		.value("SIPHON", sc2::ABILITY_ID::SIPHON)
+		.value("SIPHON_CANCEL", sc2::ABILITY_ID::SIPHON_CANCEL)
+		.value("SLAYNELEMENTALGRAB", sc2::ABILITY_ID::SLAYNELEMENTALGRAB)
+		.value("SMART", sc2::ABILITY_ID::SMART)
+		.value("SNIPE", sc2::ABILITY_ID::SNIPE)
+		.value("SNIPEDOT", sc2::ABILITY_ID::SNIPEDOT)
+		.value("SNOWREFINERY_TERRAN_EXTENDINGBRIDGENESHORT10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::SNOWREFINERY_TERRAN_EXTENDINGBRIDGENESHORT10OUT_BRIDGEEXTEND)
+		.value("SNOWREFINERY_TERRAN_EXTENDINGBRIDGENESHORT10_BRIDGERETRACT", sc2::ABILITY_ID::SNOWREFINERY_TERRAN_EXTENDINGBRIDGENESHORT10_BRIDGERETRACT)
+		.value("SNOWREFINERY_TERRAN_EXTENDINGBRIDGENESHORT8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::SNOWREFINERY_TERRAN_EXTENDINGBRIDGENESHORT8OUT_BRIDGEEXTEND)
+		.value("SNOWREFINERY_TERRAN_EXTENDINGBRIDGENESHORT8_BRIDGERETRACT", sc2::ABILITY_ID::SNOWREFINERY_TERRAN_EXTENDINGBRIDGENESHORT8_BRIDGERETRACT)
+		.value("SNOWREFINERY_TERRAN_EXTENDINGBRIDGENWSHORT10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::SNOWREFINERY_TERRAN_EXTENDINGBRIDGENWSHORT10OUT_BRIDGEEXTEND)
+		.value("SNOWREFINERY_TERRAN_EXTENDINGBRIDGENWSHORT10_BRIDGERETRACT", sc2::ABILITY_ID::SNOWREFINERY_TERRAN_EXTENDINGBRIDGENWSHORT10_BRIDGERETRACT)
+		.value("SNOWREFINERY_TERRAN_EXTENDINGBRIDGENWSHORT8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::SNOWREFINERY_TERRAN_EXTENDINGBRIDGENWSHORT8OUT_BRIDGEEXTEND)
+		.value("SNOWREFINERY_TERRAN_EXTENDINGBRIDGENWSHORT8_BRIDGERETRACT", sc2::ABILITY_ID::SNOWREFINERY_TERRAN_EXTENDINGBRIDGENWSHORT8_BRIDGERETRACT)
+		.value("SOULCHANNEL_CANCEL", sc2::ABILITY_ID::SOULCHANNEL_CANCEL)
+		.value("SPAWNINFESTEDTERRAN_LOCUSTMP", sc2::ABILITY_ID::SPAWNINFESTEDTERRAN_LOCUSTMP)
+		.value("SPECOPSDROPSHIPTRANSPORT_MEDIVACLOAD", sc2::ABILITY_ID::SPECOPSDROPSHIPTRANSPORT_MEDIVACLOAD)
+		.value("SPECOPSDROPSHIPTRANSPORT_MEDIVACUNLOADALL", sc2::ABILITY_ID::SPECOPSDROPSHIPTRANSPORT_MEDIVACUNLOADALL)
+		.value("SPECTREHOLDFIRE", sc2::ABILITY_ID::SPECTREHOLDFIRE)
+		.value("SPECTRENUKESILOARMMAGAZINE_SPECTRENUKEARM", sc2::ABILITY_ID::SPECTRENUKESILOARMMAGAZINE_SPECTRENUKEARM)
+		.value("SPECTRENUKE_CANCEL", sc2::ABILITY_ID::SPECTRENUKE_CANCEL)
+		.value("SPECTRENUKE_SPECTRENUKECALLDOWN", sc2::ABILITY_ID::SPECTRENUKE_SPECTRENUKECALLDOWN)
+		.value("SPECTRESHIELD", sc2::ABILITY_ID::SPECTRESHIELD)
+		.value("SPECTREWEAPONSFREE_WEAPONSFREE", sc2::ABILITY_ID::SPECTREWEAPONSFREE_WEAPONSFREE)
+		.value("SPINECRAWLERUPROOT_CANCEL", sc2::ABILITY_ID::SPINECRAWLERUPROOT_CANCEL)
+		.value("SPORECRAWLERUPROOT_CANCEL", sc2::ABILITY_ID::SPORECRAWLERUPROOT_CANCEL)
+		.value("SS_BATTLECRUISERHUNTERSEEKERATTACK_SS_SHOOTING", sc2::ABILITY_ID::SS_BATTLECRUISERHUNTERSEEKERATTACK_SS_SHOOTING)
+		.value("SS_BATTLECRUISERMISSILEATTACK_SS_SHOOTING", sc2::ABILITY_ID::SS_BATTLECRUISERMISSILEATTACK_SS_SHOOTING)
+		.value("SS_CARRIERBOSSATTACKLAUNCH_SS_SHOOTING", sc2::ABILITY_ID::SS_CARRIERBOSSATTACKLAUNCH_SS_SHOOTING)
+		.value("SS_CARRIERBOSSATTACKTARGET_SS_SHOOTING", sc2::ABILITY_ID::SS_CARRIERBOSSATTACKTARGET_SS_SHOOTING)
+		.value("SS_CARRIERSPAWNINTERCEPTOR", sc2::ABILITY_ID::SS_CARRIERSPAWNINTERCEPTOR)
+		.value("SS_CORRUPTORATTACK_SS_SHOOTING", sc2::ABILITY_ID::SS_CORRUPTORATTACK_SS_SHOOTING)
+		.value("SS_FIGHTERBOMB", sc2::ABILITY_ID::SS_FIGHTERBOMB)
+		.value("SS_FIGHTERSHOOTING_SS_SHOOTING", sc2::ABILITY_ID::SS_FIGHTERSHOOTING_SS_SHOOTING)
+		.value("SS_INTERCEPTORATTACK_SS_SHOOTING", sc2::ABILITY_ID::SS_INTERCEPTORATTACK_SS_SHOOTING)
+		.value("SS_LEVIATHANSPAWNBOMBS", sc2::ABILITY_ID::SS_LEVIATHANSPAWNBOMBS)
+		.value("SS_LEVIATHANTENTACLEATTACKL1", sc2::ABILITY_ID::SS_LEVIATHANTENTACLEATTACKL1)
+		.value("SS_LEVIATHANTENTACLEATTACKL1NODELAY", sc2::ABILITY_ID::SS_LEVIATHANTENTACLEATTACKL1NODELAY)
+		.value("SS_LEVIATHANTENTACLEATTACKL2", sc2::ABILITY_ID::SS_LEVIATHANTENTACLEATTACKL2)
+		.value("SS_LEVIATHANTENTACLEATTACKL2NODELAY", sc2::ABILITY_ID::SS_LEVIATHANTENTACLEATTACKL2NODELAY)
+		.value("SS_LEVIATHANTENTACLEATTACKR1", sc2::ABILITY_ID::SS_LEVIATHANTENTACLEATTACKR1)
+		.value("SS_LEVIATHANTENTACLEATTACKR1NODELAY", sc2::ABILITY_ID::SS_LEVIATHANTENTACLEATTACKR1NODELAY)
+		.value("SS_LEVIATHANTENTACLEATTACKR2", sc2::ABILITY_ID::SS_LEVIATHANTENTACLEATTACKR2)
+		.value("SS_LEVIATHANTENTACLEATTACKR2NODELAY", sc2::ABILITY_ID::SS_LEVIATHANTENTACLEATTACKR2NODELAY)
+		.value("SS_PHOENIXSHOOTING_SS_SHOOTING", sc2::ABILITY_ID::SS_PHOENIXSHOOTING_SS_SHOOTING)
+		.value("SS_SCIENCEVESSELATTACK_SS_SHOOTING", sc2::ABILITY_ID::SS_SCIENCEVESSELATTACK_SS_SHOOTING)
+		.value("SS_SCIENCEVESSELTELEPORT_ZERATULBLINK", sc2::ABILITY_ID::SS_SCIENCEVESSELTELEPORT_ZERATULBLINK)
+		.value("SS_SCOUTATTACK_SS_SHOOTING", sc2::ABILITY_ID::SS_SCOUTATTACK_SS_SHOOTING)
+		.value("SS_SWARMGUARDIANATTACK_SS_SHOOTING", sc2::ABILITY_ID::SS_SWARMGUARDIANATTACK_SS_SHOOTING)
+		.value("SS_TERRATRONBEAMATTACK", sc2::ABILITY_ID::SS_TERRATRONBEAMATTACK)
+		.value("SS_TERRATRONSAWATTACK", sc2::ABILITY_ID::SS_TERRATRONSAWATTACK)
+		.value("SS_WRAITHATTACK_SS_SHOOTING", sc2::ABILITY_ID::SS_WRAITHATTACK_SS_SHOOTING)
+		.value("STARPORTREACTORMORPH_REACTOR", sc2::ABILITY_ID::STARPORTREACTORMORPH_REACTOR)
+		.value("STARPORTTECHLABMORPH_TECHLABSTARPORT", sc2::ABILITY_ID::STARPORTTECHLABMORPH_TECHLABSTARPORT)
+		.value("STARPORTTECHREACTORMORPH_TECHLABSTARPORT", sc2::ABILITY_ID::STARPORTTECHREACTORMORPH_TECHLABSTARPORT)
+		.value("STARTCOLONISTVEHICLE", sc2::ABILITY_ID::STARTCOLONISTVEHICLE)
+		.value("STOP", sc2::ABILITY_ID::STOP)
+		.value("STOPPROTOSSBUILDING_CHEER", sc2::ABILITY_ID::STOPPROTOSSBUILDING_CHEER)
+		.value("STOPPROTOSSBUILDING_DANCE", sc2::ABILITY_ID::STOPPROTOSSBUILDING_DANCE)
+		.value("STOPPROTOSSBUILDING_HOLDFIRE", sc2::ABILITY_ID::STOPPROTOSSBUILDING_HOLDFIRE)
+		.value("STOP_BATTLECRUISER", sc2::ABILITY_ID::STOP_BATTLECRUISER)
+		.value("STOP_BUILDING", sc2::ABILITY_ID::STOP_BUILDING)
+		.value("STOP_CHEER", sc2::ABILITY_ID::STOP_CHEER)
+		.value("STOP_DANCE", sc2::ABILITY_ID::STOP_DANCE)
+		.value("STOP_HOLDFIRESPECIAL", sc2::ABILITY_ID::STOP_HOLDFIRESPECIAL)
+		.value("STOP_REDIRECT", sc2::ABILITY_ID::STOP_REDIRECT)
+		.value("STOP_STOP", sc2::ABILITY_ID::STOP_STOP)
+		.value("SUMMONMERCENARIESPH_HIREKELMORIANMINERSPH", sc2::ABILITY_ID::SUMMONMERCENARIESPH_HIREKELMORIANMINERSPH)
+		.value("SUMMONMERCENARIES_HIREDEVILDOGS", sc2::ABILITY_ID::SUMMONMERCENARIES_HIREDEVILDOGS)
+		.value("SUMMONMERCENARIES_HIREDUKESREVENGE", sc2::ABILITY_ID::SUMMONMERCENARIES_HIREDUKESREVENGE)
+		.value("SUMMONMERCENARIES_HIREDUSKWING", sc2::ABILITY_ID::SUMMONMERCENARIES_HIREDUSKWING)
+		.value("SUMMONMERCENARIES_HIREHAMMERSECURITIES", sc2::ABILITY_ID::SUMMONMERCENARIES_HIREHAMMERSECURITIES)
+		.value("SUMMONMERCENARIES_HIREHELSANGELS", sc2::ABILITY_ID::SUMMONMERCENARIES_HIREHELSANGELS)
+		.value("SUMMONMERCENARIES_HIREKELMORIANMINERS", sc2::ABILITY_ID::SUMMONMERCENARIES_HIREKELMORIANMINERS)
+		.value("SUMMONMERCENARIES_HIRESIEGEBREAKERS", sc2::ABILITY_ID::SUMMONMERCENARIES_HIRESIEGEBREAKERS)
+		.value("SUMMONMERCENARIES_HIRESPARTANCOMPANY", sc2::ABILITY_ID::SUMMONMERCENARIES_HIRESPARTANCOMPANY)
+		.value("SWARMHOSTSPAWNLOCUSTS_LOCUSTMP", sc2::ABILITY_ID::SWARMHOSTSPAWNLOCUSTS_LOCUSTMP)
+		.value("TALDARIMVORTEX_VORTEX", sc2::ABILITY_ID::TALDARIMVORTEX_VORTEX)
+		.value("TAUNT", sc2::ABILITY_ID::TAUNT)
+		.value("TAURENOUTHOUSELIFTOFF_TAURENOUTHOUSEFLY", sc2::ABILITY_ID::TAURENOUTHOUSELIFTOFF_TAURENOUTHOUSEFLY)
+		.value("TAURENOUTHOUSETRANSPORT_LOADTAURENOUTHOUSE", sc2::ABILITY_ID::TAURENOUTHOUSETRANSPORT_LOADTAURENOUTHOUSE)
+		.value("TAURENOUTHOUSETRANSPORT_UNLOADTAURENOUTHOUSE", sc2::ABILITY_ID::TAURENOUTHOUSETRANSPORT_UNLOADTAURENOUTHOUSE)
+		.value("TAURENSTIMPACK_STIM", sc2::ABILITY_ID::TAURENSTIMPACK_STIM)
+		.value("TEMPLEDOORDOWN", sc2::ABILITY_ID::TEMPLEDOORDOWN)
+		.value("TEMPLEDOORDOWNURDL", sc2::ABILITY_ID::TEMPLEDOORDOWNURDL)
+		.value("TEMPLEDOORUP", sc2::ABILITY_ID::TEMPLEDOORUP)
+		.value("TEMPLEDOORUPURDL", sc2::ABILITY_ID::TEMPLEDOORUPURDL)
+		.value("TEMPORALRIFT", sc2::ABILITY_ID::TEMPORALRIFT)
+		.value("TERRANBUILDDROP_CANCEL", sc2::ABILITY_ID::TERRANBUILDDROP_CANCEL)
+		.value("TERRANBUILDDROP_SUPPLYDEPOTDROP", sc2::ABILITY_ID::TERRANBUILDDROP_SUPPLYDEPOTDROP)
+		.value("TESTHERODEBUGMISSILEABILITY", sc2::ABILITY_ID::TESTHERODEBUGMISSILEABILITY)
+		.value("TESTHERODEBUGTRACKINGABILITY", sc2::ABILITY_ID::TESTHERODEBUGTRACKINGABILITY)
+		.value("TESTHERODEBUGTRACKINGABILITY_CANCEL", sc2::ABILITY_ID::TESTHERODEBUGTRACKINGABILITY_CANCEL)
+		.value("TESTHEROGRAB_GRABZERGLING", sc2::ABILITY_ID::TESTHEROGRAB_GRABZERGLING)
+		.value("TESTHEROTHROW_THROWZERGLING", sc2::ABILITY_ID::TESTHEROTHROW_THROWZERGLING)
+		.value("TESTINTERACT_DESIGNATE", sc2::ABILITY_ID::TESTINTERACT_DESIGNATE)
+		.value("TESTLEARN", sc2::ABILITY_ID::TESTLEARN)
+		.value("TESTREVIVE_SCV", sc2::ABILITY_ID::TESTREVIVE_SCV)
+		.value("TESTZERG_CANCEL", sc2::ABILITY_ID::TESTZERG_CANCEL)
+		.value("THEMOROSDEVICE", sc2::ABILITY_ID::THEMOROSDEVICE)
+		.value("THORAPMODE_CANCEL", sc2::ABILITY_ID::THORAPMODE_CANCEL)
+		.value("THORREBORN_CANCEL", sc2::ABILITY_ID::THORREBORN_CANCEL)
+		.value("THORREBORN_THOR", sc2::ABILITY_ID::THORREBORN_THOR)
+		.value("THORWRECKAGE_THOR", sc2::ABILITY_ID::THORWRECKAGE_THOR)
+		.value("TIMESTOP", sc2::ABILITY_ID::TIMESTOP)
+		.value("TIMESTOP_CANCEL", sc2::ABILITY_ID::TIMESTOP_CANCEL)
+		.value("TORNADOMISSILE", sc2::ABILITY_ID::TORNADOMISSILE)
+		.value("TOSSGRENADE", sc2::ABILITY_ID::TOSSGRENADE)
+		.value("TRAINWARP_ADEPT", sc2::ABILITY_ID::TRAINWARP_ADEPT)
+		.value("TRAINWARP_DARKTEMPLAR", sc2::ABILITY_ID::TRAINWARP_DARKTEMPLAR)
+		.value("TRAINWARP_HIGHTEMPLAR", sc2::ABILITY_ID::TRAINWARP_HIGHTEMPLAR)
+		.value("TRAINWARP_SENTRY", sc2::ABILITY_ID::TRAINWARP_SENTRY)
+		.value("TRAINWARP_STALKER", sc2::ABILITY_ID::TRAINWARP_STALKER)
+		.value("TRAINWARP_ZEALOT", sc2::ABILITY_ID::TRAINWARP_ZEALOT)
+		.value("TRAIN_ADEPT", sc2::ABILITY_ID::TRAIN_ADEPT)
+		.value("TRAIN_ARCHON", sc2::ABILITY_ID::TRAIN_ARCHON)
+		.value("TRAIN_BANSHEE", sc2::ABILITY_ID::TRAIN_BANSHEE)
+		.value("TRAIN_BATTLECRUISER", sc2::ABILITY_ID::TRAIN_BATTLECRUISER)
+		.value("TRAIN_CARRIER", sc2::ABILITY_ID::TRAIN_CARRIER)
+		.value("TRAIN_COLOSSUS", sc2::ABILITY_ID::TRAIN_COLOSSUS)
+		.value("TRAIN_CORRUPTOR", sc2::ABILITY_ID::TRAIN_CORRUPTOR)
+		.value("TRAIN_CYCLONE", sc2::ABILITY_ID::TRAIN_CYCLONE)
+		.value("TRAIN_DARKTEMPLAR", sc2::ABILITY_ID::TRAIN_DARKTEMPLAR)
+		.value("TRAIN_DISRUPTOR", sc2::ABILITY_ID::TRAIN_DISRUPTOR)
+		.value("TRAIN_DRONE", sc2::ABILITY_ID::TRAIN_DRONE)
+		.value("TRAIN_GHOST", sc2::ABILITY_ID::TRAIN_GHOST)
+		.value("TRAIN_HELLBAT", sc2::ABILITY_ID::TRAIN_HELLBAT)
+		.value("TRAIN_HELLION", sc2::ABILITY_ID::TRAIN_HELLION)
+		.value("TRAIN_HIGHTEMPLAR", sc2::ABILITY_ID::TRAIN_HIGHTEMPLAR)
+		.value("TRAIN_HYDRALISK", sc2::ABILITY_ID::TRAIN_HYDRALISK)
+		.value("TRAIN_IMMORTAL", sc2::ABILITY_ID::TRAIN_IMMORTAL)
+		.value("TRAIN_INFESTEDABOMINATION", sc2::ABILITY_ID::TRAIN_INFESTEDABOMINATION)
+		.value("TRAIN_INFESTEDCIVILIAN", sc2::ABILITY_ID::TRAIN_INFESTEDCIVILIAN)
+		.value("TRAIN_INFESTEDTERRANCAMPAIGN", sc2::ABILITY_ID::TRAIN_INFESTEDTERRANCAMPAIGN)
+		.value("TRAIN_INFESTOR", sc2::ABILITY_ID::TRAIN_INFESTOR)
+		.value("TRAIN_LIBERATOR", sc2::ABILITY_ID::TRAIN_LIBERATOR)
+		.value("TRAIN_MARAUDER", sc2::ABILITY_ID::TRAIN_MARAUDER)
+		.value("TRAIN_MARINE", sc2::ABILITY_ID::TRAIN_MARINE)
+		.value("TRAIN_MEDIVAC", sc2::ABILITY_ID::TRAIN_MEDIVAC)
+		.value("TRAIN_MOTHERSHIP", sc2::ABILITY_ID::TRAIN_MOTHERSHIP)
+		.value("TRAIN_MOTHERSHIPCORE", sc2::ABILITY_ID::TRAIN_MOTHERSHIPCORE)
+		.value("TRAIN_MUTALISK", sc2::ABILITY_ID::TRAIN_MUTALISK)
+		.value("TRAIN_OBSERVER", sc2::ABILITY_ID::TRAIN_OBSERVER)
+		.value("TRAIN_ORACLE", sc2::ABILITY_ID::TRAIN_ORACLE)
+		.value("TRAIN_OVERLORD", sc2::ABILITY_ID::TRAIN_OVERLORD)
+		.value("TRAIN_PHOENIX", sc2::ABILITY_ID::TRAIN_PHOENIX)
+		.value("TRAIN_PROBE", sc2::ABILITY_ID::TRAIN_PROBE)
+		.value("TRAIN_QUEEN", sc2::ABILITY_ID::TRAIN_QUEEN)
+		.value("SPECTREHOLDFIRE", sc2::ABILITY_ID::SPECTREHOLDFIRE)
+		.value("TRAIN_RAVEN", sc2::ABILITY_ID::TRAIN_RAVEN)
+		.value("TRAIN_REAPER", sc2::ABILITY_ID::TRAIN_REAPER)
+		.value("TRAIN_ROACH", sc2::ABILITY_ID::TRAIN_ROACH)
+		.value("TRAIN_SCV", sc2::ABILITY_ID::TRAIN_SCV)
+		.value("TRAIN_SENTRY", sc2::ABILITY_ID::TRAIN_SENTRY)
+		.value("TRAIN_SIEGETANK", sc2::ABILITY_ID::TRAIN_SIEGETANK)
+		.value("TRAIN_STALKER", sc2::ABILITY_ID::TRAIN_STALKER)
+		.value("TRAIN_SWARMHOST", sc2::ABILITY_ID::TRAIN_SWARMHOST)
+		.value("TRAIN_TEMPEST", sc2::ABILITY_ID::TRAIN_TEMPEST)
+		.value("TRAIN_THOR", sc2::ABILITY_ID::TRAIN_THOR)
+		.value("TRAIN_ULTRALISK", sc2::ABILITY_ID::TRAIN_ULTRALISK)
+		.value("TRAIN_VIKINGFIGHTER", sc2::ABILITY_ID::TRAIN_VIKINGFIGHTER)
+		.value("TRAIN_VIPER", sc2::ABILITY_ID::TRAIN_VIPER)
+		.value("TRAIN_VOIDRAY", sc2::ABILITY_ID::TRAIN_VOIDRAY)
+		.value("TRAIN_WARPINMOHANDAR", sc2::ABILITY_ID::TRAIN_WARPINMOHANDAR)
+		.value("TRAIN_WARPINSCOUT", sc2::ABILITY_ID::TRAIN_WARPINSCOUT)
+		.value("TRAIN_WARPINSELENDIS", sc2::ABILITY_ID::TRAIN_WARPINSELENDIS)
+		.value("TRAIN_WARPINURUN", sc2::ABILITY_ID::TRAIN_WARPINURUN)
+		.value("TRAIN_WARPINZERATUL", sc2::ABILITY_ID::TRAIN_WARPINZERATUL)
+		.value("TRAIN_WARPPRISM", sc2::ABILITY_ID::TRAIN_WARPPRISM)
+		.value("TRAIN_WIDOWMINE", sc2::ABILITY_ID::TRAIN_WIDOWMINE)
+		.value("TRAIN_ZEALOT", sc2::ABILITY_ID::TRAIN_ZEALOT)
+		.value("TRAIN_ZERGLING", sc2::ABILITY_ID::TRAIN_ZERGLING)
+		.value("TRANSPORTMODE_CANCEL", sc2::ABILITY_ID::TRANSPORTMODE_CANCEL)
+		.value("TRANSPORTTRUCKTRANSPORT_TRANSPORTTRUCKLOAD", sc2::ABILITY_ID::TRANSPORTTRUCKTRANSPORT_TRANSPORTTRUCKLOAD)
+		.value("TRANSPORTTRUCKTRANSPORT_TRANSPORTTRUCKUNLOADALL", sc2::ABILITY_ID::TRANSPORTTRUCKTRANSPORT_TRANSPORTTRUCKUNLOADALL)
+		.value("TYCHUS03OMEGASTORM_OMEGASTORM", sc2::ABILITY_ID::TYCHUS03OMEGASTORM_OMEGASTORM)
+		.value("ULTRALISKWEAPONCOOLDOWN", sc2::ABILITY_ID::ULTRALISKWEAPONCOOLDOWN)
+		.value("ULTRASONICPULSE", sc2::ABILITY_ID::ULTRASONICPULSE)
+		.value("UNLOADALL", sc2::ABILITY_ID::UNLOADALL)
+		.value("UNLOADALLAT", sc2::ABILITY_ID::UNLOADALLAT)
+		.value("UNLOADALLAT_MEDIVAC", sc2::ABILITY_ID::UNLOADALLAT_MEDIVAC)
+		.value("UNLOADALLAT_OVERLORD", sc2::ABILITY_ID::UNLOADALLAT_OVERLORD)
+		.value("UNLOADALLAT_WARPPRISM", sc2::ABILITY_ID::UNLOADALLAT_WARPPRISM)
+		.value("UNLOADALL_BUNKER", sc2::ABILITY_ID::UNLOADALL_BUNKER)
+		.value("UNLOADALL_COMMANDCENTER", sc2::ABILITY_ID::UNLOADALL_COMMANDCENTER)
+		.value("UNLOADALL_NYDASNETWORK", sc2::ABILITY_ID::UNLOADALL_NYDASNETWORK)
+		.value("UNLOADALL_NYDUSWORM", sc2::ABILITY_ID::UNLOADALL_NYDUSWORM)
+		.value("UNLOADALL_WARPPRISM", sc2::ABILITY_ID::UNLOADALL_WARPPRISM)
+		.value("UNLOADUNIT", sc2::ABILITY_ID::UNLOADUNIT)
+		.value("UNLOADUNIT_BUNKER", sc2::ABILITY_ID::UNLOADUNIT_BUNKER)
+		.value("UNLOADUNIT_COMMANDCENTER", sc2::ABILITY_ID::UNLOADUNIT_COMMANDCENTER)
+		.value("UNLOADUNIT_MEDIVAC", sc2::ABILITY_ID::UNLOADUNIT_MEDIVAC)
+		.value("UNLOADUNIT_NYDASNETWORK", sc2::ABILITY_ID::UNLOADUNIT_NYDASNETWORK)
+		.value("UNLOADUNIT_OVERLORD", sc2::ABILITY_ID::UNLOADUNIT_OVERLORD)
+		.value("UNLOADUNIT_WARPPRISM", sc2::ABILITY_ID::UNLOADUNIT_WARPPRISM)
+		.value("VAL03QUEENOFBLADESBURROW_BURROWDOWN", sc2::ABILITY_ID::VAL03QUEENOFBLADESBURROW_BURROWDOWN)
+		.value("VAL03QUEENOFBLADESDEEPTUNNEL_DEEPTUNNEL", sc2::ABILITY_ID::VAL03QUEENOFBLADESDEEPTUNNEL_DEEPTUNNEL)
+		.value("VAL03QUEENOFBLADESUNBURROW_BURROWUP", sc2::ABILITY_ID::VAL03QUEENOFBLADESUNBURROW_BURROWUP)
+		.value("VOIDMPIMMORTALREVIVEDEATH_IMMORTAL", sc2::ABILITY_ID::VOIDMPIMMORTALREVIVEDEATH_IMMORTAL)
+		.value("VOIDMPIMMORTALREVIVEREBUILD_IMMORTAL", sc2::ABILITY_ID::VOIDMPIMMORTALREVIVEREBUILD_IMMORTAL)
+		.value("VOIDSEEKERPHASEMINEBLAST_PHASEMINEBLAST", sc2::ABILITY_ID::VOIDSEEKERPHASEMINEBLAST_PHASEMINEBLAST)
+		.value("VOIDSEEKERTRANSPORT_MEDIVACLOAD", sc2::ABILITY_ID::VOIDSEEKERTRANSPORT_MEDIVACLOAD)
+		.value("VOIDSEEKERTRANSPORT_MEDIVACUNLOADALL", sc2::ABILITY_ID::VOIDSEEKERTRANSPORT_MEDIVACUNLOADALL)
+		.value("VOIDSIPHON", sc2::ABILITY_ID::VOIDSIPHON)
+		.value("VOIDSWARMHOSTSPAWNLOCUST", sc2::ABILITY_ID::VOIDSWARMHOSTSPAWNLOCUST)
+		.value("VOODOOSHIELD", sc2::ABILITY_ID::VOODOOSHIELD)
+		.value("VORTEX", sc2::ABILITY_ID::VORTEX)
+		.value("VORTEXPURIFIER_VORTEX", sc2::ABILITY_ID::VORTEXPURIFIER_VORTEX)
+		.value("VULTUREQUEUE3_CANCEL", sc2::ABILITY_ID::VULTUREQUEUE3_CANCEL)
+		.value("VULTUREQUEUE3_CANCELSLOT", sc2::ABILITY_ID::VULTUREQUEUE3_CANCELSLOT)
+		.value("VULTURESPIDERMINES_SPIDERMINE", sc2::ABILITY_ID::VULTURESPIDERMINES_SPIDERMINE)
+		.value("WARPABLE_CANCEL", sc2::ABILITY_ID::WARPABLE_CANCEL)
+		.value("WIDOWMINEBURROW_CANCEL", sc2::ABILITY_ID::WIDOWMINEBURROW_CANCEL)
+		.value("WORMHOLETRANSIT", sc2::ABILITY_ID::WORMHOLETRANSIT)
+		.value("WRAITHCLOAK_CLOAKOFF", sc2::ABILITY_ID::WRAITHCLOAK_CLOAKOFF)
+		.value("WRECKINGCREWASSAULTMODE_ASSAULTMODE", sc2::ABILITY_ID::WRECKINGCREWASSAULTMODE_ASSAULTMODE)
+		.value("WRECKINGCREWFIGHTERMODE_FIGHTERMODE", sc2::ABILITY_ID::WRECKINGCREWFIGHTERMODE_FIGHTERMODE)
+		.value("XELNAGAHEALINGSHRINE", sc2::ABILITY_ID::XELNAGAHEALINGSHRINE)
+		.value("XELNAGA_CAVERNS_DOOREOPENED_XELNAGA_CAVERNS_DOORDEFAULTCLOSE", sc2::ABILITY_ID::XELNAGA_CAVERNS_DOOREOPENED_XELNAGA_CAVERNS_DOORDEFAULTCLOSE)
+		.value("XELNAGA_CAVERNS_DOORE_XELNAGA_CAVERNS_DOORDEFAULTCLOSE", sc2::ABILITY_ID::XELNAGA_CAVERNS_DOORE_XELNAGA_CAVERNS_DOORDEFAULTCLOSE)
+		.value("XELNAGA_CAVERNS_DOORNEOPENED_XELNAGA_CAVERNS_DOORDEFAULTOPEN", sc2::ABILITY_ID::XELNAGA_CAVERNS_DOORNEOPENED_XELNAGA_CAVERNS_DOORDEFAULTOPEN)
+		.value("XELNAGA_CAVERNS_DOORNE_XELNAGA_CAVERNS_DOORDEFAULTCLOSE", sc2::ABILITY_ID::XELNAGA_CAVERNS_DOORNE_XELNAGA_CAVERNS_DOORDEFAULTCLOSE)
+		.value("XELNAGA_CAVERNS_DOORNOPENED_XELNAGA_CAVERNS_DOORDEFAULTOPEN", sc2::ABILITY_ID::XELNAGA_CAVERNS_DOORNWOPENED_XELNAGA_CAVERNS_DOORDEFAULTOPEN)
+		.value("XELNAGA_CAVERNS_DOORNW_XELNAGA_CAVERNS_DOORDEFAULTCLOSE", sc2::ABILITY_ID::XELNAGA_CAVERNS_DOORNW_XELNAGA_CAVERNS_DOORDEFAULTCLOSE)
+		.value("XELNAGA_CAVERNS_DOORN_XELNAGA_CAVERNS_DOORDEFAULTCLOSE", sc2::ABILITY_ID::XELNAGA_CAVERNS_DOORN_XELNAGA_CAVERNS_DOORDEFAULTCLOSE)
+		.value("XELNAGA_CAVERNS_DOORSEOPENED_XELNAGA_CAVERNS_DOORDEFAULTOPEN", sc2::ABILITY_ID::XELNAGA_CAVERNS_DOORSEOPENED_XELNAGA_CAVERNS_DOORDEFAULTOPEN)
+		.value("XELNAGA_CAVERNS_DOORSE_XELNAGA_CAVERNS_DOORDEFAULTCLOSE", sc2::ABILITY_ID::XELNAGA_CAVERNS_DOORSE_XELNAGA_CAVERNS_DOORDEFAULTCLOSE)
+		.value("XELNAGA_CAVERNS_DOORSOPENED_XELNAGA_CAVERNS_DOORDEFAULTOPEN", sc2::ABILITY_ID::XELNAGA_CAVERNS_DOORSOPENED_XELNAGA_CAVERNS_DOORDEFAULTOPEN)
+		.value("XELNAGA_CAVERNS_DOORSWOPENED_XELNAGA_CAVERNS_DOORDEFAULTOPEN", sc2::ABILITY_ID::XELNAGA_CAVERNS_DOORSWOPENED_XELNAGA_CAVERNS_DOORDEFAULTOPEN)
+		.value("XELNAGA_CAVERNS_DOORSW_XELNAGA_CAVERNS_DOORDEFAULTCLOSE", sc2::ABILITY_ID::XELNAGA_CAVERNS_DOORSW_XELNAGA_CAVERNS_DOORDEFAULTCLOSE)
+		.value("XELNAGA_CAVERNS_DOORS_XELNAGA_CAVERNS_DOORDEFAULTCLOSE", sc2::ABILITY_ID::XELNAGA_CAVERNS_DOORS_XELNAGA_CAVERNS_DOORDEFAULTCLOSE)
+		.value("XELNAGA_CAVERNS_DOORWOPENED_XELNAGA_CAVERNS_DOORDEFAULTOPEN", sc2::ABILITY_ID::XELNAGA_CAVERNS_DOORWOPENED_XELNAGA_CAVERNS_DOORDEFAULTOPEN)
+		.value("XELNAGA_CAVERNS_DOORW_XELNAGA_CAVERNS_DOORDEFAULTCLOSE", sc2::ABILITY_ID::XELNAGA_CAVERNS_DOORW_XELNAGA_CAVERNS_DOORDEFAULTCLOSE)
+		.value("XELNAGA_CAVERNS_FLOATING_BRIDGEH10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGEH10OUT_BRIDGEEXTEND)
+		.value("XELNAGA_CAVERNS_FLOATING_BRIDGEH10_BRIDGERETRACT", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGEH10_BRIDGERETRACT)
+		.value("XELNAGA_CAVERNS_FLOATING_BRIDGEH12OUT_BRIDGEEXTEND", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGEH12OUT_BRIDGEEXTEND)
+		.value("XELNAGA_CAVERNS_FLOATING_BRIDGEH12_BRIDGERETRACT", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGEH12_BRIDGERETRACT)
+		.value("XELNAGA_CAVERNS_FLOATING_BRIDGEH8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGEH8OUT_BRIDGEEXTEND)
+		.value("XELNAGA_CAVERNS_FLOATING_BRIDGEH8_BRIDGERETRACT", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGEH8_BRIDGERETRACT)
+		.value("XELNAGA_CAVERNS_FLOATING_BRIDGENE10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGENE10OUT_BRIDGEEXTEND)
+		.value("XELNAGA_CAVERNS_FLOATING_BRIDGENE10_BRIDGERETRACT", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGENE10_BRIDGERETRACT)
+		.value("XELNAGA_CAVERNS_FLOATING_BRIDGENE12OUT_BRIDGEEXTEND", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGENE12OUT_BRIDGEEXTEND)
+		.value("XELNAGA_CAVERNS_FLOATING_BRIDGENE12_BRIDGERETRACT", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGENE12_BRIDGERETRACT)
+		.value("XELNAGA_CAVERNS_FLOATING_BRIDGENE8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGENE8OUT_BRIDGEEXTEND)
+		.value("XELNAGA_CAVERNS_FLOATING_BRIDGENE8_BRIDGERETRACT", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGENE8_BRIDGERETRACT)
+		.value("XELNAGA_CAVERNS_FLOATING_BRIDGENW10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGENW10OUT_BRIDGEEXTEND)
+		.value("XELNAGA_CAVERNS_FLOATING_BRIDGENW10_BRIDGERETRACT", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGENW10_BRIDGERETRACT)
+		.value("XELNAGA_CAVERNS_FLOATING_BRIDGENW12OUT_BRIDGEEXTEND", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGENW12OUT_BRIDGEEXTEND)
+		.value("XELNAGA_CAVERNS_FLOATING_BRIDGENW12_BRIDGERETRACT", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGENW12_BRIDGERETRACT)
+		.value("XELNAGA_CAVERNS_FLOATING_BRIDGENW8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGENW8OUT_BRIDGEEXTEND)
+		.value("XELNAGA_CAVERNS_FLOATING_BRIDGENW8_BRIDGERETRACT", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGENW8_BRIDGERETRACT)
+		.value("XELNAGA_CAVERNS_FLOATING_BRIDGEV10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGEV10OUT_BRIDGEEXTEND)
+		.value("XELNAGA_CAVERNS_FLOATING_BRIDGEV10_BRIDGERETRACT", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGEV10_BRIDGERETRACT)
+		.value("XELNAGA_CAVERNS_FLOATING_BRIDGEV12OUT_BRIDGEEXTEND", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGEV12OUT_BRIDGEEXTEND)
+		.value("XELNAGA_CAVERNS_FLOATING_BRIDGEV12_BRIDGERETRACT", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGEV12_BRIDGERETRACT)
+		.value("XELNAGA_CAVERNS_FLOATING_BRIDGEV8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGEV8OUT_BRIDGEEXTEND)
+		.value("XELNAGA_CAVERNS_FLOATING_BRIDGEV8_BRIDGERETRACT", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGEV8_BRIDGERETRACT)
+		.value("ZERATULBLINK", sc2::ABILITY_ID::ZERATULBLINK)
+		.value("ZERATULSTUN", sc2::ABILITY_ID::ZERATULSTUN)
+		.value("_250MMSTRIKECANNONS", sc2::ABILITY_ID::_250MMSTRIKECANNONS)
+		.value("_250MMSTRIKECANNONS_CANCEL", sc2::ABILITY_ID::_250MMSTRIKECANNONS_CANCEL)
+		.value("_330MMBARRAGECANNONS", sc2::ABILITY_ID::_330MMBARRAGECANNONS)
+		.value("_330MMBARRAGECANNONS_CANCEL", sc2::ABILITY_ID::_330MMBARRAGECANNONS_CANCEL);
 
       py::enum_<sc2::UPGRADE_ID>(m, "UPGRADE_ID")
-        .value("INVALID", sc2::UPGRADE_ID::INVALID)
-        .value("CARRIERLAUNCHSPEEDUPGRADE", sc2::UPGRADE_ID::CARRIERLAUNCHSPEEDUPGRADE)
-        .value("GLIALRECONSTITUTION", sc2::UPGRADE_ID::GLIALRECONSTITUTION)
-        .value("TUNNELINGCLAWS", sc2::UPGRADE_ID::TUNNELINGCLAWS)
-        .value("CHITINOUSPLATING", sc2::UPGRADE_ID::CHITINOUSPLATING)
-        .value("HISECAUTOTRACKING", sc2::UPGRADE_ID::HISECAUTOTRACKING)
-        .value("TERRANBUILDINGARMOR", sc2::UPGRADE_ID::TERRANBUILDINGARMOR)
-        .value("TERRANINFANTRYWEAPONSLEVEL1", sc2::UPGRADE_ID::TERRANINFANTRYWEAPONSLEVEL1)
-        .value("TERRANINFANTRYWEAPONSLEVEL2", sc2::UPGRADE_ID::TERRANINFANTRYWEAPONSLEVEL2)
-        .value("TERRANINFANTRYWEAPONSLEVEL3", sc2::UPGRADE_ID::TERRANINFANTRYWEAPONSLEVEL3)
-        .value("NEOSTEELFRAME", sc2::UPGRADE_ID::NEOSTEELFRAME)
-        .value("TERRANINFANTRYARMORSLEVEL1", sc2::UPGRADE_ID::TERRANINFANTRYARMORSLEVEL1)
-        .value("TERRANINFANTRYARMORSLEVEL2", sc2::UPGRADE_ID::TERRANINFANTRYARMORSLEVEL2)
-        .value("TERRANINFANTRYARMORSLEVEL3", sc2::UPGRADE_ID::TERRANINFANTRYARMORSLEVEL3)
-        .value("STIMPACK", sc2::UPGRADE_ID::STIMPACK)
-        .value("SHIELDWALL", sc2::UPGRADE_ID::SHIELDWALL)
-        .value("PUNISHERGRENADES", sc2::UPGRADE_ID::PUNISHERGRENADES)
-        .value("HIGHCAPACITYBARRELS", sc2::UPGRADE_ID::HIGHCAPACITYBARRELS)
+        .value("ABDOMINALFORTITUDE", sc2::UPGRADE_ID::ABDOMINALFORTITUDE)
+        .value("ADEPTKILLBOUNCE", sc2::UPGRADE_ID::ADEPTKILLBOUNCE)
+        .value("ADEPTPIERCINGATTACK", sc2::UPGRADE_ID::ADEPTPIERCINGATTACK)
+        .value("ADEPTSHIELDUPGRADE", sc2::UPGRADE_ID::ADEPTSHIELDUPGRADE)
+        .value("ADVANCEDCONSTRUCTION", sc2::UPGRADE_ID::ADVANCEDCONSTRUCTION)
+        .value("ADVANCEDHEALINGAI", sc2::UPGRADE_ID::ADVANCEDHEALINGAI)
+        .value("ADVANCEDMEDICTRAINING", sc2::UPGRADE_ID::ADVANCEDMEDICTRAINING)
+        .value("AMPLIFIEDSHIELDING", sc2::UPGRADE_ID::AMPLIFIEDSHIELDING)
+        .value("ANABOLICSYNTHESIS", sc2::UPGRADE_ID::ANABOLICSYNTHESIS)
+        .value("ANIONPULSECRYSTALS", sc2::UPGRADE_ID::ANIONPULSECRYSTALS)
+        .value("ARESCLASSWEAPONSSYSTEM", sc2::UPGRADE_ID::ARESCLASSWEAPONSSYSTEM)
+        .value("ARESCLASSWEAPONSSYSTEMVIKING", sc2::UPGRADE_ID::ARESCLASSWEAPONSSYSTEMVIKING)
+        .value("ARMORPIERCINGROCKETS", sc2::UPGRADE_ID::ARMORPIERCINGROCKETS)
+        .value("AUTOHARVESTER", sc2::UPGRADE_ID::AUTOHARVESTER)
+        .value("AUXILIARYMEDBOTS", sc2::UPGRADE_ID::AUXILIARYMEDBOTS)
+        .value("BANELINGBURROWMOVE", sc2::UPGRADE_ID::BANELINGBURROWMOVE)
         .value("BANSHEECLOAK", sc2::UPGRADE_ID::BANSHEECLOAK)
-        .value("RAVENCORVIDREACTOR", sc2::UPGRADE_ID::RAVENCORVIDREACTOR)
-        .value("PERSONALCLOAKING", sc2::UPGRADE_ID::PERSONALCLOAKING)
-        .value("TERRANVEHICLEWEAPONSLEVEL1", sc2::UPGRADE_ID::TERRANVEHICLEWEAPONSLEVEL1)
-        .value("TERRANVEHICLEWEAPONSLEVEL2", sc2::UPGRADE_ID::TERRANVEHICLEWEAPONSLEVEL2)
-        .value("TERRANVEHICLEWEAPONSLEVEL3", sc2::UPGRADE_ID::TERRANVEHICLEWEAPONSLEVEL3)
-        .value("TERRANSHIPWEAPONSLEVEL1", sc2::UPGRADE_ID::TERRANSHIPWEAPONSLEVEL1)
-        .value("TERRANSHIPWEAPONSLEVEL2", sc2::UPGRADE_ID::TERRANSHIPWEAPONSLEVEL2)
-        .value("TERRANSHIPWEAPONSLEVEL3", sc2::UPGRADE_ID::TERRANSHIPWEAPONSLEVEL3)
-        .value("PROTOSSGROUNDWEAPONSLEVEL1", sc2::UPGRADE_ID::PROTOSSGROUNDWEAPONSLEVEL1)
-        .value("PROTOSSGROUNDWEAPONSLEVEL2", sc2::UPGRADE_ID::PROTOSSGROUNDWEAPONSLEVEL2)
-        .value("PROTOSSGROUNDWEAPONSLEVEL3", sc2::UPGRADE_ID::PROTOSSGROUNDWEAPONSLEVEL3)
-        .value("PROTOSSGROUNDARMORSLEVEL1", sc2::UPGRADE_ID::PROTOSSGROUNDARMORSLEVEL1)
-        .value("PROTOSSGROUNDARMORSLEVEL2", sc2::UPGRADE_ID::PROTOSSGROUNDARMORSLEVEL2)
-        .value("PROTOSSGROUNDARMORSLEVEL3", sc2::UPGRADE_ID::PROTOSSGROUNDARMORSLEVEL3)
-        .value("PROTOSSSHIELDSLEVEL1", sc2::UPGRADE_ID::PROTOSSSHIELDSLEVEL1)
-        .value("PROTOSSSHIELDSLEVEL2", sc2::UPGRADE_ID::PROTOSSSHIELDSLEVEL2)
-        .value("PROTOSSSHIELDSLEVEL3", sc2::UPGRADE_ID::PROTOSSSHIELDSLEVEL3)
-        .value("OBSERVERGRAVITICBOOSTER", sc2::UPGRADE_ID::OBSERVERGRAVITICBOOSTER)
-        .value("GRAVITICDRIVE", sc2::UPGRADE_ID::GRAVITICDRIVE)
-        .value("EXTENDEDTHERMALLANCE", sc2::UPGRADE_ID::EXTENDEDTHERMALLANCE)
-        .value("PSISTORMTECH", sc2::UPGRADE_ID::PSISTORMTECH)
-        .value("ZERGMELEEWEAPONSLEVEL1", sc2::UPGRADE_ID::ZERGMELEEWEAPONSLEVEL1)
-        .value("ZERGMELEEWEAPONSLEVEL2", sc2::UPGRADE_ID::ZERGMELEEWEAPONSLEVEL2)
-        .value("ZERGMELEEWEAPONSLEVEL3", sc2::UPGRADE_ID::ZERGMELEEWEAPONSLEVEL3)
-        .value("ZERGGROUNDARMORSLEVEL1", sc2::UPGRADE_ID::ZERGGROUNDARMORSLEVEL1)
-        .value("ZERGGROUNDARMORSLEVEL2", sc2::UPGRADE_ID::ZERGGROUNDARMORSLEVEL2)
-        .value("ZERGGROUNDARMORSLEVEL3", sc2::UPGRADE_ID::ZERGGROUNDARMORSLEVEL3)
-        .value("ZERGMISSILEWEAPONSLEVEL1", sc2::UPGRADE_ID::ZERGMISSILEWEAPONSLEVEL1)
-        .value("ZERGMISSILEWEAPONSLEVEL2", sc2::UPGRADE_ID::ZERGMISSILEWEAPONSLEVEL2)
-        .value("ZERGMISSILEWEAPONSLEVEL3", sc2::UPGRADE_ID::ZERGMISSILEWEAPONSLEVEL3)
-        .value("OVERLORDSPEED", sc2::UPGRADE_ID::OVERLORDSPEED)
+        .value("BANSHEECLOAKEDDAMAGE", sc2::UPGRADE_ID::BANSHEECLOAKEDDAMAGE)
+        .value("BANSHEESPEED", sc2::UPGRADE_ID::BANSHEESPEED)
+        .value("BATTLECRUISERBEHEMOTHREACTOR", sc2::UPGRADE_ID::BATTLECRUISERBEHEMOTHREACTOR)
+        .value("BATTLECRUISERENABLESPECIALIZATIONS", sc2::UPGRADE_ID::BATTLECRUISERENABLESPECIALIZATIONS)
+        .value("BEARCLAWNOZZLES", sc2::UPGRADE_ID::BEARCLAWNOZZLES)
+        .value("BLINKTECH", sc2::UPGRADE_ID::BLINKTECH)
         .value("BURROW", sc2::UPGRADE_ID::BURROW)
-        .value("ZERGLINGATTACKSPEED", sc2::UPGRADE_ID::ZERGLINGATTACKSPEED)
-        .value("ZERGLINGMOVEMENTSPEED", sc2::UPGRADE_ID::ZERGLINGMOVEMENTSPEED)
-        .value("ZERGFLYERWEAPONSLEVEL1", sc2::UPGRADE_ID::ZERGFLYERWEAPONSLEVEL1)
-        .value("ZERGFLYERWEAPONSLEVEL2", sc2::UPGRADE_ID::ZERGFLYERWEAPONSLEVEL2)
-        .value("ZERGFLYERWEAPONSLEVEL3", sc2::UPGRADE_ID::ZERGFLYERWEAPONSLEVEL3)
-        .value("ZERGFLYERARMORSLEVEL1", sc2::UPGRADE_ID::ZERGFLYERARMORSLEVEL1)
-        .value("ZERGFLYERARMORSLEVEL2", sc2::UPGRADE_ID::ZERGFLYERARMORSLEVEL2)
-        .value("ZERGFLYERARMORSLEVEL3", sc2::UPGRADE_ID::ZERGFLYERARMORSLEVEL3)
-        .value("INFESTORENERGYUPGRADE", sc2::UPGRADE_ID::INFESTORENERGYUPGRADE)
+        .value("BURSTCAPACITORS", sc2::UPGRADE_ID::BURSTCAPACITORS)
+        .value("CAMPAIGNJOTUNBOOSTERS", sc2::UPGRADE_ID::CAMPAIGNJOTUNBOOSTERS)
+        .value("CARRIERCARRIERCAPACITY", sc2::UPGRADE_ID::CARRIERCARRIERCAPACITY)
+        .value("CARRIERLAUNCHSPEEDUPGRADE", sc2::UPGRADE_ID::CARRIERLAUNCHSPEEDUPGRADE)
+        .value("CARRIERLEASHRANGEUPGRADE", sc2::UPGRADE_ID::CARRIERLEASHRANGEUPGRADE)
+        .value("CELLULARREACTORS", sc2::UPGRADE_ID::CELLULARREACTORS)
         .value("CENTRIFICALHOOKS", sc2::UPGRADE_ID::CENTRIFICALHOOKS)
-        .value("BATTLECRUISERENABLESPECIALIZATIONS", sc2::UPGRADE_ID::BATTLECRUISERENABLESPECIALIZATIONS)
-        .value("PROTOSSAIRWEAPONSLEVEL1", sc2::UPGRADE_ID::PROTOSSAIRWEAPONSLEVEL1)
-        .value("PROTOSSAIRWEAPONSLEVEL2", sc2::UPGRADE_ID::PROTOSSAIRWEAPONSLEVEL2)
-        .value("PROTOSSAIRWEAPONSLEVEL3", sc2::UPGRADE_ID::PROTOSSAIRWEAPONSLEVEL3)
-        .value("PROTOSSAIRARMORSLEVEL1", sc2::UPGRADE_ID::PROTOSSAIRARMORSLEVEL1)
-        .value("PROTOSSAIRARMORSLEVEL2", sc2::UPGRADE_ID::PROTOSSAIRARMORSLEVEL2)
-        .value("PROTOSSAIRARMORSLEVEL3", sc2::UPGRADE_ID::PROTOSSAIRARMORSLEVEL3)
-        .value("WARPGATERESEARCH", sc2::UPGRADE_ID::WARPGATERESEARCH)
+        .value("CERBERUSMINES", sc2::UPGRADE_ID::CERBERUSMINES)
         .value("CHARGE", sc2::UPGRADE_ID::CHARGE)
-        .value("BLINKTECH", sc2::UPGRADE_ID::BLINKTECH)
-        .value("PHOENIXRANGEUPGRADE", sc2::UPGRADE_ID::PHOENIXRANGEUPGRADE)
-        .value("NEURALPARASITE", sc2::UPGRADE_ID::NEURALPARASITE)
-        .value("TERRANVEHICLEANDSHIPARMORSLEVEL1", sc2::UPGRADE_ID::TERRANVEHICLEANDSHIPARMORSLEVEL1)
-        .value("TERRANVEHICLEANDSHIPARMORSLEVEL2", sc2::UPGRADE_ID::TERRANVEHICLEANDSHIPARMORSLEVEL2)
-        .value("TERRANVEHICLEANDSHIPARMORSLEVEL3", sc2::UPGRADE_ID::TERRANVEHICLEANDSHIPARMORSLEVEL3)
+        .value("CHITINOUSPLATING", sc2::UPGRADE_ID::CHITINOUSPLATING)
+        .value("CINEMATICMODE", sc2::UPGRADE_ID::CINEMATICMODE)
+        .value("CLOAKDISTORTIONFIELD", sc2::UPGRADE_ID::CLOAKDISTORTIONFIELD)
+        .value("CLUSTERBOMB", sc2::UPGRADE_ID::CLUSTERBOMB)
+        .value("CLUSTERWARHEADS", sc2::UPGRADE_ID::CLUSTERWARHEADS)
+        .value("COMBATDRUGS", sc2::UPGRADE_ID::COMBATDRUGS)
+        .value("COMBATSHIELD", sc2::UPGRADE_ID::COMBATSHIELD)
+        .value("COMMANDCENTERREACTOR", sc2::UPGRADE_ID::COMMANDCENTERREACTOR)
+        .value("CROSSSPECTRUMDAMPENERS", sc2::UPGRADE_ID::CROSSSPECTRUMDAMPENERS)
+        .value("CURSORDEBUG", sc2::UPGRADE_ID::CURSORDEBUG)
+        .value("CYCLONEAIRUPGRADE", sc2::UPGRADE_ID::CYCLONEAIRUPGRADE)
+        .value("CYCLONELOCKONDAMAGEUPGRADE", sc2::UPGRADE_ID::CYCLONELOCKONDAMAGEUPGRADE)
+        .value("CYCLONELOCKONRANGEUPGRADE", sc2::UPGRADE_ID::CYCLONELOCKONRANGEUPGRADE)
+        .value("CYCLONERAPIDFIRELAUNCHERS", sc2::UPGRADE_ID::CYCLONERAPIDFIRELAUNCHERS)
+        .value("DARKPROTOSS", sc2::UPGRADE_ID::DARKPROTOSS)
+        .value("DARKTEMPLARBLINKUPGRADE", sc2::UPGRADE_ID::DARKTEMPLARBLINKUPGRADE)
+        .value("DARKTEMPLARTACTICS", sc2::UPGRADE_ID::DARKTEMPLARTACTICS)
+        .value("DEFENSIVEMATRIX", sc2::UPGRADE_ID::DEFENSIVEMATRIX)
+        .value("DEVASTATORMISSILES", sc2::UPGRADE_ID::DEVASTATORMISSILES)
+        .value("DIGGINGCLAWS", sc2::UPGRADE_ID::DIGGINGCLAWS)
+        .value("DISTORTIONBLASTERS", sc2::UPGRADE_ID::DISTORTIONBLASTERS)
+        .value("DISTORTIONSENSORS", sc2::UPGRADE_ID::DISTORTIONSENSORS)
+        .value("DISTORTIONTHRUSTERS", sc2::UPGRADE_ID::DISTORTIONTHRUSTERS)
         .value("DRILLCLAWS", sc2::UPGRADE_ID::DRILLCLAWS)
-        .value("ADEPTPIERCINGATTACK", sc2::UPGRADE_ID::ADEPTPIERCINGATTACK)
-        .value("MAGFIELDLAUNCHERS", sc2::UPGRADE_ID::MAGFIELDLAUNCHERS)
+        .value("DUALFUSIONWELDERS", sc2::UPGRADE_ID::DUALFUSIONWELDERS)
+        .value("DURABLEMATERIALS", sc2::UPGRADE_ID::DURABLEMATERIALS)
+        .value("DYNAMICPOWERROUTING", sc2::UPGRADE_ID::DYNAMICPOWERROUTING)
+        .value("EMPTOWER", sc2::UPGRADE_ID::EMPTOWER)
+        .value("ENERGYSTORAGE", sc2::UPGRADE_ID::ENERGYSTORAGE)
+        .value("ENHANCEDSHOCKWAVES", sc2::UPGRADE_ID::ENHANCEDSHOCKWAVES)
         .value("EVOLVEGROOVEDSPINES", sc2::UPGRADE_ID::EVOLVEGROOVEDSPINES)
         .value("EVOLVEMUSCULARAUGMENTS", sc2::UPGRADE_ID::EVOLVEMUSCULARAUGMENTS)
-        .value("BANSHEESPEED", sc2::UPGRADE_ID::BANSHEESPEED)
-        .value("RAVENRECALIBRATEDEXPLOSIVES", sc2::UPGRADE_ID::RAVENRECALIBRATEDEXPLOSIVES)
-        .value("MEDIVACINCREASESPEEDBOOST", sc2::UPGRADE_ID::MEDIVACINCREASESPEEDBOOST)
-        .value("LIBERATORAGRANGEUPGRADE", sc2::UPGRADE_ID::LIBERATORAGRANGEUPGRADE)
-        .value("DARKTEMPLARBLINKUPGRADE", sc2::UPGRADE_ID::DARKTEMPLARBLINKUPGRADE)
-        .value("SMARTSERVOS", sc2::UPGRADE_ID::SMARTSERVOS)
-        .value("RAPIDFIRELAUNCHERS", sc2::UPGRADE_ID::RAPIDFIRELAUNCHERS)
-        .value("ENHANCEDMUNITIONS", sc2::UPGRADE_ID::ENHANCEDMUNITIONS);
-
+        .value("EXPANDEDHULL", sc2::UPGRADE_ID::EXPANDEDHULL)
+        .value("EXTENDEDTHERMALLANCE", sc2::UPGRADE_ID::EXTENDEDTHERMALLANCE)
+        .value("EXTRAMINES", sc2::UPGRADE_ID::EXTRAMINES)
+        .value("FIREBATJUGGERNAUTPLATING", sc2::UPGRADE_ID::FIREBATJUGGERNAUTPLATING)
+        .value("FIRESUPPRESSIONSYSTEMS", sc2::UPGRADE_ID::FIRESUPPRESSIONSYSTEMS)
+        .value("FLARERESEARCH", sc2::UPGRADE_ID::FLARERESEARCH)
+        .value("FLYINGLOCUSTS", sc2::UPGRADE_ID::FLYINGLOCUSTS)
+        .value("FORTIFIEDBUNKERCARAPACE", sc2::UPGRADE_ID::FORTIFIEDBUNKERCARAPACE)
+        .value("FULLBORECANISTERAMMO", sc2::UPGRADE_ID::FULLBORECANISTERAMMO)
+        .value("GHOSTMOEBIUSREACTOR", sc2::UPGRADE_ID::GHOSTMOEBIUSREACTOR)
+        .value("GLIALRECONSTITUTION", sc2::UPGRADE_ID::GLIALRECONSTITUTION)
+        .value("GRAVITICDRIVE", sc2::UPGRADE_ID::GRAVITICDRIVE)
+        .value("GRAVITICTHRUSTERS", sc2::UPGRADE_ID::GRAVITICTHRUSTERS)
+        .value("HAILSTORMMISSILEPODS", sc2::UPGRADE_ID::HAILSTORMMISSILEPODS)
+        .value("HALOROCKETS", sc2::UPGRADE_ID::HALOROCKETS)
+        .value("HALTECH", sc2::UPGRADE_ID::HALTECH)
+        .value("HELLIONCAMPAIGNINFERNALPREIGNITER", sc2::UPGRADE_ID::HELLIONCAMPAIGNINFERNALPREIGNITER)
+        .value("HIGHCAPACITYBARRELS", sc2::UPGRADE_ID::HIGHCAPACITYBARRELS)
+        .value("HIGHTEMPLARKHAYDARINAMULET", sc2::UPGRADE_ID::HIGHTEMPLARKHAYDARINAMULET)
+        .value("HIREDEVILDOGSPH", sc2::UPGRADE_ID::HIREDEVILDOGSPH)
+        .value("HIREDUKESREVENGE", sc2::UPGRADE_ID::HIREDUKESREVENGE)
+        .value("HIREDUSKWINGPH", sc2::UPGRADE_ID::HIREDUSKWINGPH)
+        .value("HIREHAMMERSECURITIESPH", sc2::UPGRADE_ID::HIREHAMMERSECURITIESPH)
+        .value("HIREHELSANGELSPH", sc2::UPGRADE_ID::HIREHELSANGELSPH)
+		.value("HIREKELMORIANMINERSPH", sc2::UPGRADE_ID::HIREKELMORIANMINERSPH)
+		.value("HIRESIEGEBREAKERSPH", sc2::UPGRADE_ID::HIRESIEGEBREAKERSPH)
+		.value("HIRESPARTANCOMPANYPH", sc2::UPGRADE_ID::HIRESPARTANCOMPANYPH)
+		.value("HISECAUTOTRACKING", sc2::UPGRADE_ID::HISECAUTOTRACKING)
+		.value("HIVEMINDEMULATOR", sc2::UPGRADE_ID::HIVEMINDEMULATOR)
+		.value("HUNTERSEEKER", sc2::UPGRADE_ID::HUNTERSEEKER)
+		.value("HURRICANEMISSILES", sc2::UPGRADE_ID::HURRICANEMISSILES)
+		.value("HYBRIDCPLASMAUPGRADEHARD", sc2::UPGRADE_ID::HYBRIDCPLASMAUPGRADEHARD)
+		.value("HYBRIDCPLASMAUPGRADEINSANE", sc2::UPGRADE_ID::HYBRIDCPLASMAUPGRADEINSANE)
+		.value("HYDRALISKSPEED", sc2::UPGRADE_ID::HYDRALISKSPEED)
+		.value("HYDRALISKSPEEDUPGRADE", sc2::UPGRADE_ID::HYDRALISKSPEEDUPGRADE)
+		.value("HYPERFLUXOR", sc2::UPGRADE_ID::HYPERFLUXOR)
+		.value("IMMORTALBARRIER", sc2::UPGRADE_ID::IMMORTALBARRIER)
+		.value("IMMORTALREVIVE", sc2::UPGRADE_ID::IMMORTALREVIVE)
+		.value("IMPALERROUNDS", sc2::UPGRADE_ID::IMPALERROUNDS)
+		.value("INCREASEDRANGE", sc2::UPGRADE_ID::INCREASEDRANGE)
+		.value("INFERNALPREIGNITERS", sc2::UPGRADE_ID::INFERNALPREIGNITERS)
+		.value("INFESTORENERGYUPGRADE", sc2::UPGRADE_ID::INFESTORENERGYUPGRADE)
+		.value("INFESTORPERISTALSIS", sc2::UPGRADE_ID::INFESTORPERISTALSIS)
+		.value("INTERCEPTORLIMIT4", sc2::UPGRADE_ID::INTERCEPTORLIMIT4)
+		.value("INTERCEPTORLIMIT6", sc2::UPGRADE_ID::INTERCEPTORLIMIT6)
+		.value("INVALID", sc2::UPGRADE_ID::INVALID)
+		.value("JACKHAMMERCONCUSSIONGRENADES", sc2::UPGRADE_ID::JACKHAMMERCONCUSSIONGRENADES)
+		.value("JUGGERNAUTPLATING", sc2::UPGRADE_ID::JUGGERNAUTPLATING)
+		.value("KINETICFIELDS", sc2::UPGRADE_ID::KINETICFIELDS)
+		.value("LIBERATORAGRANGEUPGRADE", sc2::UPGRADE_ID::LIBERATORAGRANGEUPGRADE)
+		.value("LIBERATORMORPH", sc2::UPGRADE_ID::LIBERATORMORPH)
+		.value("LOCUSTLIFETIMEINCREASE", sc2::UPGRADE_ID::LOCUSTLIFETIMEINCREASE)
+		.value("LURKERRANGE", sc2::UPGRADE_ID::LURKERRANGE)
+		.value("MAELSTROMROUNDS", sc2::UPGRADE_ID::MAELSTROMROUNDS)
+		.value("MAGFIELDLAUNCHERS", sc2::UPGRADE_ID::MAGFIELDLAUNCHERS)
+		.value("MARAUDERLIFEBOOST", sc2::UPGRADE_ID::MARAUDERLIFEBOOST)
+		.value("MARINESTIMPACK", sc2::UPGRADE_ID::MARINESTIMPACK)
+		.value("MECHANICALREBIRTH", sc2::UPGRADE_ID::MECHANICALREBIRTH)
+		.value("MEDIVACCADUCEUSREACTOR", sc2::UPGRADE_ID::MEDIVACCADUCEUSREACTOR)
+		.value("MEDIVACINCREASESPEEDBOOST", sc2::UPGRADE_ID::MEDIVACINCREASESPEEDBOOST)
+		.value("MEDIVACRAPIDDEPLOYMENT", sc2::UPGRADE_ID::MEDIVACRAPIDDEPLOYMENT)
+		.value("MICROBIALSHROUD", sc2::UPGRADE_ID::MICROBIALSHROUD)
+		.value("MICROFILTERING", sc2::UPGRADE_ID::MICROFILTERING)
+		.value("MICROFUSIONREACTORS", sc2::UPGRADE_ID::MICROFUSIONREACTORS)
+		.value("MODULARCONSTRUCTION", sc2::UPGRADE_ID::MODULARCONSTRUCTION)
+		.value("MULE", sc2::UPGRADE_ID::MULE)
+		.value("MULTILOCKTARGETINGSYSTEMS", sc2::UPGRADE_ID::MULTILOCKTARGETINGSYSTEMS)
+		.value("NANOBOTINJECTORS", sc2::UPGRADE_ID::NANOBOTINJECTORS)
+		.value("NANOCONSTRUCTOR", sc2::UPGRADE_ID::NANOCONSTRUCTOR)
+		.value("NAPALMFUELTANKS", sc2::UPGRADE_ID::NAPALMFUELTANKS)
+		.value("NEOSTEELANDSHRIKETURRETICONUPGRADE", sc2::UPGRADE_ID::NEOSTEELANDSHRIKETURRETICONUPGRADE)
+		.value("NEOSTEELFRAME", sc2::UPGRADE_ID::NEOSTEELFRAME)
+		.value("NEURALPARASITE", sc2::UPGRADE_ID::NEURALPARASITE)
+		.value("NOTPOSSIBLESIEGEMODE", sc2::UPGRADE_ID::NOTPOSSIBLESIEGEMODE)
+		.value("OBSERVERGRAVITICBOOSTER", sc2::UPGRADE_ID::OBSERVERGRAVITICBOOSTER)
+		.value("OBVERSEINCUBATION", sc2::UPGRADE_ID::OBVERSEINCUBATION)
+		.value("OCULARIMPLANTS", sc2::UPGRADE_ID::OCULARIMPLANTS)
+		.value("ORACLEENERGYUPGRADE", sc2::UPGRADE_ID::ORACLEENERGYUPGRADE)
+		.value("ORBITALRELAY", sc2::UPGRADE_ID::ORBITALRELAY)
+		.value("ORBITALSTRIKE", sc2::UPGRADE_ID::ORBITALSTRIKE)
+		.value("ORGANICCARAPACE", sc2::UPGRADE_ID::ORGANICCARAPACE)
+		.value("OVERLORDSPEED", sc2::UPGRADE_ID::OVERLORDSPEED)
+		.value("OVERLORDTRANSPORT", sc2::UPGRADE_ID::OVERLORDTRANSPORT)
+		.value("PARTICLECANNONAIR", sc2::UPGRADE_ID::PARTICLECANNONAIR)
+		.value("PERMANENTCLOAKGHOST", sc2::UPGRADE_ID::PERMANENTCLOAKGHOST)
+		.value("PERMANENTCLOAKSPECTRE", sc2::UPGRADE_ID::PERMANENTCLOAKSPECTRE)
+		.value("PERSONALCLOAKING", sc2::UPGRADE_ID::PERSONALCLOAKING)
+		.value("PHOENIXRANGEUPGRADE", sc2::UPGRADE_ID::PHOENIXRANGEUPGRADE)
+		.value("PREDATOR", sc2::UPGRADE_ID::PREDATOR)
+		.value("PROJECTILEACCELERATORS", sc2::UPGRADE_ID::PROJECTILEACCELERATORS)
+		.value("PROTOSSAIRARMORSLEVEL1", sc2::UPGRADE_ID::PROTOSSAIRARMORSLEVEL1)
+		.value("PROTOSSAIRARMORSLEVEL2", sc2::UPGRADE_ID::PROTOSSAIRARMORSLEVEL2)
+		.value("PROTOSSAIRARMORSLEVEL3", sc2::UPGRADE_ID::PROTOSSAIRARMORSLEVEL3)
+		.value("PROTOSSAIRWEAPONSLEVEL1", sc2::UPGRADE_ID::PROTOSSAIRWEAPONSLEVEL1)
+		.value("PROTOSSAIRWEAPONSLEVEL2", sc2::UPGRADE_ID::PROTOSSAIRWEAPONSLEVEL2)
+		.value("PROTOSSAIRWEAPONSLEVEL3", sc2::UPGRADE_ID::PROTOSSAIRWEAPONSLEVEL3)
+		.value("PROTOSSGROUNDARMORSLEVEL1", sc2::UPGRADE_ID::PROTOSSGROUNDARMORSLEVEL1)
+		.value("PROTOSSGROUNDARMORSLEVEL2", sc2::UPGRADE_ID::PROTOSSGROUNDARMORSLEVEL2)
+		.value("PROTOSSGROUNDARMORSLEVEL3", sc2::UPGRADE_ID::PROTOSSGROUNDARMORSLEVEL3)
+		.value("PROTOSSGROUNDWEAPONSLEVEL1", sc2::UPGRADE_ID::PROTOSSGROUNDWEAPONSLEVEL1)
+		.value("PROTOSSGROUNDWEAPONSLEVEL2", sc2::UPGRADE_ID::PROTOSSGROUNDWEAPONSLEVEL2)
+		.value("PROTOSSGROUNDWEAPONSLEVEL3", sc2::UPGRADE_ID::PROTOSSGROUNDWEAPONSLEVEL3)
+		.value("PROTOSSHEROSHIPDETECTOR", sc2::UPGRADE_ID::PROTOSSHEROSHIPDETECTOR)
+		.value("PROTOSSHEROSHIPSPELL", sc2::UPGRADE_ID::PROTOSSHEROSHIPSPELL)
+		.value("PROTOSSHEROSHIPWEAPON", sc2::UPGRADE_ID::PROTOSSHEROSHIPWEAPON)
+		.value("PROTOSSSHIELDSLEVEL1", sc2::UPGRADE_ID::PROTOSSSHIELDSLEVEL1)
+		.value("PROTOSSSHIELDSLEVEL2", sc2::UPGRADE_ID::PROTOSSSHIELDSLEVEL2)
+		.value("PROTOSSSHIELDSLEVEL3", sc2::UPGRADE_ID::PROTOSSSHIELDSLEVEL3)
+		.value("PSIDISRUPTOR", sc2::UPGRADE_ID::PSIDISRUPTOR)
+		.value("PSIONICAMPLIFIERS", sc2::UPGRADE_ID::PSIONICAMPLIFIERS)
+		.value("PSISTORMTECH", sc2::UPGRADE_ID::PSISTORMTECH)
+		.value("PUNISHERGRENADES", sc2::UPGRADE_ID::PUNISHERGRENADES)
+		.value("RAPIDDEPLOYMENT", sc2::UPGRADE_ID::RAPIDDEPLOYMENT)
+		.value("RAVAGERRANGE", sc2::UPGRADE_ID::RAVAGERRANGE)
+		.value("RAVENCORVIDREACTOR", sc2::UPGRADE_ID::RAVENCORVIDREACTOR)
+		.value("RAVENDAMAGEUPGRADE", sc2::UPGRADE_ID::RAVENDAMAGEUPGRADE)
+		.value("RAVENENHANCEDMUNITIONS", sc2::UPGRADE_ID::RAVENENHANCEDMUNITIONS)
+		.value("RAVENRECALIBRATEDEXPLOSIVES", sc2::UPGRADE_ID::RAVENRECALIBRATEDEXPLOSIVES)
+		.value("RAZORWIRE", sc2::UPGRADE_ID::RAZORWIRE)
+		.value("REAPERD8CHARGE", sc2::UPGRADE_ID::REAPERD8CHARGE)
+		.value("REAPERJUMP", sc2::UPGRADE_ID::REAPERJUMP)
+		.value("REAPERSPEED", sc2::UPGRADE_ID::REAPERSPEED)
+		.value("REAPERSTIMPACK", sc2::UPGRADE_ID::REAPERSTIMPACK)
+		.value("REAPERU238ROUNDS", sc2::UPGRADE_ID::REAPERU238ROUNDS)
+		.value("REGENERATIVEBIOSTEEL", sc2::UPGRADE_ID::REGENERATIVEBIOSTEEL)
+		.value("REINFORCEDSUPERSTRUCTURE", sc2::UPGRADE_ID::REINFORCEDSUPERSTRUCTURE)
+		.value("RESTORESHIELDS", sc2::UPGRADE_ID::RESTORESHIELDS)
+		.value("ROACHSUPPLY", sc2::UPGRADE_ID::ROACHSUPPLY)
+		.value("SCAVENGINGSYSTEMS", sc2::UPGRADE_ID::SCAVENGINGSYSTEMS)
+		.value("SCIENCEVESSEL", sc2::UPGRADE_ID::SCIENCEVESSEL)
+		.value("SCIENCEVESSELENERGYMANIPULATION", sc2::UPGRADE_ID::SCIENCEVESSELENERGYMANIPULATION)
+		.value("SCIENCEVESSELPLASMAWEAPONRY", sc2::UPGRADE_ID::SCIENCEVESSELPLASMAWEAPONRY)
+		.value("SECRETEDCOATING", sc2::UPGRADE_ID::SECRETEDCOATING)
+		.value("SHAPEDHULL", sc2::UPGRADE_ID::SHAPEDHULL)
+		.value("SHIELDWALL", sc2::UPGRADE_ID::SHIELDWALL)
+		.value("SHOWGATLINGGUN", sc2::UPGRADE_ID::SHOWGATLINGGUN)
+		.value("SHRIKETURRET", sc2::UPGRADE_ID::SHRIKETURRET)
+		.value("SIEGETANKSHAPEDBLAST", sc2::UPGRADE_ID::SIEGETANKSHAPEDBLAST)
+		.value("SIEGETECH", sc2::UPGRADE_ID::SIEGETECH)
+		.value("SINGULARITYCHARGE", sc2::UPGRADE_ID::SINGULARITYCHARGE)
+		.value("SMARTSERVOS", sc2::UPGRADE_ID::SMARTSERVOS)
+		.value("SPECTRETOOLTIPUPGRADE", sc2::UPGRADE_ID::SPECTRETOOLTIPUPGRADE)
+		.value("STABILIZERMEDPACKS", sc2::UPGRADE_ID::STABILIZERMEDPACKS)
+		.value("STIMPACK", sc2::UPGRADE_ID::STIMPACK)
+		.value("STRIKECANNONS", sc2::UPGRADE_ID::STRIKECANNONS)
+		.value("SUNDERINGIMPACT", sc2::UPGRADE_ID::SUNDERINGIMPACT)
+		.value("SUPPLYDEPOTDROP", sc2::UPGRADE_ID::SUPPLYDEPOTDROP)
+		.value("SURVIVALPODS", sc2::UPGRADE_ID::SURVIVALPODS)
+		.value("TECHREACTOR", sc2::UPGRADE_ID::TECHREACTOR)
+		.value("TECHREACTORAI", sc2::UPGRADE_ID::TECHREACTORAI)
+		.value("TEMPESTRANGEUPGRADE", sc2::UPGRADE_ID::TEMPESTRANGEUPGRADE)
+		.value("TERRANBUILDINGARMOR", sc2::UPGRADE_ID::TERRANBUILDINGARMOR)
+		.value("TERRANDEFENSERANGEBONUS", sc2::UPGRADE_ID::TERRANDEFENSERANGEBONUS)
+		.value("TERRANINFANTRYARMORSLEVEL1", sc2::UPGRADE_ID::TERRANINFANTRYARMORSLEVEL1)
+		.value("TERRANINFANTRYARMORSLEVEL2", sc2::UPGRADE_ID::TERRANINFANTRYARMORSLEVEL2)
+		.value("TERRANINFANTRYARMORSLEVEL3", sc2::UPGRADE_ID::TERRANINFANTRYARMORSLEVEL3)
+		.value("TERRANINFANTRYARMORSVANADIUMPLATINGLEVEL1", sc2::UPGRADE_ID::TERRANINFANTRYARMORSVANADIUMPLATINGLEVEL1)
+		.value("TERRANINFANTRYARMORSVANADIUMPLATINGLEVEL2", sc2::UPGRADE_ID::TERRANINFANTRYARMORSVANADIUMPLATINGLEVEL2)
+		.value("TERRANINFANTRYARMORSVANADIUMPLATINGLEVEL3", sc2::UPGRADE_ID::TERRANINFANTRYARMORSVANADIUMPLATINGLEVEL3)
+		.value("TERRANINFANTRYWEAPONSLEVEL1", sc2::UPGRADE_ID::TERRANINFANTRYWEAPONSLEVEL1)
+		.value("TERRANINFANTRYWEAPONSLEVEL2", sc2::UPGRADE_ID::TERRANINFANTRYWEAPONSLEVEL2)
+		.value("TERRANINFANTRYWEAPONSLEVEL3", sc2::UPGRADE_ID::TERRANINFANTRYWEAPONSLEVEL3)
+		.value("TERRANINFANTRYWEAPONSULTRACAPACITORSLEVEL1", sc2::UPGRADE_ID::TERRANINFANTRYWEAPONSULTRACAPACITORSLEVEL1)
+		.value("TERRANINFANTRYWEAPONSULTRACAPACITORSLEVEL2", sc2::UPGRADE_ID::TERRANINFANTRYWEAPONSULTRACAPACITORSLEVEL2)
+		.value("TERRANINFANTRYWEAPONSULTRACAPACITORSLEVEL3", sc2::UPGRADE_ID::TERRANINFANTRYWEAPONSULTRACAPACITORSLEVEL3)
+		.value("TERRANSHIPARMORSLEVEL1", sc2::UPGRADE_ID::TERRANSHIPARMORSLEVEL1)
+		.value("TERRANSHIPARMORSLEVEL2", sc2::UPGRADE_ID::TERRANSHIPARMORSLEVEL2)
+		.value("TERRANSHIPARMORSLEVEL3", sc2::UPGRADE_ID::TERRANSHIPARMORSLEVEL3)
+		.value("TERRANSHIPARMORSVANADIUMPLATINGLEVEL1", sc2::UPGRADE_ID::TERRANSHIPARMORSVANADIUMPLATINGLEVEL1)
+		.value("TERRANSHIPARMORSVANADIUMPLATINGLEVEL2", sc2::UPGRADE_ID::TERRANSHIPARMORSVANADIUMPLATINGLEVEL2)
+		.value("TERRANSHIPARMORSVANADIUMPLATINGLEVEL3", sc2::UPGRADE_ID::TERRANSHIPARMORSVANADIUMPLATINGLEVEL3)
+		.value("TERRANSHIPWEAPONSLEVEL1", sc2::UPGRADE_ID::TERRANSHIPWEAPONSLEVEL1)
+		.value("TERRANSHIPWEAPONSLEVEL2", sc2::UPGRADE_ID::TERRANSHIPWEAPONSLEVEL2)
+		.value("TERRANSHIPWEAPONSLEVEL3", sc2::UPGRADE_ID::TERRANSHIPWEAPONSLEVEL3)
+		.value("TERRANSHIPWEAPONSULTRACAPACITORSLEVEL1", sc2::UPGRADE_ID::TERRANSHIPWEAPONSULTRACAPACITORSLEVEL1)
+		.value("TERRANSHIPWEAPONSULTRACAPACITORSLEVEL2", sc2::UPGRADE_ID::TERRANSHIPWEAPONSULTRACAPACITORSLEVEL2)
+		.value("TERRANSHIPWEAPONSULTRACAPACITORSLEVEL3", sc2::UPGRADE_ID::TERRANSHIPWEAPONSULTRACAPACITORSLEVEL3)
+		.value("TERRANVEHICLEANDSHIPARMORSLEVEL1", sc2::UPGRADE_ID::TERRANVEHICLEANDSHIPARMORSLEVEL1)
+		.value("TERRANVEHICLEANDSHIPARMORSLEVEL2", sc2::UPGRADE_ID::TERRANVEHICLEANDSHIPARMORSLEVEL2)
+		.value("TERRANVEHICLEANDSHIPARMORSLEVEL3", sc2::UPGRADE_ID::TERRANVEHICLEANDSHIPARMORSLEVEL3)
+		.value("TERRANVEHICLEANDSHIPWEAPONSLEVEL1", sc2::UPGRADE_ID::TERRANVEHICLEANDSHIPWEAPONSLEVEL1)
+		.value("TERRANVEHICLEANDSHIPWEAPONSLEVEL2", sc2::UPGRADE_ID::TERRANVEHICLEANDSHIPWEAPONSLEVEL2)
+		.value("TERRANVEHICLEANDSHIPWEAPONSLEVEL3", sc2::UPGRADE_ID::TERRANVEHICLEANDSHIPWEAPONSLEVEL3)
+		.value("TERRANVEHICLEARMORSLEVEL1", sc2::UPGRADE_ID::TERRANVEHICLEARMORSLEVEL1)
+		.value("TERRANVEHICLEARMORSLEVEL2", sc2::UPGRADE_ID::TERRANVEHICLEARMORSLEVEL2)
+		.value("TERRANVEHICLEARMORSLEVEL3", sc2::UPGRADE_ID::TERRANVEHICLEARMORSLEVEL3)
+		.value("TERRANVEHICLEARMORSVANADIUMPLATINGLEVEL1", sc2::UPGRADE_ID::TERRANVEHICLEARMORSVANADIUMPLATINGLEVEL1)
+		.value("TERRANVEHICLEARMORSVANADIUMPLATINGLEVEL2", sc2::UPGRADE_ID::TERRANVEHICLEARMORSVANADIUMPLATINGLEVEL2)
+		.value("TERRANVEHICLEARMORSVANADIUMPLATINGLEVEL3", sc2::UPGRADE_ID::TERRANVEHICLEARMORSVANADIUMPLATINGLEVEL3)
+		.value("TERRANVEHICLEWEAPONSLEVEL1", sc2::UPGRADE_ID::TERRANVEHICLEWEAPONSLEVEL1)
+		.value("TERRANVEHICLEWEAPONSLEVEL2", sc2::UPGRADE_ID::TERRANVEHICLEWEAPONSLEVEL2)
+		.value("TERRANVEHICLEWEAPONSLEVEL3", sc2::UPGRADE_ID::TERRANVEHICLEWEAPONSLEVEL3)
+		.value("TERRANVEHICLEWEAPONSULTRACAPACITORSLEVEL1", sc2::UPGRADE_ID::TERRANVEHICLEWEAPONSULTRACAPACITORSLEVEL1)
+		.value("TERRANVEHICLEWEAPONSULTRACAPACITORSLEVEL2", sc2::UPGRADE_ID::TERRANVEHICLEWEAPONSULTRACAPACITORSLEVEL2)
+		.value("TERRANVEHICLEWEAPONSULTRACAPACITORSLEVEL3", sc2::UPGRADE_ID::TERRANVEHICLEWEAPONSULTRACAPACITORSLEVEL3)
+		.value("TOSHEASYMODE", sc2::UPGRADE_ID::TOSHEASYMODE)
+		.value("TRANSFORMATIONSERVOS", sc2::UPGRADE_ID::TRANSFORMATIONSERVOS)
+		.value("TRILITHIUMPOWERCELLS", sc2::UPGRADE_ID::TRILITHIUMPOWERCELLS)
+		.value("TUNGSTENSPIKES", sc2::UPGRADE_ID::TUNGSTENSPIKES)
+		.value("TUNNELINGCLAWS", sc2::UPGRADE_ID::TUNNELINGCLAWS)
+		.value("TURBOCHARGEDENGINES", sc2::UPGRADE_ID::TURBOCHARGEDENGINES)
+		.value("TWINLINKEDFLAMETHROWERS", sc2::UPGRADE_ID::TWINLINKEDFLAMETHROWERS)
+		.value("TYCHUS05BATTLECRUISERPENETRATION", sc2::UPGRADE_ID::TYCHUS05BATTLECRUISERPENETRATION)
+		.value("ULTRACAPACITORS", sc2::UPGRADE_ID::ULTRACAPACITORS)
+		.value("ULTRALISKBURROWCHARGEUPGRADE", sc2::UPGRADE_ID::ULTRALISKBURROWCHARGEUPGRADE)
+		.value("ULTRASONICPULSE", sc2::UPGRADE_ID::ULTRASONICPULSE)
+		.value("VANADIUMPLATING", sc2::UPGRADE_ID::VANADIUMPLATING)
+		.value("VIKINGJOTUNBOOSTERS", sc2::UPGRADE_ID::VIKINGJOTUNBOOSTERS)
+		.value("VIRALMUNITIONS", sc2::UPGRADE_ID::VIRALMUNITIONS)
+		.value("VIRALPLASMA", sc2::UPGRADE_ID::VIRALPLASMA)
+		.value("VOIDRAYSPEEDUPGRADE", sc2::UPGRADE_ID::VOIDRAYSPEEDUPGRADE)
+		.value("VULTUREAUTOREPAIR", sc2::UPGRADE_ID::VULTUREAUTOREPAIR)
+		.value("WARPGATERESEARCH", sc2::UPGRADE_ID::WARPGATERESEARCH)
+		.value("WHITENAPALM", sc2::UPGRADE_ID::WHITENAPALM)
+		.value("WRAITHCLOAK", sc2::UPGRADE_ID::WRAITHCLOAK)
+		.value("X88TNAPALMUPGRADE", sc2::UPGRADE_ID::X88TNAPALMUPGRADE)
+		.value("YAMATOCANNON", sc2::UPGRADE_ID::YAMATOCANNON)
+		.value("ZERGBURROWMOVE", sc2::UPGRADE_ID::ZERGBURROWMOVE)
+		.value("ZERGFLYERARMORSLEVEL1", sc2::UPGRADE_ID::ZERGFLYERARMORSLEVEL1)
+		.value("ZERGFLYERARMORSLEVEL2", sc2::UPGRADE_ID::ZERGFLYERARMORSLEVEL2)
+		.value("ZERGFLYERARMORSLEVEL3", sc2::UPGRADE_ID::ZERGFLYERARMORSLEVEL3)
+		.value("ZERGFLYERWEAPONSLEVEL1", sc2::UPGRADE_ID::ZERGFLYERWEAPONSLEVEL1)
+		.value("ZERGFLYERWEAPONSLEVEL2", sc2::UPGRADE_ID::ZERGFLYERWEAPONSLEVEL2)
+		.value("ZERGFLYERWEAPONSLEVEL3", sc2::UPGRADE_ID::ZERGFLYERWEAPONSLEVEL3)
+		.value("ZERGGROUNDARMORSLEVEL1", sc2::UPGRADE_ID::ZERGGROUNDARMORSLEVEL1)
+		.value("ZERGGROUNDARMORSLEVEL2", sc2::UPGRADE_ID::ZERGGROUNDARMORSLEVEL2)
+		.value("ZERGGROUNDARMORSLEVEL3", sc2::UPGRADE_ID::ZERGGROUNDARMORSLEVEL3)
+		.value("ZERGLINGATTACKSPEED", sc2::UPGRADE_ID::ZERGLINGATTACKSPEED)
+		.value("ZERGLINGMOVEMENTSPEED", sc2::UPGRADE_ID::ZERGLINGMOVEMENTSPEED)
+		.value("ZERGMELEEWEAPONSLEVEL1", sc2::UPGRADE_ID::ZERGMELEEWEAPONSLEVEL1)
+		.value("ZERGMELEEWEAPONSLEVEL2", sc2::UPGRADE_ID::ZERGMELEEWEAPONSLEVEL2)
+		.value("ZERGMELEEWEAPONSLEVEL3", sc2::UPGRADE_ID::ZERGMELEEWEAPONSLEVEL3)
+		.value("ZERGMISSILEWEAPONSLEVEL1", sc2::UPGRADE_ID::ZERGMISSILEWEAPONSLEVEL1)
+		.value("ZERGMISSILEWEAPONSLEVEL2", sc2::UPGRADE_ID::ZERGMISSILEWEAPONSLEVEL2)
+		.value("ZERGMISSILEWEAPONSLEVEL3", sc2::UPGRADE_ID::ZERGMISSILEWEAPONSLEVEL3)
+		.value("_330MMBARRAGECANNONS", sc2::UPGRADE_ID::_330MMBARRAGECANNONS);
+		
     py::enum_<sc2::BUFF_ID>(m, "BUFF_ID")
-       .value("INVALID", sc2::BUFF_ID::INVALID)
-       .value("GRAVITONBEAM", sc2::BUFF_ID::GRAVITONBEAM)
-       .value("GHOSTCLOAK", sc2::BUFF_ID::GHOSTCLOAK)
-       .value("BANSHEECLOAK", sc2::BUFF_ID::BANSHEECLOAK)
-       .value("POWERUSERWARPABLE", sc2::BUFF_ID::POWERUSERWARPABLE)
-       .value("QUEENSPAWNLARVATIMER", sc2::BUFF_ID::QUEENSPAWNLARVATIMER)
-       .value("GHOSTHOLDFIRE", sc2::BUFF_ID::GHOSTHOLDFIRE)
-       .value("GHOSTHOLDFIREB", sc2::BUFF_ID::GHOSTHOLDFIREB)
-       .value("EMPDECLOAK", sc2::BUFF_ID::EMPDECLOAK)
-       .value("FUNGALGROWTH", sc2::BUFF_ID::FUNGALGROWTH)
-       .value("GUARDIANSHIELD", sc2::BUFF_ID::GUARDIANSHIELD)
-       .value("TIMEWARPPRODUCTION", sc2::BUFF_ID::TIMEWARPPRODUCTION)
-       .value("NEURALPARASITE", sc2::BUFF_ID::NEURALPARASITE)
-       .value("STIMPACKMARAUDER", sc2::BUFF_ID::STIMPACKMARAUDER)
-       .value("SUPPLYDROP", sc2::BUFF_ID::SUPPLYDROP)
-       .value("STIMPACK", sc2::BUFF_ID::STIMPACK)
-       .value("PSISTORM", sc2::BUFF_ID::PSISTORM)
-       .value("CLOAKFIELDEFFECT", sc2::BUFF_ID::CLOAKFIELDEFFECT)
-       .value("CHARGING", sc2::BUFF_ID::CHARGING)
-       .value("SLOW", sc2::BUFF_ID::SLOW)
-       .value("CONTAMINATED", sc2::BUFF_ID::CONTAMINATED)
-       .value("BLINDINGCLOUDSTRUCTURE", sc2::BUFF_ID::BLINDINGCLOUDSTRUCTURE)
-       .value("ORACLEREVELATION", sc2::BUFF_ID::ORACLEREVELATION)
-       .value("VIPERCONSUMESTRUCTURE", sc2::BUFF_ID::VIPERCONSUMESTRUCTURE)
-       .value("BLINDINGCLOUD", sc2::BUFF_ID::BLINDINGCLOUD)
-       .value("MEDIVACSPEEDBOOST", sc2::BUFF_ID::MEDIVACSPEEDBOOST)
-       .value("PURIFY", sc2::BUFF_ID::PURIFY)
-       .value("ORACLEWEAPON", sc2::BUFF_ID::ORACLEWEAPON)
-       .value("IMMORTALOVERLOAD", sc2::BUFF_ID::IMMORTALOVERLOAD)
-       .value("LOCKON", sc2::BUFF_ID::LOCKON)
-       .value("SEEKERMISSILE", sc2::BUFF_ID::SEEKERMISSILE)
-       .value("TEMPORALFIELD", sc2::BUFF_ID::TEMPORALFIELD)
-       .value("VOIDRAYSWARMDAMAGEBOOST", sc2::BUFF_ID::VOIDRAYSWARMDAMAGEBOOST)
-       .value("ORACLESTASISTRAPTARGET", sc2::BUFF_ID::ORACLESTASISTRAPTARGET)
-       .value("PARASITICBOMB", sc2::BUFF_ID::PARASITICBOMB)
-       .value("PARASITICBOMBUNITKU", sc2::BUFF_ID::PARASITICBOMBUNITKU)
-       .value("PARASITICBOMBSECONDARYUNITSEARCH", sc2::BUFF_ID::PARASITICBOMBSECONDARYUNITSEARCH)
-       .value("LURKERHOLDFIREB", sc2::BUFF_ID::LURKERHOLDFIREB)
-       .value("CHANNELSNIPECOMBAT", sc2::BUFF_ID::CHANNELSNIPECOMBAT)
-       .value("TEMPESTDISRUPTIONBLASTSTUNBEHAVIOR", sc2::BUFF_ID::TEMPESTDISRUPTIONBLASTSTUNBEHAVIOR)
-       .value("CARRYMINERALFIELDMINERALS", sc2::BUFF_ID::CARRYMINERALFIELDMINERALS)
-       .value("CARRYHIGHYIELDMINERALFIELDMINERALS", sc2::BUFF_ID::CARRYHIGHYIELDMINERALFIELDMINERALS)
-       .value("CARRYHARVESTABLEVESPENEGEYSERGAS", sc2::BUFF_ID::CARRYHARVESTABLEVESPENEGEYSERGAS)
-       .value("CARRYHARVESTABLEVESPENEGEYSERGASPROTOSS", sc2::BUFF_ID::CARRYHARVESTABLEVESPENEGEYSERGASPROTOSS)
-       .value("CARRYHARVESTABLEVESPENEGEYSERGASZERG", sc2::BUFF_ID::CARRYHARVESTABLEVESPENEGEYSERGASZERG);
+		.value("ACCELERATIONZONEFLYINGTEMPORALFIELD", sc2::BUFF_ID::ACCELERATIONZONEFLYINGTEMPORALFIELD)
+		.value("ACCELERATIONZONETEMPORALFIELD", sc2::BUFF_ID::ACCELERATIONZONETEMPORALFIELD)
+		.value("ADEPTDEATHCHECK", sc2::BUFF_ID::ADEPTDEATHCHECK)
+		.value("AGGRESSIVEMUTATION", sc2::BUFF_ID::AIDANGERBUFF)
+		.value("AMORPHOUSARMORCLOUD", sc2::BUFF_ID::AMORPHOUSARMORCLOUD)
+		.value("ANTIAIRWEAPONSWITCHCOOLDOWN", sc2::BUFF_ID::ANTIAIRWEAPONSWITCHCOOLDOWN)
+		.value("ARBITERMPCLOAKFIELDEFFECT", sc2::BUFF_ID::ARBITERMPCLOAKFIELDEFFECT)
+		.value("ARBITERMPSTASISFIELD", sc2::BUFF_ID::ARBITERMPSTASISFIELD)
+		.value("ARTANISCLOAKINGFIELDEFFECT", sc2::BUFF_ID::ARTANISCLOAKINGFIELDEFFECT)
+		.value("ARTANISTEMPORALRIFTUNIT", sc2::BUFF_ID::ARTANISTEMPORALRIFTUNIT)
+		.value("ARTANISVORTEXBEHAVIOR", sc2::BUFF_ID::ARTANISVORTEXBEHAVIOR)
+		.value("AUTOMATEDREPAIR", sc2::BUFF_ID::AUTOMATEDREPAIR)
+		.value("BANSHEECLOAK", sc2::BUFF_ID::BANSHEECLOAK)
+		.value("BANSHEECLOAKCROSSSPECTRUMDAMPENERS", sc2::BUFF_ID::BANSHEECLOAKCROSSSPECTRUMDAMPENERS)
+		.value("BATTLECRUISERANTIAIRDISABLE", sc2::BUFF_ID::BATTLECRUISERANTIAIRDISABLE)
+		.value("BENIGN", sc2::BUFF_ID::BENIGN)
+		.value("BIOSTASIS", sc2::BUFF_ID::BIOSTASIS)
+		.value("BLINDINGCLOUD", sc2::BUFF_ID::BLINDINGCLOUD)
+		.value("BLINDINGCLOUDSTRUCTURE", sc2::BUFF_ID::BLINDINGCLOUDSTRUCTURE)
+		.value("BUILDINGSCARAB", sc2::BUFF_ID::BUILDINGSCARAB)
+		.value("BUILDINGSHIELD", sc2::BUFF_ID::BUILDINGSHIELD)
+		.value("BUILDINGSTASIS", sc2::BUFF_ID::BUILDINGSTASIS)
+		.value("BURROWCHARGE", sc2::BUFF_ID::BURROWCHARGE)
+		.value("BURSTCAPACITORSDAMAGEBUFF", sc2::BUFF_ID::BURSTCAPACITORSDAMAGEBUFF)
+		.value("BYPASSARMORDEBUFFONE", sc2::BUFF_ID::BYPASSARMORDEBUFFONE)
+		.value("BYPASSARMORDEBUFFTHREE", sc2::BUFF_ID::BYPASSARMORDEBUFFTHREE)
+		.value("BYPASSARMORDEBUFFTWO", sc2::BUFF_ID::BYPASSARMORDEBUFFTWO)
+		.value("CANNONRADAR", sc2::BUFF_ID::CANNONRADAR)
+		.value("CAPRESOURCE", sc2::BUFF_ID::CAPRESOURCE)
+		.value("CARRYHARVESTABLEVESPENEGEYSERGAS", sc2::BUFF_ID::CARRYHARVESTABLEVESPENEGEYSERGAS)
+		.value("CARRYHARVESTABLEVESPENEGEYSERGASPROTOSS", sc2::BUFF_ID::CARRYHARVESTABLEVESPENEGEYSERGASPROTOSS)
+		.value("CARRYHARVESTABLEVESPENEGEYSERGASZERG", sc2::BUFF_ID::CARRYHARVESTABLEVESPENEGEYSERGASZERG)
+		.value("CARRYHIGHYIELDMINERALFIELDMINERALS", sc2::BUFF_ID::CARRYHIGHYIELDMINERALFIELDMINERALS)
+		.value("CARRYMINERALFIELDMINERALS", sc2::BUFF_ID::CARRYMINERALFIELDMINERALS)
+		.value("CHANNELSNIPECOMBAT", sc2::BUFF_ID::CHANNELSNIPECOMBAT)
+		.value("CHARGEUP", sc2::BUFF_ID::CHARGEUP)
+		.value("CHARGING", sc2::BUFF_ID::CHARGING)
+		.value("CHRONOBOOSTENERGYCOST", sc2::BUFF_ID::CHRONOBOOSTENERGYCOST)
+		.value("CLOAKFIELDEFFECT", sc2::BUFF_ID::CLOAKFIELDEFFECT)
+		.value("CLOAKINGFIELDTARGETED", sc2::BUFF_ID::CLOAKINGFIELDTARGETED)
+		.value("CLOAKUNIT", sc2::BUFF_ID::CLOAKUNIT)
+		.value("COLLAPSIBLEROCKTOWERCONJOINEDSEARCH", sc2::BUFF_ID::COLLAPSIBLEROCKTOWERCONJOINEDSEARCH)
+		.value("COLLAPSIBLEROCKTOWERRAMPDIAGONALCONJOINEDSEARCH", sc2::BUFF_ID::COLLAPSIBLEROCKTOWERRAMPDIAGONALCONJOINEDSEARCH)
+		.value("COLLAPSIBLETERRANTOWERCONJOINEDSEARCH", sc2::BUFF_ID::COLLAPSIBLETERRANTOWERCONJOINEDSEARCH)
+		.value("COLLAPSIBLETERRANTOWERRAMPDIAGONALCONJOINEDSEARCH", sc2::BUFF_ID::COLLAPSIBLETERRANTOWERRAMPDIAGONALCONJOINEDSEARCH)
+		.value("COLONYINFESTATION", sc2::BUFF_ID::COLONYINFESTATION)
+		.value("CONTAMINATED", sc2::BUFF_ID::CONTAMINATED)
+		.value("CORRUPTION", sc2::BUFF_ID::CORRUPTION)
+		.value("CORRUPTIONBOMBDAMAGE", sc2::BUFF_ID::CORRUPTIONBOMBDAMAGE)
+		.value("CORRUPTORGROUNDATTACKDEBUFF", sc2::BUFF_ID::CORRUPTORGROUNDATTACKDEBUFF)
+		.value("CORRUPTORINFESTING", sc2::BUFF_ID::CORRUPTORINFESTING)
+		.value("CORSAIRMPDISRUPTIONWEB", sc2::BUFF_ID::CORSAIRMPDISRUPTIONWEB)
+		.value("DEFENSIVEMATRIX", sc2::BUFF_ID::DEFENSIVEMATRIX)
+		.value("DEFILERMPCONSUME", sc2::BUFF_ID::DEFILERMPCONSUME)
+		.value("DEFILERMPDARKSWARM", sc2::BUFF_ID::DEFILERMPDARKSWARM)
+		.value("DEFILERMPPLAGUE", sc2::BUFF_ID::DEFILERMPPLAGUE)
+		.value("DEVOURERMPACIDSPORES", sc2::BUFF_ID::DEVOURERMPACIDSPORES)
+		.value("DIGESTERCREEPSPRAYVISION", sc2::BUFF_ID::DIGESTERCREEPSPRAYVISION)
+		.value("DISABLEABILS", sc2::BUFF_ID::DISABLEABILS)
+		.value("DISABLEINTERCEPTORS", sc2::BUFF_ID::DISABLEINTERCEPTORS)
+		.value("DISRUPTORPUSH", sc2::BUFF_ID::DISRUPTORPUSH)
+		.value("DOMINATION", sc2::BUFF_ID::DOMINATION)
+		.value("DOOMDAMAGEDELAY", sc2::BUFF_ID::DOOMDAMAGEDELAY)
+		.value("DUTCHMARAUDERSLOW", sc2::BUFF_ID::DUTCHMARAUDERSLOW)
+		.value("EMPBURST", sc2::BUFF_ID::EMPBURST)
+		.value("EMPDECLOAK", sc2::BUFF_ID::EMPDECLOAK)
+		.value("EMPDRAIN", sc2::BUFF_ID::EMPDRAIN)
+		.value("ENGAGE", sc2::BUFF_ID::ENGAGE)
+		.value("ETHEREAL", sc2::BUFF_ID::ETHEREAL)
+		.value("EXTENDBRIDGEEXTENDINGBRIDGENEWIDE10OUT", sc2::BUFF_ID::EXTENDBRIDGEEXTENDINGBRIDGENEWIDE10OUT)
+		.value("EXTENDBRIDGEEXTENDINGBRIDGENEWIDE12OUT", sc2::BUFF_ID::EXTENDBRIDGEEXTENDINGBRIDGENEWIDE12OUT)
+		.value("EXTENDBRIDGEEXTENDINGBRIDGENEWIDE8OUT", sc2::BUFF_ID::EXTENDBRIDGEEXTENDINGBRIDGENEWIDE8OUT)
+		.value("EXTENDBRIDGEEXTENDINGBRIDGENWWIDE10OUT", sc2::BUFF_ID::EXTENDBRIDGEEXTENDINGBRIDGENWWIDE10OUT)
+		.value("EXTENDBRIDGEEXTENDINGBRIDGENWWIDE12OUT", sc2::BUFF_ID::EXTENDBRIDGEEXTENDINGBRIDGENWWIDE12OUT)
+		.value("EXTENDBRIDGEEXTENDINGBRIDGENWWIDE8OUT", sc2::BUFF_ID::EXTENDBRIDGEEXTENDINGBRIDGENWWIDE8OUT)
+		.value("EYESTALK", sc2::BUFF_ID::EYESTALK)
+		.value("FUNGALGROWTH", sc2::BUFF_ID::FUNGALGROWTH)
+		.value("GHOSTBLAST", sc2::BUFF_ID::GHOSTBLAST)
+		.value("GHOSTCLOAK", sc2::BUFF_ID::GHOSTCLOAK)
+		.value("GHOSTHOLDFIRE", sc2::BUFF_ID::GHOSTHOLDFIRE)
+		.value("GHOSTHOLDFIREB", sc2::BUFF_ID::GHOSTHOLDFIREB)
+		.value("GHOSTSNIPEDOT", sc2::BUFF_ID::GHOSTSNIPEDOT)
+		.value("GRAVITONBEAM", sc2::BUFF_ID::GRAVITONBEAM)
+		.value("GRAVITONPRISON", sc2::BUFF_ID::GRAVITONPRISON)
+		.value("HEROICBUFF03", sc2::BUFF_ID::HEROICBUFF03)
+		.value("HIDDEN", sc2::BUFF_ID::HIDDEN)
+		.value("HYBRIDCZERGYROOTS", sc2::BUFF_ID::HYBRIDCZERGYROOTS)
+		.value("HYBRIDFZERGYROOTS", sc2::BUFF_ID::HYBRIDFZERGYROOTS)
+		.value("IMMORTALOVERLOAD", sc2::BUFF_ID::IMMORTALOVERLOAD)
+		.value("INCAPACITATED", sc2::BUFF_ID::INCAPACITATED)
+		.value("INFESTORDISEASE", sc2::BUFF_ID::INFESTORDISEASE)
+		.value("INFESTORENSNARE", sc2::BUFF_ID::INFESTORENSNARE)
+		.value("INFESTORENSNAREMAKEPRECURSORREHEIGHTSOURCE", sc2::BUFF_ID::INFESTORENSNAREMAKEPRECURSORREHEIGHTSOURCE)
+		.value("INHIBITORZONEFLYINGTEMPORALFIELD", sc2::BUFF_ID::INHIBITORZONEFLYINGTEMPORALFIELD)
+		.value("INHIBITORZONETEMPORALFIELD", sc2::BUFF_ID::INHIBITORZONETEMPORALFIELD)
+		.value("INVALID", sc2::BUFF_ID::INVALID)
+		.value("INVULNERABILITYSHIELD", sc2::BUFF_ID::INVULNERABILITYSHIELD)
+		.value("IRRADIATE", sc2::BUFF_ID::IRRADIATE)
+		.value("ITEMGRAVITYBOMBS", sc2::BUFF_ID::ITEMGRAVITYBOMBS)
+		.value("JUMPSTOMPFSTUN", sc2::BUFF_ID::JUMPSTOMPFSTUN)
+		.value("JUMPSTOMPSTUN", sc2::BUFF_ID::JUMPSTOMPSTUN)
+		.value("KARASSPSISTORM", sc2::BUFF_ID::KARASSPSISTORM)
+		.value("LASERSIGHT", sc2::BUFF_ID::LASERSIGHT)
+		.value("LASERTARGETING", sc2::BUFF_ID::LASERTARGETING)
+		.value("LEECH", sc2::BUFF_ID::LEECH)
+		.value("LEECHDISABLEABILITIES", sc2::BUFF_ID::LEECHDISABLEABILITIES)
+		.value("LIGHTNINGBOMB", sc2::BUFF_ID::LIGHTNINGBOMB)
+		.value("LIGHTOFAIUR", sc2::BUFF_ID::LIGHTOFAIUR)
+		.value("LOCKDOWNB", sc2::BUFF_ID::LOCKDOWNB)
+		.value("LOCKON", sc2::BUFF_ID::LOCKON)
+		.value("LURKERHOLDFIRE", sc2::BUFF_ID::LURKERHOLDFIRE)
+		.value("LURKERHOLDFIREB", sc2::BUFF_ID::LURKERHOLDFIREB)
+		.value("MAXIMUMTHRUST", sc2::BUFF_ID::MAXIMUMTHRUST)
+		.value("MEDIVACSPEEDBOOST", sc2::BUFF_ID::MEDIVACSPEEDBOOST)
+		.value("MERCAIRDROPDELAY", sc2::BUFF_ID::MERCAIRDROPDELAY)
+		.value("MERCENARYCYCLONEMISSILES", sc2::BUFF_ID::MERCENARYCYCLONEMISSILES)
+		.value("MERCENARYSENSORDISH", sc2::BUFF_ID::MERCENARYSENSORDISH)
+		.value("MERCENARYSHIELD", sc2::BUFF_ID::MERCENARYSHIELD)
+		.value("MERCGROUNDDROP", sc2::BUFF_ID::MERCGROUNDDROP)
+		.value("MERCGROUNDDROPDELAY", sc2::BUFF_ID::MERCGROUNDDROPDELAY)
+		.value("MINDBLASTSTUN", sc2::BUFF_ID::MINDBLASTSTUN)
+		.value("MINDCONTROL", sc2::BUFF_ID::MINDCONTROL)
+		.value("MINEDRONECOUNTDOWN", sc2::BUFF_ID::MINEDRONECOUNTDOWN)
+		.value("MINEDRONEDOT", sc2::BUFF_ID::MINEDRONEDOT)
+		.value("MOTHERSHIPCOREENERGIZEVISUAL", sc2::BUFF_ID::MOTHERSHIPCOREENERGIZEVISUAL)
+		.value("MOTHERSHIPSTASIS", sc2::BUFF_ID::MOTHERSHIPSTASIS)
+		.value("MOTHERSHIPSTASISCASTER", sc2::BUFF_ID::MOTHERSHIPSTASISCASTER)
+		.value("NAPALM", sc2::BUFF_ID::NAPALM)
+		.value("NEURALPARASITE", sc2::BUFF_ID::NEURALPARASITE)
+		.value("NEURALPARASITEWAIT", sc2::BUFF_ID::NEURALPARASITEWAIT)
+		.value("NEXUSINVULNERABILITY", sc2::BUFF_ID::NEXUSINVULNERABILITY)
+		.value("NEXUSPHASESHIFT", sc2::BUFF_ID::NEXUSPHASESHIFT)
+		.value("NEXUSSHIELDOVERCHARGE", sc2::BUFF_ID::NEXUSSHIELDOVERCHARGE)
+		.value("NEXUSSHIELDRECHARGEONPYLONBEHAVIOR", sc2::BUFF_ID::NEXUSSHIELDRECHARGEONPYLONBEHAVIOR)
+		.value("NEXUSSHIELDRECHARGEONPYLONBEHAVIORSECONDARYONTARGET", sc2::BUFF_ID::NEXUSSHIELDRECHARGEONPYLONBEHAVIORSECONDARYONTARGET)
+		.value("NULLFIELD", sc2::BUFF_ID::NULLFIELD)
+		.value("NYDUSWORMLAVAINSTANTDEATH", sc2::BUFF_ID::NYDUSWORMLAVAINSTANTDEATH)
+		.value("ORACLECLOAKFIELD", sc2::BUFF_ID::ORACLECLOAKFIELD)
+		.value("ORACLECLOAKFIELDEFFECT", sc2::BUFF_ID::ORACLECLOAKFIELDEFFECT)
+		.value("ORACLEPHASESHIFT", sc2::BUFF_ID::ORACLEPHASESHIFT)
+		.value("ORACLEREVELATION", sc2::BUFF_ID::ORACLEREVELATION)
+		.value("ORACLESTASISTRAPTARGET", sc2::BUFF_ID::ORACLESTASISTRAPTARGET)
+		.value("ORACLEWEAPON", sc2::BUFF_ID::ORACLEWEAPON)
+		.value("OVERCHARGE", sc2::BUFF_ID::OVERCHARGE)
+		.value("OVERCHARGEDAMAGE", sc2::BUFF_ID::OVERCHARGEDAMAGE)
+		.value("OVERCHARGESPEEDBOOST", sc2::BUFF_ID::OVERCHARGESPEEDBOOST)
+		.value("PARASITICBOMB", sc2::BUFF_ID::PARASITICBOMB)
+		.value("PARASITICBOMBDELAYTIMEDLIFE", sc2::BUFF_ID::PARASITICBOMBDELAYTIMEDLIFE)
+		.value("PARASITICBOMBSECONDARYUNITSEARCH", sc2::BUFF_ID::PARASITICBOMBSECONDARYUNITSEARCH)
+		.value("PARASITICBOMBUNITKU", sc2::BUFF_ID::PARASITICBOMBUNITKU)
+		.value("PERMANENTLYCLOAKED", sc2::BUFF_ID::PERMANENTLYCLOAKED)
+		.value("PERSONALCLOAKINGFREE", sc2::BUFF_ID::PERSONALCLOAKINGFREE)
+		.value("PHASESHIELD", sc2::BUFF_ID::PHASESHIELD)
+		.value("POWERUSERWARPABLE", sc2::BUFF_ID::POWERUSERWARPABLE)
+		.value("PREDATORCLOAKING", sc2::BUFF_ID::PREDATORCLOAKING)
+		.value("PROTECTIVEBARRIER", sc2::BUFF_ID::PROTECTIVEBARRIER)
+		.value("PSIDISRUPTION", sc2::BUFF_ID::PSIDISRUPTION)
+		.value("PSIONICSHOCKWAVEHEIGHTANDSTUN", sc2::BUFF_ID::PSIONICSHOCKWAVEHEIGHTANDSTUN)
+		.value("PSISTORM", sc2::BUFF_ID::PSISTORM)
+		.value("PSYTROUSOXIDE", sc2::BUFF_ID::PSYTROUSOXIDE)
+		.value("PURIFICATIONNOVA", sc2::BUFF_ID::PURIFICATIONNOVA)
+		.value("PURIFICATIONNOVAPOST", sc2::BUFF_ID::PURIFICATIONNOVAPOST)
+		.value("PURIFIERPLANETCRACKERCHARGE", sc2::BUFF_ID::PURIFIERPLANETCRACKERCHARGE)
+		.value("PURIFY", sc2::BUFF_ID::PURIFY)
+		.value("QUEENKNOCKDOWN", sc2::BUFF_ID::QUEENKNOCKDOWN)
+		.value("QUEENMPENSNARE", sc2::BUFF_ID::QUEENMPENSNARE)
+		.value("QUEENSPAWNLARVATIMER", sc2::BUFF_ID::QUEENSPAWNLARVATIMER)
+		.value("RADAR25", sc2::BUFF_ID::RADAR25)
+		.value("RAVENSCRAMBLERMISSILE", sc2::BUFF_ID::RAVENSCRAMBLERMISSILE)
+		.value("RAVENSHREDDERMISSILEARMORREDUCTION", sc2::BUFF_ID::RAVENSHREDDERMISSILEARMORREDUCTION)
+		.value("RAVENSHREDDERMISSILEARMORREDUCTIONUISUBTRUCT", sc2::BUFF_ID::RAVENSHREDDERMISSILEARMORREDUCTIONUISUBTRUCT)
+		.value("RAVENSHREDDERMISSILETIMEOUT", sc2::BUFF_ID::RAVENSHREDDERMISSILETIMEOUT)
+		.value("RAVENSHREDDERMISSILETINT", sc2::BUFF_ID::RAVENSHREDDERMISSILETINT)
+		.value("RAYNORMISSILETIMEDLIFE", sc2::BUFF_ID::RAYNORMISSILETIMEDLIFE)
+		.value("RAYNORTIMEBOMBMISSILE", sc2::BUFF_ID::RAYNORTIMEBOMBMISSILE)
+		.value("RAYNORTIMEBOMBUNIT", sc2::BUFF_ID::RAYNORTIMEBOMBUNIT)
+		.value("RELEASEINTERCEPTORSBEACON", sc2::BUFF_ID::RELEASEINTERCEPTORSBEACON)
+		.value("RELEASEINTERCEPTORSCOOLDOWN", sc2::BUFF_ID::RELEASEINTERCEPTORSCOOLDOWN)
+		.value("RELEASEINTERCEPTORSTIMEDLIFEWARNING", sc2::BUFF_ID::RELEASEINTERCEPTORSTIMEDLIFEWARNING)
+		.value("RELEASEINTERCEPTORSWANDERDELAY", sc2::BUFF_ID::RELEASEINTERCEPTORSWANDERDELAY)
+		.value("RESCUE", sc2::BUFF_ID::RESCUE)
+		.value("RESONATINGGLAIVESPHASESHIFT", sc2::BUFF_ID::RESONATINGGLAIVESPHASESHIFT)
+		.value("RESOURCESTUN", sc2::BUFF_ID::RESOURCESTUN)
+		.value("RESTORESHIELDS", sc2::BUFF_ID::RESTORESHIELDS)
+		.value("ROUGHTERRAINSEARCH", sc2::BUFF_ID::ROUGHTERRAINSEARCH)
+		.value("ROUGHTERRAINSLOW", sc2::BUFF_ID::ROUGHTERRAINSLOW)
+		.value("SCIENCEVESSELCLOAKFIELD", sc2::BUFF_ID::SCIENCEVESSELCLOAKFIELD)
+		.value("SCRYER", sc2::BUFF_ID::SCRYER)
+		.value("SCRYERFRIENDLY", sc2::BUFF_ID::SCRYERFRIENDLY)
+		.value("SEEKERMISSILE", sc2::BUFF_ID::SEEKERMISSILE)
+		.value("SEEKERMISSILETIMEOUT", sc2::BUFF_ID::SEEKERMISSILETIMEOUT)
+		.value("SELFREPAIR", sc2::BUFF_ID::SELFREPAIR)
+		.value("SHADOWCLONE", sc2::BUFF_ID::SHADOWCLONE)
+		.value("SHEEPBUSY", sc2::BUFF_ID::SHEEPBUSY)
+		.value("SHIFTDELAY", sc2::BUFF_ID::SHIFTDELAY)
+		.value("SHREDDERSWARMDAMAGEAPPLY", sc2::BUFF_ID::SHREDDERSWARMDAMAGEAPPLY)
+		.value("SLAYNELEMENTALGRABSTUN", sc2::BUFF_ID::SLAYNELEMENTALGRABSTUN)
+		.value("SLIMED", sc2::BUFF_ID::SLIMED)
+		.value("SLOW", sc2::BUFF_ID::SLOW)
+		.value("SPECTRECLOAKING", sc2::BUFF_ID::SPECTRECLOAKING)
+		.value("SPECTRECLOAKINGFREE", sc2::BUFF_ID::SPECTRECLOAKINGFREE)
+		.value("SPECTREHOLDFIRE", sc2::BUFF_ID::SPECTREHOLDFIRE)
+		.value("SPECTREHOLDFIREB", sc2::BUFF_ID::SPECTREHOLDFIREB)
+		.value("SPECTRELOCKDOWNB", sc2::BUFF_ID::SPECTRELOCKDOWNB)
+		.value("SPECTRESHIELD", sc2::BUFF_ID::SPECTRESHIELD)
+		.value("SPORECANNONMISSILE", sc2::BUFF_ID::SPORECANNONMISSILE)
+		.value("SS_BATTLECRUISERCOLLISIONCHECK", sc2::BUFF_ID::SS_BATTLECRUISERCOLLISIONCHECK)
+		.value("SS_BATTLECRUISERHUNTERSEEKERTIMEOUT", sc2::BUFF_ID::SS_BATTLECRUISERHUNTERSEEKERTIMEOUT)
+		.value("SS_BATTLECRUISERMISSILELAUNCHER", sc2::BUFF_ID::SS_BATTLECRUISERMISSILELAUNCHER)
+		.value("SS_CARRIERBOSSCOLLISIONCHECK", sc2::BUFF_ID::SS_CARRIERBOSSCOLLISIONCHECK)
+		.value("SS_CARRIERCOLLISIONCHECK", sc2::BUFF_ID::SS_CARRIERCOLLISIONCHECK)
+		.value("SS_CORRUPTORCOLLISIONCHECK", sc2::BUFF_ID::SS_CORRUPTORCOLLISIONCHECK)
+		.value("SS_CORRUPTORMISSILETARGETCHECK", sc2::BUFF_ID::SS_CORRUPTORMISSILETARGETCHECK)
+		.value("SS_FIGHTERBOMBMISSILEDEATH", sc2::BUFF_ID::SS_FIGHTERBOMBMISSILEDEATH)
+		.value("SS_FIGHTERDRONEDAMAGERESPONSE", sc2::BUFF_ID::SS_FIGHTERDRONEDAMAGERESPONSE)
+		.value("SS_INTERCEPTORCOLLISIONCHECK", sc2::BUFF_ID::SS_INTERCEPTORCOLLISIONCHECK)
+		.value("SS_INVULNERABLE", sc2::BUFF_ID::SS_INVULNERABLE)
+		.value("SS_LEVIATHANBOMBCOLLISIONCHECK", sc2::BUFF_ID::SS_LEVIATHANBOMBCOLLISIONCHECK)
+		.value("SS_LEVIATHANBOMBEXPLODETIMER", sc2::BUFF_ID::SS_LEVIATHANBOMBEXPLODETIMER)
+		.value("SS_LEVIATHANBOMBMISSILETARGETCHECK", sc2::BUFF_ID::SS_LEVIATHANBOMBMISSILETARGETCHECK)
+		.value("SS_LEVIATHANCOLLISIONCHECK", sc2::BUFF_ID::SS_LEVIATHANCOLLISIONCHECK)
+		.value("SS_LEVIATHANTENTACLEMISSILESCANSWAPDELAY", sc2::BUFF_ID::SS_LEVIATHANTENTACLEMISSILESCANSWAPDELAY)
+		.value("SS_LEVIATHANTENTACLEMISSILETARGETCHECK", sc2::BUFF_ID::SS_LEVIATHANTENTACLEMISSILETARGETCHECK)
+		.value("SS_LEVIATHANTENTACLEMISSILETARGETCHECKINVERTED", sc2::BUFF_ID::SS_LEVIATHANTENTACLEMISSILETARGETCHECKINVERTED)
+		.value("SS_LEVIATHANTENTACLETARGETDEATHDELAY", sc2::BUFF_ID::SS_LEVIATHANTENTACLETARGETDEATHDELAY)
+		.value("SS_LIGHTNINGPROJECTOR", sc2::BUFF_ID::SS_LIGHTNINGPROJECTOR)
+		.value("SS_LIGHTNINGPROJECTORCOLLISIONCHECK", sc2::BUFF_ID::SS_LIGHTNINGPROJECTORCOLLISIONCHECK)
+		.value("SS_MAXACCELERATION", sc2::BUFF_ID::SS_MAXACCELERATION)
+		.value("SS_MAXSPEED", sc2::BUFF_ID::SS_MAXSPEED)
+		.value("SS_MISSILETARGETCHECK", sc2::BUFF_ID::SS_MISSILETARGETCHECK)
+		.value("SS_MISSILETARGETCHECKVIKING", sc2::BUFF_ID::SS_MISSILETARGETCHECKVIKING)
+		.value("SS_MISSILETARGETCHECKVIKINGDRONE", sc2::BUFF_ID::SS_MISSILETARGETCHECKVIKINGDRONE)
+		.value("SS_MISSILETARGETCHECKVIKINGSTRONG1", sc2::BUFF_ID::SS_MISSILETARGETCHECKVIKINGSTRONG1)
+		.value("SS_MISSILETARGETCHECKVIKINGSTRONG2", sc2::BUFF_ID::SS_MISSILETARGETCHECKVIKINGSTRONG2)
+		.value("SS_MISSILETIMEOUT", sc2::BUFF_ID::SS_MISSILETIMEOUT)
+		.value("SS_PHOENIXCOLLISIONCHECK", sc2::BUFF_ID::SS_PHOENIXCOLLISIONCHECK)
+		.value("SS_POWERUPDIAGONAL1", sc2::BUFF_ID::SS_POWERUPDIAGONAL1)
+		.value("SS_POWERUPDIAGONAL2", sc2::BUFF_ID::SS_POWERUPDIAGONAL2)
+		.value("SS_POWERUPHEALTH1", sc2::BUFF_ID::SS_POWERUPHEALTH1)
+		.value("SS_POWERUPHEALTH2", sc2::BUFF_ID::SS_POWERUPHEALTH2)
+		.value("SS_POWERUPMORPHTOBOMB", sc2::BUFF_ID::SS_POWERUPMORPHTOBOMB)
+		.value("SS_POWERUPMORPHTOHEALTH", sc2::BUFF_ID::SS_POWERUPMORPHTOHEALTH)
+		.value("SS_POWERUPMORPHTOSIDEMISSILES", sc2::BUFF_ID::SS_POWERUPMORPHTOSIDEMISSILES)
+		.value("SS_POWERUPMORPHTOSTRONGERMISSILES", sc2::BUFF_ID::SS_POWERUPMORPHTOSTRONGERMISSILES)
+		.value("SS_POWERUPSTRONG", sc2::BUFF_ID::SS_POWERUPSTRONG)
+		.value("SS_SCIENCEVESSELCOLLISIONCHECK", sc2::BUFF_ID::SS_SCIENCEVESSELCOLLISIONCHECK)
+		.value("SS_SCOURGECOLLISIONCHECK", sc2::BUFF_ID::SS_SCOURGECOLLISIONCHECK)
+		.value("SS_SCOURGEDEATH", sc2::BUFF_ID::SS_SCOURGEDEATH)
+		.value("SS_SCOURGEMISSILETARGETCHECK", sc2::BUFF_ID::SS_SCOURGEMISSILETARGETCHECK)
+		.value("SS_SCOUTCOLLISIONCHECK", sc2::BUFF_ID::SS_SCOUTCOLLISIONCHECK)
+		.value("SS_STRONGERENEMYBUFF", sc2::BUFF_ID::SS_STRONGERENEMYBUFF)
+		.value("SS_SWARMGUARDIANCOLLISIONCHECK", sc2::BUFF_ID::SS_SWARMGUARDIANCOLLISIONCHECK)
+		.value("SS_TERRATRONARMMISSILETARGETCHECK", sc2::BUFF_ID::SS_TERRATRONARMMISSILETARGETCHECK)
+		.value("SS_TERRATRONCOLLISIONCHECK", sc2::BUFF_ID::SS_TERRATRONCOLLISIONCHECK)
+		.value("SS_TERRATRONMISSILELAUNCHER", sc2::BUFF_ID::SS_TERRATRONMISSILELAUNCHER)
+		.value("SS_TERRATRONMISSILESPINNERCOLLISIONCHECK", sc2::BUFF_ID::SS_TERRATRONMISSILESPINNERCOLLISIONCHECK)
+		.value("SS_TERRATRONMISSILESPINNERMISSILELAUNCHER", sc2::BUFF_ID::SS_TERRATRONMISSILESPINNERMISSILELAUNCHER)
+		.value("SS_TERRATRONSAWCOLLISIONCHECK", sc2::BUFF_ID::SS_TERRATRONSAWCOLLISIONCHECK)
+		.value("SS_TERRATRONSTUN", sc2::BUFF_ID::SS_TERRATRONSTUN)
+		.value("SS_VIKINGRESPAWN", sc2::BUFF_ID::SS_VIKINGRESPAWN)
+		.value("SS_WRAITHCOLLISIONCHECK", sc2::BUFF_ID::SS_WRAITHCOLLISIONCHECK)
+		.value("STASIS", sc2::BUFF_ID::STASIS)
+		.value("STIMPACK", sc2::BUFF_ID::STIMPACK)
+		.value("STIMPACKMARAUDER", sc2::BUFF_ID::STIMPACKMARAUDER)
+		.value("STUNROUNDINITIALBEHAVIOR", sc2::BUFF_ID::STUNROUNDINITIALBEHAVIOR)
+		.value("SUPPLYDROP", sc2::BUFF_ID::SUPPLYDROP)
+		.value("TAUNTB", sc2::BUFF_ID::TAUNTB)
+		.value("TEMPESTDISRUPTIONBLASTSTUNBEHAVIOR", sc2::BUFF_ID::TEMPESTDISRUPTIONBLASTSTUNBEHAVIOR)
+		.value("TEMPORALFIELD", sc2::BUFF_ID::TEMPORALFIELD)
+		.value("TEMPORALRIFTUNIT", sc2::BUFF_ID::TEMPORALRIFTUNIT)
+		.value("TESTATTRIBUTE", sc2::BUFF_ID::TESTATTRIBUTE)
+		.value("TESTVETERANCY", sc2::BUFF_ID::TESTVETERANCY)
+		.value("TIMESCALECONVERSIONBEHAVIOR", sc2::BUFF_ID::TIMESCALECONVERSIONBEHAVIOR)
+		.value("TIMESTOPSTUN", sc2::BUFF_ID::TIMESTOPSTUN)
+		.value("TIMEWARPPRODUCTION", sc2::BUFF_ID::TIMEWARPPRODUCTION)
+		.value("TRANSFUSION", sc2::BUFF_ID::TRANSFUSION)
+		.value("TRANSIENTMORPH", sc2::BUFF_ID::TRANSIENTMORPH)
+		.value("TYCHUSCOMMANDOSTIMPACK", sc2::BUFF_ID::TYCHUSCOMMANDOSTIMPACK)
+		.value("ULTRASONICPULSESTUN", sc2::BUFF_ID::ULTRASONICPULSESTUN)
+		.value("VIPERCONSUMESTRUCTURE", sc2::BUFF_ID::VIPERCONSUMESTRUCTURE)
+		.value("VIRALPLASMA", sc2::BUFF_ID::VIRALPLASMA)
+		.value("VOIDMPIMMORTALREVIVESUPRESSED", sc2::BUFF_ID::VOIDMPIMMORTALREVIVESUPRESSED)
+		.value("VOIDRAYSWARMDAMAGEBOOST", sc2::BUFF_ID::VOIDRAYSWARMDAMAGEBOOST)
+		.value("VOIDSIPHON", sc2::BUFF_ID::VOIDSIPHON)
+		.value("VOODOOLOCKDOWN", sc2::BUFF_ID::VOODOOLOCKDOWN)
+		.value("VOODOOSHIELD", sc2::BUFF_ID::VOODOOSHIELD)
+		.value("VORTEXBEHAVIOR", sc2::BUFF_ID::VORTEXBEHAVIOR)
+		.value("VORTEXBEHAVIORENEMY", sc2::BUFF_ID::VORTEXBEHAVIORENEMY)
+		.value("VORTEXBEHAVIORERADICATOR", sc2::BUFF_ID::VORTEXBEHAVIORERADICATOR)
+		.value("WATER", sc2::BUFF_ID::WATER)
+		.value("WRAITHCLOAK", sc2::BUFF_ID::WRAITHCLOAK)
+		.value("ZERATULSTUN", sc2::BUFF_ID::ZERATULSTUN)
+		.value("_250MMSTRIKECANNONS", sc2::BUFF_ID::_250MMSTRIKECANNONS)
+		.value("_330MMBARRAGECANNONS", sc2::BUFF_ID::_330MMBARRAGECANNONS);
+
+	py::enum_<sc2::EFFECT_ID>(m, "EFFECT_ID")
+		.value("BLINDINGCLOUD", sc2::EFFECT_ID::BLINDINGCLOUD)
+		.value("CORROSIVEBILE", sc2::EFFECT_ID::CORROSIVEBILE)
+		.value("GUARDIANSHIELD", sc2::EFFECT_ID::GUARDIANSHIELD)
+		.value("INVALID", sc2::EFFECT_ID::INVALID)
+		.value("LIBERATORDEFENDERZONE", sc2::EFFECT_ID::LIBERATORDEFENDERZONE)
+		.value("LIBERATORDEFENDERZONESETUP", sc2::EFFECT_ID::LIBERATORDEFENDERZONESETUP)
+		.value("LURKERSPINES", sc2::EFFECT_ID::LURKERSPINES)
+		.value("NUKEDOT", sc2::EFFECT_ID::NUKEDOT)
+		.value("PSISTORM", sc2::EFFECT_ID::PSISTORM)
+		.value("SCANNERSWEEP", sc2::EFFECT_ID::SCANNERSWEEP)
+		.value("TEMPORALFIELD", sc2::EFFECT_ID::TEMPORALFIELD)
+		.value("TEMPORALFIELDGROWING", sc2::EFFECT_ID::TEMPORALFIELDGROWING)
+		.value("THERMALLANCE", sc2::EFFECT_ID::THERMALLANCE);
+
 };