Page 2 of 2 FirstFirst 1 2
Results 11 to 19 of 19

Thread: August 30 Bot Update

  1. #11
    Basic Member
    Join Date
    Dec 2016
    Posts
    731
    So yes, it seems to get it to work I have to use the model that I'm a client connecting to a server and receiving data from you.

    Here is python code to do this (it reads the first 4 bytes to get the size of protobuf, then reads the size specified) - NOTE: This just reads one protobuf dump:
    Code:
    import socket
    from struct import *
    
    HOST = '127.0.0.1'  # The remote host
    PORT = 12121        # The same port as used by the server
    with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
        s.connect((HOST, PORT))
    
        f = open('tmp.bin', 'bw')
    
        i=0
        while i < 1:
            binSize = s.recv(4)
            print(binSize)
    
            if binSize:
                protoSize = unpack("<I", binSize)
                print("protoSize: %d" % (protoSize[0]))
    
                binData = s.recv(protoSize[0])
                f.write(binData)
            i += 1
    
        f.close()
        s.close()
    Here is example output of what it prints (and yes, a 23326 byte binary file is created):
    Code:
    b'\x1e[\x00\x00'
    protoSize: 23326
    Note - it appears the data is provided in little-endian notation (at least for the size of the protobuf - haven't checked internal structures yet) which is the reverse of the typical network traffic paradigm of big-endian.

    To get the actual data the necessary protobuf structures need to be created and unpacked.

    FINALLY - this code above seems to crash the game after running - not sure why the socket close crashes it (needs to be fixed on server side).
    Last edited by nostrademous; 09-20-2017 at 10:15 AM.

  2. #12
    Basic Member
    Join Date
    Dec 2016
    Posts
    731
    @ChrisC

    Two Things:
    1) as I mentioned above - it appears the socket.close() when using this method seems to crash the bot-server
    2) this only works in "bot" matches - it would be much much much more beneficial for machine learning (specifically training) if we could download a replay and use this mode of protobuf dumping during replay watching - any chance on this?

  3. #13
    Basic Member
    Join Date
    Dec 2016
    Posts
    731
    All right, so below is the necessary python protobuf definition for the CMsgBotWorldState protobuf. Syntax was not specified so I defaulted to protobuf 2 version.

    Filename: CMsgBotWorldState_pb2.py
    Code:
    # Generated by the protocol buffer compiler.  DO NOT EDIT!
    # source: CMsgBotWorldState.proto
    
    import sys
    _b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
    from google.protobuf import descriptor as _descriptor
    from google.protobuf import message as _message
    from google.protobuf import reflection as _reflection
    from google.protobuf import symbol_database as _symbol_database
    from google.protobuf import descriptor_pb2
    # @@protoc_insertion_point(imports)
    
    _sym_db = _symbol_database.Default()
    
    
    
    
    DESCRIPTOR = _descriptor.FileDescriptor(
      name='CMsgBotWorldState.proto',
      package='',
      syntax='proto2',
      serialized_pb=_b('\n\x17\x43MsgBotWorldState.proto\"\x8b&\n\x11\x43MsgBotWorldState\x12\x0f\n\x07team_id\x18\x01 \x01(\r\x12\x11\n\tgame_time\x18\x02 \x01(\r\x12\x12\n\ngame_state\x18\x03 \x01(\r\x12\x17\n\x0fhero_pick_state\x18\x04 \x01(\r\x12\x13\n\x0btime_of_day\x18\x05 \x01(\x02\x12\x16\n\x0eglyph_cooldown\x18\x06 \x01(\x02\x12\x1c\n\x14glyph_cooldown_enemy\x18\x07 \x01(\r\x12*\n\x07players\x18\n \x03(\x0b\x32\x19.CMsgBotWorldState.Player\x12&\n\x05units\x18\x0b \x03(\x0b\x32\x17.CMsgBotWorldState.Unit\x12\x35\n\rdropped_items\x18\x0c \x03(\x0b\x32\x1e.CMsgBotWorldState.DroppedItem\x12/\n\nrune_infos\x18\r \x03(\x0b\x32\x1b.CMsgBotWorldState.RuneInfo\x12;\n\x12incoming_teleports\x18\x0e \x03(\x0b\x32\x1f.CMsgBotWorldState.TeleportInfo\x12\x37\n\x0e\x61\x62ility_events\x18\x14 \x03(\x0b\x32\x1f.CMsgBotWorldState.EventAbility\x12\x35\n\rdamage_events\x18\x15 \x03(\x0b\x32\x1e.CMsgBotWorldState.EventDamage\x12\x44\n\x15\x63ourier_killed_events\x18\x16 \x03(\x0b\x32%.CMsgBotWorldState.EventCourierKilled\x12\x42\n\x14roshan_killed_events\x18\x17 \x03(\x0b\x32$.CMsgBotWorldState.EventRoshanKilled\x12\x31\n\x0btree_events\x18\x18 \x03(\x0b\x32\x1c.CMsgBotWorldState.EventTree\x1a)\n\x06Vector\x12\t\n\x01x\x18\x01 \x02(\x05\x12\t\n\x01y\x18\x02 \x02(\x05\x12\t\n\x01z\x18\x03 \x02(\x05\x1a\x84\x01\n\x06Player\x12\x11\n\tplayer_id\x18\x01 \x01(\r\x12\x0f\n\x07hero_id\x18\x02 \x01(\r\x12\x10\n\x08is_alive\x18\x03 \x01(\x08\x12\x14\n\x0crespawn_time\x18\x04 \x01(\x02\x12\r\n\x05kills\x18\x05 \x01(\r\x12\x0e\n\x06\x64\x65\x61ths\x18\x06 \x01(\r\x12\x0f\n\x07\x61ssists\x18\x07 \x01(\r\x1a\xfb\x02\n\x07\x41\x62ility\x12\x0e\n\x06handle\x18\x01 \x01(\r\x12\x12\n\nability_id\x18\x02 \x01(\r\x12\x0c\n\x04slot\x18\x03 \x01(\r\x12\x15\n\rcaster_handle\x18\x05 \x01(\r\x12\r\n\x05level\x18\x06 \x01(\r\x12\x12\n\ncast_range\x18\n \x01(\r\x12\x14\n\x0c\x63hannel_time\x18\x0b \x01(\x02\x12\x1a\n\x12\x63ooldown_remaining\x18\x0c \x01(\x02\x12\x14\n\x0cis_activated\x18\x14 \x01(\x08\x12\x12\n\nis_toggled\x18\x15 \x01(\x08\x12\x1b\n\x13is_in_ability_phase\x18\x16 \x01(\x08\x12\x15\n\ris_channeling\x18\x17 \x01(\x08\x12\x11\n\tis_stolen\x18\x18 \x01(\x08\x12\x0f\n\x07\x63harges\x18\x1e \x01(\r\x12\x19\n\x11secondary_charges\x18\x1f \x01(\r\x12\x1a\n\x12is_combined_locked\x18( \x01(\x08\x12\x19\n\x11power_treads_stat\x18\x32 \x01(\r\x1aK\n\x0b\x44roppedItem\x12\x0f\n\x07item_id\x18\x01 \x01(\r\x12+\n\x08location\x18\x02 \x01(\x0b\x32\x19.CMsgBotWorldState.Vector\x1an\n\x08RuneInfo\x12\x0c\n\x04type\x18\x01 \x01(\r\x12+\n\x08location\x18\x02 \x01(\x0b\x32\x19.CMsgBotWorldState.Vector\x12\x0e\n\x06status\x18\x03 \x01(\r\x12\x17\n\x0ftime_since_seen\x18\x04 \x01(\x02\x1a\x65\n\x0cTeleportInfo\x12\x11\n\tplayer_id\x18\x01 \x01(\r\x12+\n\x08location\x18\x02 \x01(\x0b\x32\x19.CMsgBotWorldState.Vector\x12\x15\n\rtime_remaning\x18\x03 \x01(\x02\x1aj\n\x08Modifier\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0bstack_count\x18\x02 \x01(\r\x12\x1a\n\x12remaining_duration\x18\x03 \x01(\x02\x12\x1f\n\x17\x61uxiliary_units_handles\x18\x04 \x03(\r\x1a\xba\x01\n\x10LinearProjectile\x12\x0e\n\x06handle\x18\x01 \x01(\r\x12\x15\n\rcaster_handle\x18\x02 \x01(\r\x12\x18\n\x10\x63\x61ster_player_id\x18\x03 \x01(\r\x12\x16\n\x0e\x61\x62ility_handle\x18\x04 \x01(\r\x12+\n\x08location\x18\x05 \x01(\x0b\x32\x19.CMsgBotWorldState.Vector\x12\x10\n\x08velocity\x18\x06 \x01(\r\x12\x0e\n\x06radius\x18\x07 \x01(\r\x1a\xc5\x01\n\x12TrackingProjectile\x12\x15\n\rcaster_handle\x18\x01 \x01(\r\x12\x18\n\x10\x63\x61ster_player_id\x18\x02 \x01(\r\x12\x16\n\x0e\x61\x62ility_handle\x18\x03 \x01(\r\x12+\n\x08location\x18\x04 \x01(\x0b\x32\x19.CMsgBotWorldState.Vector\x12\x10\n\x08velocity\x18\x05 \x01(\r\x12\x14\n\x0cis_dodgeable\x18\x06 \x01(\x08\x12\x11\n\tis_attack\x18\x07 \x01(\x08\x1a\x91\x01\n\x0c\x45ventAbility\x12\x12\n\nability_id\x18\x01 \x01(\r\x12\x11\n\tplayer_id\x18\x02 \x01(\r\x12\x13\n\x0bunit_handle\x18\x03 \x01(\r\x12+\n\x08location\x18\x04 \x01(\x0b\x32\x19.CMsgBotWorldState.Vector\x12\x18\n\x10is_channel_start\x18\x05 \x01(\x08\x1a\xa1\x01\n\x0b\x45ventDamage\x12\x0e\n\x06\x64\x61mage\x18\x01 \x01(\r\x12\x18\n\x10victim_player_id\x18\x02 \x01(\r\x12\x1a\n\x12victim_unit_handle\x18\x03 \x01(\r\x12\x1a\n\x12\x61ttacker_player_id\x18\x04 \x01(\r\x12\x1c\n\x14\x61ttacker_unit_handle\x18\x05 \x01(\r\x12\x12\n\nability_id\x18\x06 \x01(\r\x1ax\n\x12\x45ventCourierKilled\x12\x0f\n\x07team_id\x18\x01 \x01(\r\x12\x1b\n\x13\x63ourier_unit_handle\x18\x02 \x01(\r\x12\x18\n\x10killer_player_id\x18\x03 \x01(\r\x12\x1a\n\x12killer_unit_handle\x18\x04 \x01(\r\x1aI\n\x11\x45ventRoshanKilled\x12\x18\n\x10killer_player_id\x18\x01 \x01(\r\x12\x1a\n\x12killer_unit_handle\x18\x02 \x01(\r\x1ao\n\tEventTree\x12\x0f\n\x07tree_id\x18\x01 \x01(\r\x12\x11\n\tdestroyed\x18\x02 \x01(\x08\x12\x11\n\trespawned\x18\x03 \x01(\x08\x12+\n\x08location\x18\x04 \x01(\x0b\x32\x19.CMsgBotWorldState.Vector\x1a\xca\x0f\n\x04Unit\x12\x0e\n\x06handle\x18\x01 \x01(\r\x12.\n\tunit_type\x18\x02 \x01(\x0e\x32\x1b.CMsgBotWorldState.UnitType\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x0f\n\x07team_id\x18\x04 \x01(\r\x12\r\n\x05level\x18\x05 \x01(\r\x12+\n\x08location\x18\x06 \x01(\x0b\x32\x19.CMsgBotWorldState.Vector\x12\x10\n\x08is_alive\x18\x07 \x01(\x08\x12\x17\n\x0f\x62ounding_radius\x18\n \x01(\r\x12\x0e\n\x06\x66\x61\x63ing\x18\x0b \x01(\r\x12\x15\n\rground_height\x18\x0c \x01(\r\x12\x1c\n\x14vision_range_daytime\x18\x0f \x01(\r\x12\x1e\n\x16vision_range_nighttime\x18\x10 \x01(\r\x12\x0e\n\x06health\x18\x14 \x01(\r\x12\x12\n\nhealth_max\x18\x15 \x01(\r\x12\x14\n\x0chealth_regen\x18\x16 \x01(\x02\x12\x0c\n\x04mana\x18\x19 \x01(\r\x12\x10\n\x08mana_max\x18\x1a \x01(\r\x12\x12\n\nmana_regen\x18\x1b \x01(\x02\x12\x1b\n\x13\x62\x61se_movement_speed\x18\x1e \x01(\r\x12\x1e\n\x16\x63urrent_movement_speed\x18\x1f \x01(\r\x12\x15\n\ranim_activity\x18# \x01(\x05\x12\x12\n\nanim_cycle\x18$ \x01(\x02\x12\x13\n\x0b\x62\x61se_damage\x18( \x01(\r\x12\x1c\n\x14\x62\x61se_damage_variance\x18) \x01(\r\x12\x14\n\x0c\x62onus_damage\x18* \x01(\r\x12\x15\n\rattack_damage\x18+ \x01(\r\x12\x14\n\x0c\x61ttack_range\x18, \x01(\r\x12\x14\n\x0c\x61ttack_speed\x18- \x01(\r\x12\x19\n\x11\x61ttack_anim_point\x18. \x01(\x02\x12 \n\x18\x61ttack_acquisition_range\x18/ \x01(\r\x12\x1f\n\x17\x61ttack_projectile_speed\x18\x30 \x01(\r\x12\x1c\n\x14\x61ttack_target_handle\x18\x31 \x01(\r\x12\x11\n\tbounty_xp\x18< \x01(\r\x12\x17\n\x0f\x62ounty_gold_min\x18= \x01(\r\x12\x17\n\x0f\x62ounty_gold_max\x18> \x01(\r\x12\x15\n\ris_channeling\x18\x41 \x01(\x08\x12\x1d\n\x15\x61\x63tive_ability_handle\x18\x42 \x01(\r\x12\x18\n\x10is_attack_immune\x18\x46 \x01(\x08\x12\x10\n\x08is_blind\x18G \x01(\x08\x12\x19\n\x11is_block_disabled\x18H \x01(\x08\x12\x13\n\x0bis_disarmed\x18I \x01(\x08\x12\x14\n\x0cis_dominated\x18J \x01(\x08\x12\x19\n\x11is_evade_disabled\x18K \x01(\x08\x12\x10\n\x08is_hexed\x18L \x01(\x08\x12\x14\n\x0cis_invisible\x18M \x01(\x08\x12\x17\n\x0fis_invulnerable\x18N \x01(\x08\x12\x17\n\x0fis_magic_immune\x18O \x01(\x08\x12\x10\n\x08is_muted\x18P \x01(\x08\x12\x15\n\ris_nightmared\x18R \x01(\x08\x12\x11\n\tis_rooted\x18S \x01(\x08\x12\x13\n\x0bis_silenced\x18T \x01(\x08\x12\x1d\n\x15is_specially_deniable\x18U \x01(\x08\x12\x12\n\nis_stunned\x18V \x01(\x08\x12\x19\n\x11is_unable_to_miss\x18W \x01(\x08\x12\x13\n\x0bhas_scepter\x18X \x01(\x08\x12-\n\tabilities\x18Z \x03(\x0b\x32\x1a.CMsgBotWorldState.Ability\x12)\n\x05items\x18[ \x03(\x0b\x32\x1a.CMsgBotWorldState.Ability\x12.\n\tmodifiers\x18\\ \x03(\x0b\x32\x1b.CMsgBotWorldState.Modifier\x12L\n\x1dincoming_tracking_projectiles\x18] \x03(\x0b\x32%.CMsgBotWorldState.TrackingProjectile\x12\x13\n\x0b\x61\x63tion_type\x18\x64 \x01(\r\x12\x1d\n\x15\x61\x62ility_target_handle\x18\x65 \x01(\r\x12\x19\n\x11primary_attribute\x18n \x01(\r\x12\x13\n\x0bis_illusion\x18o \x01(\x08\x12\x14\n\x0crespawn_time\x18p \x01(\r\x12\x14\n\x0c\x62uyback_cost\x18q \x01(\r\x12\x18\n\x10\x62uyback_cooldown\x18r \x01(\r\x12\x1a\n\x12spell_amplifiction\x18s \x01(\x02\x12\r\n\x05\x61rmor\x18t \x01(\r\x12\x14\n\x0cmagic_resist\x18u \x01(\r\x12\x0f\n\x07\x65vasion\x18v \x01(\x02\x12\x1a\n\x12xp_needed_to_level\x18x \x01(\r\x12\x16\n\x0e\x61\x62ility_points\x18y \x01(\r\x12\x0c\n\x04gold\x18z \x01(\r\x12\x11\n\tlast_hits\x18{ \x01(\r\x12\x0e\n\x06\x64\x65nies\x18| \x01(\r\x12\x1b\n\x12remaining_lifespan\x18\x82\x01 \x01(\x02\x12\x17\n\x0e\x66lying_courier\x18\x8c\x01 \x01(\x08\x12\x18\n\x0fshrine_cooldown\x18\x96\x01 \x01(\x02\x12\x1a\n\x11is_shrine_healing\x18\x97\x01 \x01(\x08\"\xb3\x01\n\x08UnitType\x12\x0b\n\x07INVALID\x10\x00\x12\x08\n\x04HERO\x10\x01\x12\x0e\n\nCREEP_HERO\x10\x02\x12\x0e\n\nLANE_CREEP\x10\x03\x12\x10\n\x0cJUNGLE_CREEP\x10\x04\x12\n\n\x06ROSHAN\x10\x05\x12\t\n\x05TOWER\x10\x06\x12\x0c\n\x08\x42\x41RRACKS\x10\x07\x12\n\n\x06SHRINE\x10\x08\x12\x08\n\x04\x46ORT\x10\t\x12\x0c\n\x08\x42UILDING\x10\n\x12\x0b\n\x07\x43OURIER\x10\x0b\x12\x08\n\x04WARD\x10\x0c')
    )
    
    
    
    _CMSGBOTWORLDSTATE_UNITTYPE = _descriptor.EnumDescriptor(
      name='UnitType',
      full_name='CMsgBotWorldState.UnitType',
      filename=None,
      file=DESCRIPTOR,
      values=[
        _descriptor.EnumValueDescriptor(
          name='INVALID', index=0, number=0,
          options=None,
          type=None),
        _descriptor.EnumValueDescriptor(
          name='HERO', index=1, number=1,
          options=None,
          type=None),
        _descriptor.EnumValueDescriptor(
          name='CREEP_HERO', index=2, number=2,
          options=None,
          type=None),
        _descriptor.EnumValueDescriptor(
          name='LANE_CREEP', index=3, number=3,
          options=None,
          type=None),
        _descriptor.EnumValueDescriptor(
          name='JUNGLE_CREEP', index=4, number=4,
          options=None,
          type=None),
        _descriptor.EnumValueDescriptor(
          name='ROSHAN', index=5, number=5,
          options=None,
          type=None),
        _descriptor.EnumValueDescriptor(
          name='TOWER', index=6, number=6,
          options=None,
          type=None),
        _descriptor.EnumValueDescriptor(
          name='BARRACKS', index=7, number=7,
          options=None,
          type=None),
        _descriptor.EnumValueDescriptor(
          name='SHRINE', index=8, number=8,
          options=None,
          type=None),
        _descriptor.EnumValueDescriptor(
          name='FORT', index=9, number=9,
          options=None,
          type=None),
        _descriptor.EnumValueDescriptor(
          name='BUILDING', index=10, number=10,
          options=None,
          type=None),
        _descriptor.EnumValueDescriptor(
          name='COURIER', index=11, number=11,
          options=None,
          type=None),
        _descriptor.EnumValueDescriptor(
          name='WARD', index=12, number=12,
          options=None,
          type=None),
      ],
      containing_type=None,
      options=None,
      serialized_start=4724,
      serialized_end=4903,
    )
    _sym_db.RegisterEnumDescriptor(_CMSGBOTWORLDSTATE_UNITTYPE)
    
    
    _CMSGBOTWORLDSTATE_VECTOR = _descriptor.Descriptor(
      name='Vector',
      full_name='CMsgBotWorldState.Vector',
      filename=None,
      file=DESCRIPTOR,
      containing_type=None,
      fields=[
        _descriptor.FieldDescriptor(
          name='x', full_name='CMsgBotWorldState.Vector.x', index=0,
          number=1, type=5, cpp_type=1, label=2,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='y', full_name='CMsgBotWorldState.Vector.y', index=1,
          number=2, type=5, cpp_type=1, label=2,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='z', full_name='CMsgBotWorldState.Vector.z', index=2,
          number=3, type=5, cpp_type=1, label=2,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
      ],
      extensions=[
      ],
      nested_types=[],
      enum_types=[
      ],
      options=None,
      is_extendable=False,
      syntax='proto2',
      extension_ranges=[],
      oneofs=[
      ],
      serialized_start=755,
      serialized_end=796,
    )
    
    _CMSGBOTWORLDSTATE_PLAYER = _descriptor.Descriptor(
      name='Player',
      full_name='CMsgBotWorldState.Player',
      filename=None,
      file=DESCRIPTOR,
      containing_type=None,
      fields=[
        _descriptor.FieldDescriptor(
          name='player_id', full_name='CMsgBotWorldState.Player.player_id', index=0,
          number=1, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='hero_id', full_name='CMsgBotWorldState.Player.hero_id', index=1,
          number=2, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='is_alive', full_name='CMsgBotWorldState.Player.is_alive', index=2,
          number=3, type=8, cpp_type=7, label=1,
          has_default_value=False, default_value=False,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='respawn_time', full_name='CMsgBotWorldState.Player.respawn_time', index=3,
          number=4, type=2, cpp_type=6, label=1,
          has_default_value=False, default_value=float(0),
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='kills', full_name='CMsgBotWorldState.Player.kills', index=4,
          number=5, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='deaths', full_name='CMsgBotWorldState.Player.deaths', index=5,
          number=6, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='assists', full_name='CMsgBotWorldState.Player.assists', index=6,
          number=7, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
      ],
      extensions=[
      ],
      nested_types=[],
      enum_types=[
      ],
      options=None,
      is_extendable=False,
      syntax='proto2',
      extension_ranges=[],
      oneofs=[
      ],
      serialized_start=799,
      serialized_end=931,
    )
    
    _CMSGBOTWORLDSTATE_ABILITY = _descriptor.Descriptor(
      name='Ability',
      full_name='CMsgBotWorldState.Ability',
      filename=None,
      file=DESCRIPTOR,
      containing_type=None,
      fields=[
        _descriptor.FieldDescriptor(
          name='handle', full_name='CMsgBotWorldState.Ability.handle', index=0,
          number=1, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='ability_id', full_name='CMsgBotWorldState.Ability.ability_id', index=1,
          number=2, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='slot', full_name='CMsgBotWorldState.Ability.slot', index=2,
          number=3, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='caster_handle', full_name='CMsgBotWorldState.Ability.caster_handle', index=3,
          number=5, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='level', full_name='CMsgBotWorldState.Ability.level', index=4,
          number=6, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='cast_range', full_name='CMsgBotWorldState.Ability.cast_range', index=5,
          number=10, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='channel_time', full_name='CMsgBotWorldState.Ability.channel_time', index=6,
          number=11, type=2, cpp_type=6, label=1,
          has_default_value=False, default_value=float(0),
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='cooldown_remaining', full_name='CMsgBotWorldState.Ability.cooldown_remaining', index=7,
          number=12, type=2, cpp_type=6, label=1,
          has_default_value=False, default_value=float(0),
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='is_activated', full_name='CMsgBotWorldState.Ability.is_activated', index=8,
          number=20, type=8, cpp_type=7, label=1,
          has_default_value=False, default_value=False,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='is_toggled', full_name='CMsgBotWorldState.Ability.is_toggled', index=9,
          number=21, type=8, cpp_type=7, label=1,
          has_default_value=False, default_value=False,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='is_in_ability_phase', full_name='CMsgBotWorldState.Ability.is_in_ability_phase', index=10,
          number=22, type=8, cpp_type=7, label=1,
          has_default_value=False, default_value=False,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='is_channeling', full_name='CMsgBotWorldState.Ability.is_channeling', index=11,
          number=23, type=8, cpp_type=7, label=1,
          has_default_value=False, default_value=False,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='is_stolen', full_name='CMsgBotWorldState.Ability.is_stolen', index=12,
          number=24, type=8, cpp_type=7, label=1,
          has_default_value=False, default_value=False,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='charges', full_name='CMsgBotWorldState.Ability.charges', index=13,
          number=30, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='secondary_charges', full_name='CMsgBotWorldState.Ability.secondary_charges', index=14,
          number=31, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='is_combined_locked', full_name='CMsgBotWorldState.Ability.is_combined_locked', index=15,
          number=40, type=8, cpp_type=7, label=1,
          has_default_value=False, default_value=False,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='power_treads_stat', full_name='CMsgBotWorldState.Ability.power_treads_stat', index=16,
          number=50, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
      ],
      extensions=[
      ],
      nested_types=[],
      enum_types=[
      ],
      options=None,
      is_extendable=False,
      syntax='proto2',
      extension_ranges=[],
      oneofs=[
      ],
      serialized_start=934,
      serialized_end=1313,
    )
    
    _CMSGBOTWORLDSTATE_DROPPEDITEM = _descriptor.Descriptor(
      name='DroppedItem',
      full_name='CMsgBotWorldState.DroppedItem',
      filename=None,
      file=DESCRIPTOR,
      containing_type=None,
      fields=[
        _descriptor.FieldDescriptor(
          name='item_id', full_name='CMsgBotWorldState.DroppedItem.item_id', index=0,
          number=1, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='location', full_name='CMsgBotWorldState.DroppedItem.location', index=1,
          number=2, type=11, cpp_type=10, label=1,
          has_default_value=False, default_value=None,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
      ],
      extensions=[
      ],
      nested_types=[],
      enum_types=[
      ],
      options=None,
      is_extendable=False,
      syntax='proto2',
      extension_ranges=[],
      oneofs=[
      ],
      serialized_start=1315,
      serialized_end=1390,
    )
    
    _CMSGBOTWORLDSTATE_RUNEINFO = _descriptor.Descriptor(
      name='RuneInfo',
      full_name='CMsgBotWorldState.RuneInfo',
      filename=None,
      file=DESCRIPTOR,
      containing_type=None,
      fields=[
        _descriptor.FieldDescriptor(
          name='type', full_name='CMsgBotWorldState.RuneInfo.type', index=0,
          number=1, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='location', full_name='CMsgBotWorldState.RuneInfo.location', index=1,
          number=2, type=11, cpp_type=10, label=1,
          has_default_value=False, default_value=None,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='status', full_name='CMsgBotWorldState.RuneInfo.status', index=2,
          number=3, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='time_since_seen', full_name='CMsgBotWorldState.RuneInfo.time_since_seen', index=3,
          number=4, type=2, cpp_type=6, label=1,
          has_default_value=False, default_value=float(0),
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
      ],
      extensions=[
      ],
      nested_types=[],
      enum_types=[
      ],
      options=None,
      is_extendable=False,
      syntax='proto2',
      extension_ranges=[],
      oneofs=[
      ],
      serialized_start=1392,
      serialized_end=1502,
    )
    
    _CMSGBOTWORLDSTATE_TELEPORTINFO = _descriptor.Descriptor(
      name='TeleportInfo',
      full_name='CMsgBotWorldState.TeleportInfo',
      filename=None,
      file=DESCRIPTOR,
      containing_type=None,
      fields=[
        _descriptor.FieldDescriptor(
          name='player_id', full_name='CMsgBotWorldState.TeleportInfo.player_id', index=0,
          number=1, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='location', full_name='CMsgBotWorldState.TeleportInfo.location', index=1,
          number=2, type=11, cpp_type=10, label=1,
          has_default_value=False, default_value=None,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='time_remaning', full_name='CMsgBotWorldState.TeleportInfo.time_remaning', index=2,
          number=3, type=2, cpp_type=6, label=1,
          has_default_value=False, default_value=float(0),
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
      ],
      extensions=[
      ],
      nested_types=[],
      enum_types=[
      ],
      options=None,
      is_extendable=False,
      syntax='proto2',
      extension_ranges=[],
      oneofs=[
      ],
      serialized_start=1504,
      serialized_end=1605,
    )
    
    _CMSGBOTWORLDSTATE_MODIFIER = _descriptor.Descriptor(
      name='Modifier',
      full_name='CMsgBotWorldState.Modifier',
      filename=None,
      file=DESCRIPTOR,
      containing_type=None,
      fields=[
        _descriptor.FieldDescriptor(
          name='name', full_name='CMsgBotWorldState.Modifier.name', index=0,
          number=1, type=9, cpp_type=9, label=1,
          has_default_value=False, default_value=_b("").decode('utf-8'),
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='stack_count', full_name='CMsgBotWorldState.Modifier.stack_count', index=1,
          number=2, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='remaining_duration', full_name='CMsgBotWorldState.Modifier.remaining_duration', index=2,
          number=3, type=2, cpp_type=6, label=1,
          has_default_value=False, default_value=float(0),
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='auxiliary_units_handles', full_name='CMsgBotWorldState.Modifier.auxiliary_units_handles', index=3,
          number=4, type=13, cpp_type=3, label=3,
          has_default_value=False, default_value=[],
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
      ],
      extensions=[
      ],
      nested_types=[],
      enum_types=[
      ],
      options=None,
      is_extendable=False,
      syntax='proto2',
      extension_ranges=[],
      oneofs=[
      ],
      serialized_start=1607,
      serialized_end=1713,
    )
    
    _CMSGBOTWORLDSTATE_LINEARPROJECTILE = _descriptor.Descriptor(
      name='LinearProjectile',
      full_name='CMsgBotWorldState.LinearProjectile',
      filename=None,
      file=DESCRIPTOR,
      containing_type=None,
      fields=[
        _descriptor.FieldDescriptor(
          name='handle', full_name='CMsgBotWorldState.LinearProjectile.handle', index=0,
          number=1, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='caster_handle', full_name='CMsgBotWorldState.LinearProjectile.caster_handle', index=1,
          number=2, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='caster_player_id', full_name='CMsgBotWorldState.LinearProjectile.caster_player_id', index=2,
          number=3, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='ability_handle', full_name='CMsgBotWorldState.LinearProjectile.ability_handle', index=3,
          number=4, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='location', full_name='CMsgBotWorldState.LinearProjectile.location', index=4,
          number=5, type=11, cpp_type=10, label=1,
          has_default_value=False, default_value=None,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='velocity', full_name='CMsgBotWorldState.LinearProjectile.velocity', index=5,
          number=6, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='radius', full_name='CMsgBotWorldState.LinearProjectile.radius', index=6,
          number=7, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
      ],
      extensions=[
      ],
      nested_types=[],
      enum_types=[
      ],
      options=None,
      is_extendable=False,
      syntax='proto2',
      extension_ranges=[],
      oneofs=[
      ],
      serialized_start=1716,
      serialized_end=1902,
    )
    
    _CMSGBOTWORLDSTATE_TRACKINGPROJECTILE = _descriptor.Descriptor(
      name='TrackingProjectile',
      full_name='CMsgBotWorldState.TrackingProjectile',
      filename=None,
      file=DESCRIPTOR,
      containing_type=None,
      fields=[
        _descriptor.FieldDescriptor(
          name='caster_handle', full_name='CMsgBotWorldState.TrackingProjectile.caster_handle', index=0,
          number=1, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='caster_player_id', full_name='CMsgBotWorldState.TrackingProjectile.caster_player_id', index=1,
          number=2, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='ability_handle', full_name='CMsgBotWorldState.TrackingProjectile.ability_handle', index=2,
          number=3, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='location', full_name='CMsgBotWorldState.TrackingProjectile.location', index=3,
          number=4, type=11, cpp_type=10, label=1,
          has_default_value=False, default_value=None,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='velocity', full_name='CMsgBotWorldState.TrackingProjectile.velocity', index=4,
          number=5, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='is_dodgeable', full_name='CMsgBotWorldState.TrackingProjectile.is_dodgeable', index=5,
          number=6, type=8, cpp_type=7, label=1,
          has_default_value=False, default_value=False,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='is_attack', full_name='CMsgBotWorldState.TrackingProjectile.is_attack', index=6,
          number=7, type=8, cpp_type=7, label=1,
          has_default_value=False, default_value=False,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
      ],
      extensions=[
      ],
      nested_types=[],
      enum_types=[
      ],
      options=None,
      is_extendable=False,
      syntax='proto2',
      extension_ranges=[],
      oneofs=[
      ],
      serialized_start=1905,
      serialized_end=2102,
    )
    
    _CMSGBOTWORLDSTATE_EVENTABILITY = _descriptor.Descriptor(
      name='EventAbility',
      full_name='CMsgBotWorldState.EventAbility',
      filename=None,
      file=DESCRIPTOR,
      containing_type=None,
      fields=[
        _descriptor.FieldDescriptor(
          name='ability_id', full_name='CMsgBotWorldState.EventAbility.ability_id', index=0,
          number=1, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='player_id', full_name='CMsgBotWorldState.EventAbility.player_id', index=1,
          number=2, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='unit_handle', full_name='CMsgBotWorldState.EventAbility.unit_handle', index=2,
          number=3, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='location', full_name='CMsgBotWorldState.EventAbility.location', index=3,
          number=4, type=11, cpp_type=10, label=1,
          has_default_value=False, default_value=None,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='is_channel_start', full_name='CMsgBotWorldState.EventAbility.is_channel_start', index=4,
          number=5, type=8, cpp_type=7, label=1,
          has_default_value=False, default_value=False,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
      ],
      extensions=[
      ],
      nested_types=[],
      enum_types=[
      ],
      options=None,
      is_extendable=False,
      syntax='proto2',
      extension_ranges=[],
      oneofs=[
      ],
      serialized_start=2105,
      serialized_end=2250,
    )
    
    _CMSGBOTWORLDSTATE_EVENTDAMAGE = _descriptor.Descriptor(
      name='EventDamage',
      full_name='CMsgBotWorldState.EventDamage',
      filename=None,
      file=DESCRIPTOR,
      containing_type=None,
      fields=[
        _descriptor.FieldDescriptor(
          name='damage', full_name='CMsgBotWorldState.EventDamage.damage', index=0,
          number=1, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='victim_player_id', full_name='CMsgBotWorldState.EventDamage.victim_player_id', index=1,
          number=2, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='victim_unit_handle', full_name='CMsgBotWorldState.EventDamage.victim_unit_handle', index=2,
          number=3, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='attacker_player_id', full_name='CMsgBotWorldState.EventDamage.attacker_player_id', index=3,
          number=4, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='attacker_unit_handle', full_name='CMsgBotWorldState.EventDamage.attacker_unit_handle', index=4,
          number=5, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='ability_id', full_name='CMsgBotWorldState.EventDamage.ability_id', index=5,
          number=6, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
      ],
      extensions=[
      ],
      nested_types=[],
      enum_types=[
      ],
      options=None,
      is_extendable=False,
      syntax='proto2',
      extension_ranges=[],
      oneofs=[
      ],
      serialized_start=2253,
      serialized_end=2414,
    )
    
    _CMSGBOTWORLDSTATE_EVENTCOURIERKILLED = _descriptor.Descriptor(
      name='EventCourierKilled',
      full_name='CMsgBotWorldState.EventCourierKilled',
      filename=None,
      file=DESCRIPTOR,
      containing_type=None,
      fields=[
        _descriptor.FieldDescriptor(
          name='team_id', full_name='CMsgBotWorldState.EventCourierKilled.team_id', index=0,
          number=1, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='courier_unit_handle', full_name='CMsgBotWorldState.EventCourierKilled.courier_unit_handle', index=1,
          number=2, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='killer_player_id', full_name='CMsgBotWorldState.EventCourierKilled.killer_player_id', index=2,
          number=3, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='killer_unit_handle', full_name='CMsgBotWorldState.EventCourierKilled.killer_unit_handle', index=3,
          number=4, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
      ],
      extensions=[
      ],
      nested_types=[],
      enum_types=[
      ],
      options=None,
      is_extendable=False,
      syntax='proto2',
      extension_ranges=[],
      oneofs=[
      ],
      serialized_start=2416,
      serialized_end=2536,
    )
    
    _CMSGBOTWORLDSTATE_EVENTROSHANKILLED = _descriptor.Descriptor(
      name='EventRoshanKilled',
      full_name='CMsgBotWorldState.EventRoshanKilled',
      filename=None,
      file=DESCRIPTOR,
      containing_type=None,
      fields=[
        _descriptor.FieldDescriptor(
          name='killer_player_id', full_name='CMsgBotWorldState.EventRoshanKilled.killer_player_id', index=0,
          number=1, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='killer_unit_handle', full_name='CMsgBotWorldState.EventRoshanKilled.killer_unit_handle', index=1,
          number=2, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
      ],
      extensions=[
      ],
      nested_types=[],
      enum_types=[
      ],
      options=None,
      is_extendable=False,
      syntax='proto2',
      extension_ranges=[],
      oneofs=[
      ],
      serialized_start=2538,
      serialized_end=2611,
    )
    
    _CMSGBOTWORLDSTATE_EVENTTREE = _descriptor.Descriptor(
      name='EventTree',
      full_name='CMsgBotWorldState.EventTree',
      filename=None,
      file=DESCRIPTOR,
      containing_type=None,
      fields=[
        _descriptor.FieldDescriptor(
          name='tree_id', full_name='CMsgBotWorldState.EventTree.tree_id', index=0,
          number=1, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='destroyed', full_name='CMsgBotWorldState.EventTree.destroyed', index=1,
          number=2, type=8, cpp_type=7, label=1,
          has_default_value=False, default_value=False,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='respawned', full_name='CMsgBotWorldState.EventTree.respawned', index=2,
          number=3, type=8, cpp_type=7, label=1,
          has_default_value=False, default_value=False,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='location', full_name='CMsgBotWorldState.EventTree.location', index=3,
          number=4, type=11, cpp_type=10, label=1,
          has_default_value=False, default_value=None,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
      ],
      extensions=[
      ],
      nested_types=[],
      enum_types=[
      ],
      options=None,
      is_extendable=False,
      syntax='proto2',
      extension_ranges=[],
      oneofs=[
      ],
      serialized_start=2613,
      serialized_end=2724,
    )
    
    _CMSGBOTWORLDSTATE_UNIT = _descriptor.Descriptor(
      name='Unit',
      full_name='CMsgBotWorldState.Unit',
      filename=None,
      file=DESCRIPTOR,
      containing_type=None,
      fields=[
        _descriptor.FieldDescriptor(
          name='handle', full_name='CMsgBotWorldState.Unit.handle', index=0,
          number=1, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='unit_type', full_name='CMsgBotWorldState.Unit.unit_type', index=1,
          number=2, type=14, cpp_type=8, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='name', full_name='CMsgBotWorldState.Unit.name', index=2,
          number=3, type=9, cpp_type=9, label=1,
          has_default_value=False, default_value=_b("").decode('utf-8'),
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='team_id', full_name='CMsgBotWorldState.Unit.team_id', index=3,
          number=4, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='level', full_name='CMsgBotWorldState.Unit.level', index=4,
          number=5, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='location', full_name='CMsgBotWorldState.Unit.location', index=5,
          number=6, type=11, cpp_type=10, label=1,
          has_default_value=False, default_value=None,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='is_alive', full_name='CMsgBotWorldState.Unit.is_alive', index=6,
          number=7, type=8, cpp_type=7, label=1,
          has_default_value=False, default_value=False,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='bounding_radius', full_name='CMsgBotWorldState.Unit.bounding_radius', index=7,
          number=10, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='facing', full_name='CMsgBotWorldState.Unit.facing', index=8,
          number=11, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='ground_height', full_name='CMsgBotWorldState.Unit.ground_height', index=9,
          number=12, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='vision_range_daytime', full_name='CMsgBotWorldState.Unit.vision_range_daytime', index=10,
          number=15, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='vision_range_nighttime', full_name='CMsgBotWorldState.Unit.vision_range_nighttime', index=11,
          number=16, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='health', full_name='CMsgBotWorldState.Unit.health', index=12,
          number=20, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='health_max', full_name='CMsgBotWorldState.Unit.health_max', index=13,
          number=21, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='health_regen', full_name='CMsgBotWorldState.Unit.health_regen', index=14,
          number=22, type=2, cpp_type=6, label=1,
          has_default_value=False, default_value=float(0),
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='mana', full_name='CMsgBotWorldState.Unit.mana', index=15,
          number=25, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='mana_max', full_name='CMsgBotWorldState.Unit.mana_max', index=16,
          number=26, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='mana_regen', full_name='CMsgBotWorldState.Unit.mana_regen', index=17,
          number=27, type=2, cpp_type=6, label=1,
          has_default_value=False, default_value=float(0),
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='base_movement_speed', full_name='CMsgBotWorldState.Unit.base_movement_speed', index=18,
          number=30, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='current_movement_speed', full_name='CMsgBotWorldState.Unit.current_movement_speed', index=19,
          number=31, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='anim_activity', full_name='CMsgBotWorldState.Unit.anim_activity', index=20,
          number=35, type=5, cpp_type=1, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='anim_cycle', full_name='CMsgBotWorldState.Unit.anim_cycle', index=21,
          number=36, type=2, cpp_type=6, label=1,
          has_default_value=False, default_value=float(0),
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='base_damage', full_name='CMsgBotWorldState.Unit.base_damage', index=22,
          number=40, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='base_damage_variance', full_name='CMsgBotWorldState.Unit.base_damage_variance', index=23,
          number=41, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='bonus_damage', full_name='CMsgBotWorldState.Unit.bonus_damage', index=24,
          number=42, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='attack_damage', full_name='CMsgBotWorldState.Unit.attack_damage', index=25,
          number=43, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='attack_range', full_name='CMsgBotWorldState.Unit.attack_range', index=26,
          number=44, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='attack_speed', full_name='CMsgBotWorldState.Unit.attack_speed', index=27,
          number=45, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='attack_anim_point', full_name='CMsgBotWorldState.Unit.attack_anim_point', index=28,
          number=46, type=2, cpp_type=6, label=1,
          has_default_value=False, default_value=float(0),
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='attack_acquisition_range', full_name='CMsgBotWorldState.Unit.attack_acquisition_range', index=29,
          number=47, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='attack_projectile_speed', full_name='CMsgBotWorldState.Unit.attack_projectile_speed', index=30,
          number=48, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='attack_target_handle', full_name='CMsgBotWorldState.Unit.attack_target_handle', index=31,
          number=49, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='bounty_xp', full_name='CMsgBotWorldState.Unit.bounty_xp', index=32,
          number=60, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='bounty_gold_min', full_name='CMsgBotWorldState.Unit.bounty_gold_min', index=33,
          number=61, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='bounty_gold_max', full_name='CMsgBotWorldState.Unit.bounty_gold_max', index=34,
          number=62, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='is_channeling', full_name='CMsgBotWorldState.Unit.is_channeling', index=35,
          number=65, type=8, cpp_type=7, label=1,
          has_default_value=False, default_value=False,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='active_ability_handle', full_name='CMsgBotWorldState.Unit.active_ability_handle', index=36,
          number=66, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='is_attack_immune', full_name='CMsgBotWorldState.Unit.is_attack_immune', index=37,
          number=70, type=8, cpp_type=7, label=1,
          has_default_value=False, default_value=False,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='is_blind', full_name='CMsgBotWorldState.Unit.is_blind', index=38,
          number=71, type=8, cpp_type=7, label=1,
          has_default_value=False, default_value=False,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='is_block_disabled', full_name='CMsgBotWorldState.Unit.is_block_disabled', index=39,
          number=72, type=8, cpp_type=7, label=1,
          has_default_value=False, default_value=False,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='is_disarmed', full_name='CMsgBotWorldState.Unit.is_disarmed', index=40,
          number=73, type=8, cpp_type=7, label=1,
          has_default_value=False, default_value=False,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='is_dominated', full_name='CMsgBotWorldState.Unit.is_dominated', index=41,
          number=74, type=8, cpp_type=7, label=1,
          has_default_value=False, default_value=False,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='is_evade_disabled', full_name='CMsgBotWorldState.Unit.is_evade_disabled', index=42,
          number=75, type=8, cpp_type=7, label=1,
          has_default_value=False, default_value=False,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='is_hexed', full_name='CMsgBotWorldState.Unit.is_hexed', index=43,
          number=76, type=8, cpp_type=7, label=1,
          has_default_value=False, default_value=False,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='is_invisible', full_name='CMsgBotWorldState.Unit.is_invisible', index=44,
          number=77, type=8, cpp_type=7, label=1,
          has_default_value=False, default_value=False,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='is_invulnerable', full_name='CMsgBotWorldState.Unit.is_invulnerable', index=45,
          number=78, type=8, cpp_type=7, label=1,
          has_default_value=False, default_value=False,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='is_magic_immune', full_name='CMsgBotWorldState.Unit.is_magic_immune', index=46,
          number=79, type=8, cpp_type=7, label=1,
          has_default_value=False, default_value=False,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='is_muted', full_name='CMsgBotWorldState.Unit.is_muted', index=47,
          number=80, type=8, cpp_type=7, label=1,
          has_default_value=False, default_value=False,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='is_nightmared', full_name='CMsgBotWorldState.Unit.is_nightmared', index=48,
          number=82, type=8, cpp_type=7, label=1,
          has_default_value=False, default_value=False,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='is_rooted', full_name='CMsgBotWorldState.Unit.is_rooted', index=49,
          number=83, type=8, cpp_type=7, label=1,
          has_default_value=False, default_value=False,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='is_silenced', full_name='CMsgBotWorldState.Unit.is_silenced', index=50,
          number=84, type=8, cpp_type=7, label=1,
          has_default_value=False, default_value=False,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='is_specially_deniable', full_name='CMsgBotWorldState.Unit.is_specially_deniable', index=51,
          number=85, type=8, cpp_type=7, label=1,
          has_default_value=False, default_value=False,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='is_stunned', full_name='CMsgBotWorldState.Unit.is_stunned', index=52,
          number=86, type=8, cpp_type=7, label=1,
          has_default_value=False, default_value=False,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='is_unable_to_miss', full_name='CMsgBotWorldState.Unit.is_unable_to_miss', index=53,
          number=87, type=8, cpp_type=7, label=1,
          has_default_value=False, default_value=False,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='has_scepter', full_name='CMsgBotWorldState.Unit.has_scepter', index=54,
          number=88, type=8, cpp_type=7, label=1,
          has_default_value=False, default_value=False,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='abilities', full_name='CMsgBotWorldState.Unit.abilities', index=55,
          number=90, type=11, cpp_type=10, label=3,
          has_default_value=False, default_value=[],
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='items', full_name='CMsgBotWorldState.Unit.items', index=56,
          number=91, type=11, cpp_type=10, label=3,
          has_default_value=False, default_value=[],
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='modifiers', full_name='CMsgBotWorldState.Unit.modifiers', index=57,
          number=92, type=11, cpp_type=10, label=3,
          has_default_value=False, default_value=[],
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='incoming_tracking_projectiles', full_name='CMsgBotWorldState.Unit.incoming_tracking_projectiles', index=58,
          number=93, type=11, cpp_type=10, label=3,
          has_default_value=False, default_value=[],
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='action_type', full_name='CMsgBotWorldState.Unit.action_type', index=59,
          number=100, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='ability_target_handle', full_name='CMsgBotWorldState.Unit.ability_target_handle', index=60,
          number=101, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='primary_attribute', full_name='CMsgBotWorldState.Unit.primary_attribute', index=61,
          number=110, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='is_illusion', full_name='CMsgBotWorldState.Unit.is_illusion', index=62,
          number=111, type=8, cpp_type=7, label=1,
          has_default_value=False, default_value=False,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='respawn_time', full_name='CMsgBotWorldState.Unit.respawn_time', index=63,
          number=112, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='buyback_cost', full_name='CMsgBotWorldState.Unit.buyback_cost', index=64,
          number=113, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='buyback_cooldown', full_name='CMsgBotWorldState.Unit.buyback_cooldown', index=65,
          number=114, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='spell_amplifiction', full_name='CMsgBotWorldState.Unit.spell_amplifiction', index=66,
          number=115, type=2, cpp_type=6, label=1,
          has_default_value=False, default_value=float(0),
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='armor', full_name='CMsgBotWorldState.Unit.armor', index=67,
          number=116, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='magic_resist', full_name='CMsgBotWorldState.Unit.magic_resist', index=68,
          number=117, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='evasion', full_name='CMsgBotWorldState.Unit.evasion', index=69,
          number=118, type=2, cpp_type=6, label=1,
          has_default_value=False, default_value=float(0),
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='xp_needed_to_level', full_name='CMsgBotWorldState.Unit.xp_needed_to_level', index=70,
          number=120, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='ability_points', full_name='CMsgBotWorldState.Unit.ability_points', index=71,
          number=121, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='gold', full_name='CMsgBotWorldState.Unit.gold', index=72,
          number=122, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='last_hits', full_name='CMsgBotWorldState.Unit.last_hits', index=73,
          number=123, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='denies', full_name='CMsgBotWorldState.Unit.denies', index=74,
          number=124, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='remaining_lifespan', full_name='CMsgBotWorldState.Unit.remaining_lifespan', index=75,
          number=130, type=2, cpp_type=6, label=1,
          has_default_value=False, default_value=float(0),
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='flying_courier', full_name='CMsgBotWorldState.Unit.flying_courier', index=76,
          number=140, type=8, cpp_type=7, label=1,
          has_default_value=False, default_value=False,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='shrine_cooldown', full_name='CMsgBotWorldState.Unit.shrine_cooldown', index=77,
          number=150, type=2, cpp_type=6, label=1,
          has_default_value=False, default_value=float(0),
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='is_shrine_healing', full_name='CMsgBotWorldState.Unit.is_shrine_healing', index=78,
          number=151, type=8, cpp_type=7, label=1,
          has_default_value=False, default_value=False,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
      ],
      extensions=[
      ],
      nested_types=[],
      enum_types=[
      ],
      options=None,
      is_extendable=False,
      syntax='proto2',
      extension_ranges=[],
      oneofs=[
      ],
      serialized_start=2727,
      serialized_end=4721,
    )
    
    _CMSGBOTWORLDSTATE = _descriptor.Descriptor(
      name='CMsgBotWorldState',
      full_name='CMsgBotWorldState',
      filename=None,
      file=DESCRIPTOR,
      containing_type=None,
      fields=[
        _descriptor.FieldDescriptor(
          name='team_id', full_name='CMsgBotWorldState.team_id', index=0,
          number=1, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='game_time', full_name='CMsgBotWorldState.game_time', index=1,
          number=2, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='game_state', full_name='CMsgBotWorldState.game_state', index=2,
          number=3, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='hero_pick_state', full_name='CMsgBotWorldState.hero_pick_state', index=3,
          number=4, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='time_of_day', full_name='CMsgBotWorldState.time_of_day', index=4,
          number=5, type=2, cpp_type=6, label=1,
          has_default_value=False, default_value=float(0),
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='glyph_cooldown', full_name='CMsgBotWorldState.glyph_cooldown', index=5,
          number=6, type=2, cpp_type=6, label=1,
          has_default_value=False, default_value=float(0),
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='glyph_cooldown_enemy', full_name='CMsgBotWorldState.glyph_cooldown_enemy', index=6,
          number=7, type=13, cpp_type=3, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='players', full_name='CMsgBotWorldState.players', index=7,
          number=10, type=11, cpp_type=10, label=3,
          has_default_value=False, default_value=[],
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='units', full_name='CMsgBotWorldState.units', index=8,
          number=11, type=11, cpp_type=10, label=3,
          has_default_value=False, default_value=[],
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='dropped_items', full_name='CMsgBotWorldState.dropped_items', index=9,
          number=12, type=11, cpp_type=10, label=3,
          has_default_value=False, default_value=[],
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='rune_infos', full_name='CMsgBotWorldState.rune_infos', index=10,
          number=13, type=11, cpp_type=10, label=3,
          has_default_value=False, default_value=[],
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='incoming_teleports', full_name='CMsgBotWorldState.incoming_teleports', index=11,
          number=14, type=11, cpp_type=10, label=3,
          has_default_value=False, default_value=[],
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='ability_events', full_name='CMsgBotWorldState.ability_events', index=12,
          number=20, type=11, cpp_type=10, label=3,
          has_default_value=False, default_value=[],
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='damage_events', full_name='CMsgBotWorldState.damage_events', index=13,
          number=21, type=11, cpp_type=10, label=3,
          has_default_value=False, default_value=[],
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='courier_killed_events', full_name='CMsgBotWorldState.courier_killed_events', index=14,
          number=22, type=11, cpp_type=10, label=3,
          has_default_value=False, default_value=[],
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='roshan_killed_events', full_name='CMsgBotWorldState.roshan_killed_events', index=15,
          number=23, type=11, cpp_type=10, label=3,
          has_default_value=False, default_value=[],
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
        _descriptor.FieldDescriptor(
          name='tree_events', full_name='CMsgBotWorldState.tree_events', index=16,
          number=24, type=11, cpp_type=10, label=3,
          has_default_value=False, default_value=[],
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None),
      ],
      extensions=[
      ],
      nested_types=[_CMSGBOTWORLDSTATE_VECTOR, _CMSGBOTWORLDSTATE_PLAYER, _CMSGBOTWORLDSTATE_ABILITY, _CMSGBOTWORLDSTATE_DROPPEDITEM, _CMSGBOTWORLDSTATE_RUNEINFO, _CMSGBOTWORLDSTATE_TELEPORTINFO, _CMSGBOTWORLDSTATE_MODIFIER, _CMSGBOTWORLDSTATE_LINEARPROJECTILE, _CMSGBOTWORLDSTATE_TRACKINGPROJECTILE, _CMSGBOTWORLDSTATE_EVENTABILITY, _CMSGBOTWORLDSTATE_EVENTDAMAGE, _CMSGBOTWORLDSTATE_EVENTCOURIERKILLED, _CMSGBOTWORLDSTATE_EVENTROSHANKILLED, _CMSGBOTWORLDSTATE_EVENTTREE, _CMSGBOTWORLDSTATE_UNIT, ],
      enum_types=[
        _CMSGBOTWORLDSTATE_UNITTYPE,
      ],
      options=None,
      is_extendable=False,
      syntax='proto2',
      extension_ranges=[],
      oneofs=[
      ],
      serialized_start=28,
      serialized_end=4903,
    )
    
    _CMSGBOTWORLDSTATE_VECTOR.containing_type = _CMSGBOTWORLDSTATE
    _CMSGBOTWORLDSTATE_PLAYER.containing_type = _CMSGBOTWORLDSTATE
    _CMSGBOTWORLDSTATE_ABILITY.containing_type = _CMSGBOTWORLDSTATE
    _CMSGBOTWORLDSTATE_DROPPEDITEM.fields_by_name['location'].message_type = _CMSGBOTWORLDSTATE_VECTOR
    _CMSGBOTWORLDSTATE_DROPPEDITEM.containing_type = _CMSGBOTWORLDSTATE
    _CMSGBOTWORLDSTATE_RUNEINFO.fields_by_name['location'].message_type = _CMSGBOTWORLDSTATE_VECTOR
    _CMSGBOTWORLDSTATE_RUNEINFO.containing_type = _CMSGBOTWORLDSTATE
    _CMSGBOTWORLDSTATE_TELEPORTINFO.fields_by_name['location'].message_type = _CMSGBOTWORLDSTATE_VECTOR
    _CMSGBOTWORLDSTATE_TELEPORTINFO.containing_type = _CMSGBOTWORLDSTATE
    _CMSGBOTWORLDSTATE_MODIFIER.containing_type = _CMSGBOTWORLDSTATE
    _CMSGBOTWORLDSTATE_LINEARPROJECTILE.fields_by_name['location'].message_type = _CMSGBOTWORLDSTATE_VECTOR
    _CMSGBOTWORLDSTATE_LINEARPROJECTILE.containing_type = _CMSGBOTWORLDSTATE
    _CMSGBOTWORLDSTATE_TRACKINGPROJECTILE.fields_by_name['location'].message_type = _CMSGBOTWORLDSTATE_VECTOR
    _CMSGBOTWORLDSTATE_TRACKINGPROJECTILE.containing_type = _CMSGBOTWORLDSTATE
    _CMSGBOTWORLDSTATE_EVENTABILITY.fields_by_name['location'].message_type = _CMSGBOTWORLDSTATE_VECTOR
    _CMSGBOTWORLDSTATE_EVENTABILITY.containing_type = _CMSGBOTWORLDSTATE
    _CMSGBOTWORLDSTATE_EVENTDAMAGE.containing_type = _CMSGBOTWORLDSTATE
    _CMSGBOTWORLDSTATE_EVENTCOURIERKILLED.containing_type = _CMSGBOTWORLDSTATE
    _CMSGBOTWORLDSTATE_EVENTROSHANKILLED.containing_type = _CMSGBOTWORLDSTATE
    _CMSGBOTWORLDSTATE_EVENTTREE.fields_by_name['location'].message_type = _CMSGBOTWORLDSTATE_VECTOR
    _CMSGBOTWORLDSTATE_EVENTTREE.containing_type = _CMSGBOTWORLDSTATE
    _CMSGBOTWORLDSTATE_UNIT.fields_by_name['unit_type'].enum_type = _CMSGBOTWORLDSTATE_UNITTYPE
    _CMSGBOTWORLDSTATE_UNIT.fields_by_name['location'].message_type = _CMSGBOTWORLDSTATE_VECTOR
    _CMSGBOTWORLDSTATE_UNIT.fields_by_name['abilities'].message_type = _CMSGBOTWORLDSTATE_ABILITY
    _CMSGBOTWORLDSTATE_UNIT.fields_by_name['items'].message_type = _CMSGBOTWORLDSTATE_ABILITY
    _CMSGBOTWORLDSTATE_UNIT.fields_by_name['modifiers'].message_type = _CMSGBOTWORLDSTATE_MODIFIER
    _CMSGBOTWORLDSTATE_UNIT.fields_by_name['incoming_tracking_projectiles'].message_type = _CMSGBOTWORLDSTATE_TRACKINGPROJECTILE
    _CMSGBOTWORLDSTATE_UNIT.containing_type = _CMSGBOTWORLDSTATE
    _CMSGBOTWORLDSTATE.fields_by_name['players'].message_type = _CMSGBOTWORLDSTATE_PLAYER
    _CMSGBOTWORLDSTATE.fields_by_name['units'].message_type = _CMSGBOTWORLDSTATE_UNIT
    _CMSGBOTWORLDSTATE.fields_by_name['dropped_items'].message_type = _CMSGBOTWORLDSTATE_DROPPEDITEM
    _CMSGBOTWORLDSTATE.fields_by_name['rune_infos'].message_type = _CMSGBOTWORLDSTATE_RUNEINFO
    _CMSGBOTWORLDSTATE.fields_by_name['incoming_teleports'].message_type = _CMSGBOTWORLDSTATE_TELEPORTINFO
    _CMSGBOTWORLDSTATE.fields_by_name['ability_events'].message_type = _CMSGBOTWORLDSTATE_EVENTABILITY
    _CMSGBOTWORLDSTATE.fields_by_name['damage_events'].message_type = _CMSGBOTWORLDSTATE_EVENTDAMAGE
    _CMSGBOTWORLDSTATE.fields_by_name['courier_killed_events'].message_type = _CMSGBOTWORLDSTATE_EVENTCOURIERKILLED
    _CMSGBOTWORLDSTATE.fields_by_name['roshan_killed_events'].message_type = _CMSGBOTWORLDSTATE_EVENTROSHANKILLED
    _CMSGBOTWORLDSTATE.fields_by_name['tree_events'].message_type = _CMSGBOTWORLDSTATE_EVENTTREE
    _CMSGBOTWORLDSTATE_UNITTYPE.containing_type = _CMSGBOTWORLDSTATE
    DESCRIPTOR.message_types_by_name['CMsgBotWorldState'] = _CMSGBOTWORLDSTATE
    _sym_db.RegisterFileDescriptor(DESCRIPTOR)
    
    CMsgBotWorldState = _reflection.GeneratedProtocolMessageType('CMsgBotWorldState', (_message.Message,), dict(
    
      Vector = _reflection.GeneratedProtocolMessageType('Vector', (_message.Message,), dict(
        DESCRIPTOR = _CMSGBOTWORLDSTATE_VECTOR,
        __module__ = 'CMsgBotWorldState_pb2'
        # @@protoc_insertion_point(class_scope:CMsgBotWorldState.Vector)
        ))
      ,
    
      Player = _reflection.GeneratedProtocolMessageType('Player', (_message.Message,), dict(
        DESCRIPTOR = _CMSGBOTWORLDSTATE_PLAYER,
        __module__ = 'CMsgBotWorldState_pb2'
        # @@protoc_insertion_point(class_scope:CMsgBotWorldState.Player)
        ))
      ,
    
      Ability = _reflection.GeneratedProtocolMessageType('Ability', (_message.Message,), dict(
        DESCRIPTOR = _CMSGBOTWORLDSTATE_ABILITY,
        __module__ = 'CMsgBotWorldState_pb2'
        # @@protoc_insertion_point(class_scope:CMsgBotWorldState.Ability)
        ))
      ,
    
      DroppedItem = _reflection.GeneratedProtocolMessageType('DroppedItem', (_message.Message,), dict(
        DESCRIPTOR = _CMSGBOTWORLDSTATE_DROPPEDITEM,
        __module__ = 'CMsgBotWorldState_pb2'
        # @@protoc_insertion_point(class_scope:CMsgBotWorldState.DroppedItem)
        ))
      ,
    
      RuneInfo = _reflection.GeneratedProtocolMessageType('RuneInfo', (_message.Message,), dict(
        DESCRIPTOR = _CMSGBOTWORLDSTATE_RUNEINFO,
        __module__ = 'CMsgBotWorldState_pb2'
        # @@protoc_insertion_point(class_scope:CMsgBotWorldState.RuneInfo)
        ))
      ,
    
      TeleportInfo = _reflection.GeneratedProtocolMessageType('TeleportInfo', (_message.Message,), dict(
        DESCRIPTOR = _CMSGBOTWORLDSTATE_TELEPORTINFO,
        __module__ = 'CMsgBotWorldState_pb2'
        # @@protoc_insertion_point(class_scope:CMsgBotWorldState.TeleportInfo)
        ))
      ,
    
      Modifier = _reflection.GeneratedProtocolMessageType('Modifier', (_message.Message,), dict(
        DESCRIPTOR = _CMSGBOTWORLDSTATE_MODIFIER,
        __module__ = 'CMsgBotWorldState_pb2'
        # @@protoc_insertion_point(class_scope:CMsgBotWorldState.Modifier)
        ))
      ,
    
      LinearProjectile = _reflection.GeneratedProtocolMessageType('LinearProjectile', (_message.Message,), dict(
        DESCRIPTOR = _CMSGBOTWORLDSTATE_LINEARPROJECTILE,
        __module__ = 'CMsgBotWorldState_pb2'
        # @@protoc_insertion_point(class_scope:CMsgBotWorldState.LinearProjectile)
        ))
      ,
    
      TrackingProjectile = _reflection.GeneratedProtocolMessageType('TrackingProjectile', (_message.Message,), dict(
        DESCRIPTOR = _CMSGBOTWORLDSTATE_TRACKINGPROJECTILE,
        __module__ = 'CMsgBotWorldState_pb2'
        # @@protoc_insertion_point(class_scope:CMsgBotWorldState.TrackingProjectile)
        ))
      ,
    
      EventAbility = _reflection.GeneratedProtocolMessageType('EventAbility', (_message.Message,), dict(
        DESCRIPTOR = _CMSGBOTWORLDSTATE_EVENTABILITY,
        __module__ = 'CMsgBotWorldState_pb2'
        # @@protoc_insertion_point(class_scope:CMsgBotWorldState.EventAbility)
        ))
      ,
    
      EventDamage = _reflection.GeneratedProtocolMessageType('EventDamage', (_message.Message,), dict(
        DESCRIPTOR = _CMSGBOTWORLDSTATE_EVENTDAMAGE,
        __module__ = 'CMsgBotWorldState_pb2'
        # @@protoc_insertion_point(class_scope:CMsgBotWorldState.EventDamage)
        ))
      ,
    
      EventCourierKilled = _reflection.GeneratedProtocolMessageType('EventCourierKilled', (_message.Message,), dict(
        DESCRIPTOR = _CMSGBOTWORLDSTATE_EVENTCOURIERKILLED,
        __module__ = 'CMsgBotWorldState_pb2'
        # @@protoc_insertion_point(class_scope:CMsgBotWorldState.EventCourierKilled)
        ))
      ,
    
      EventRoshanKilled = _reflection.GeneratedProtocolMessageType('EventRoshanKilled', (_message.Message,), dict(
        DESCRIPTOR = _CMSGBOTWORLDSTATE_EVENTROSHANKILLED,
        __module__ = 'CMsgBotWorldState_pb2'
        # @@protoc_insertion_point(class_scope:CMsgBotWorldState.EventRoshanKilled)
        ))
      ,
    
      EventTree = _reflection.GeneratedProtocolMessageType('EventTree', (_message.Message,), dict(
        DESCRIPTOR = _CMSGBOTWORLDSTATE_EVENTTREE,
        __module__ = 'CMsgBotWorldState_pb2'
        # @@protoc_insertion_point(class_scope:CMsgBotWorldState.EventTree)
        ))
      ,
    
      Unit = _reflection.GeneratedProtocolMessageType('Unit', (_message.Message,), dict(
        DESCRIPTOR = _CMSGBOTWORLDSTATE_UNIT,
        __module__ = 'CMsgBotWorldState_pb2'
        # @@protoc_insertion_point(class_scope:CMsgBotWorldState.Unit)
        ))
      ,
      DESCRIPTOR = _CMSGBOTWORLDSTATE,
      __module__ = 'CMsgBotWorldState_pb2'
      # @@protoc_insertion_point(class_scope:CMsgBotWorldState)
      ))
    _sym_db.RegisterMessage(CMsgBotWorldState)
    _sym_db.RegisterMessage(CMsgBotWorldState.Vector)
    _sym_db.RegisterMessage(CMsgBotWorldState.Player)
    _sym_db.RegisterMessage(CMsgBotWorldState.Ability)
    _sym_db.RegisterMessage(CMsgBotWorldState.DroppedItem)
    _sym_db.RegisterMessage(CMsgBotWorldState.RuneInfo)
    _sym_db.RegisterMessage(CMsgBotWorldState.TeleportInfo)
    _sym_db.RegisterMessage(CMsgBotWorldState.Modifier)
    _sym_db.RegisterMessage(CMsgBotWorldState.LinearProjectile)
    _sym_db.RegisterMessage(CMsgBotWorldState.TrackingProjectile)
    _sym_db.RegisterMessage(CMsgBotWorldState.EventAbility)
    _sym_db.RegisterMessage(CMsgBotWorldState.EventDamage)
    _sym_db.RegisterMessage(CMsgBotWorldState.EventCourierKilled)
    _sym_db.RegisterMessage(CMsgBotWorldState.EventRoshanKilled)
    _sym_db.RegisterMessage(CMsgBotWorldState.EventTree)
    _sym_db.RegisterMessage(CMsgBotWorldState.Unit)
    
    
    # @@protoc_insertion_point(module_scope)
    With that protocol buffer you can next read in the binary data we dumped to the file (in my previous post example) using the following code:
    Code:
    import CMsgBotWorldState_pb2 as pb
    f = open('tmp.bin', 'rb')
    worldState = pb.CMsgBotWorldState()
    worldState.ParseFromString(f.read())
    f.close()
    print(worldState)
    Result of the print:
    Code:
    team_id: 3
    game_time: 16
    hero_pick_state: 4
    glyph_cooldown: 0.2509956657886505
    players {
      player_id: 0
      hero_id: 22
      is_alive: true
      respawn_time: 7.0
      kills: 0
      deaths: 0
      assists: 0
    }
    players {
      player_id: 1
      hero_id: 1
      is_alive: true
      respawn_time: 7.0
      kills: 0
      deaths: 0
      assists: 0
    }
    players {
      player_id: 2
      hero_id: 5
      is_alive: true
      respawn_time: 7.0
      kills: 0
      deaths: 0
      assists: 0
    }
    players {
      player_id: 3
      hero_id: 4
      is_alive: true
      respawn_time: 7.0
      kills: 0
      deaths: 0
      assists: 0
    }
    players {
      player_id: 4
      hero_id: 25
      is_alive: true
      respawn_time: 7.0
      kills: 0
      deaths: 0
      assists: 0
    }
    players {
      player_id: 5
      hero_id: 47
      is_alive: true
      respawn_time: 7.0
      kills: 0
      deaths: 0
      assists: 0
    }
    players {
      player_id: 6
      hero_id: 5
      is_alive: true
      respawn_time: 7.0
      kills: 0
      deaths: 0
      assists: 0
    }
    players {
      player_id: 7
      hero_id: 4
      is_alive: true
      respawn_time: 7.0
      kills: 0
      deaths: 0
      assists: 0
    }
    players {
      player_id: 8
      hero_id: 25
      is_alive: true
      respawn_time: 7.0
      kills: 0
      deaths: 0
      assists: 0
    }
    players {
      player_id: 9
      hero_id: 47
      is_alive: true
      respawn_time: 7.0
      kills: 0
      deaths: 0
      assists: 0
    }
    players {
      player_id: 0
      hero_id: 22
      is_alive: true
      respawn_time: 7.0
      kills: 0
      deaths: 0
      assists: 0
    }
    players {
      player_id: 1
      hero_id: 1
      is_alive: true
      respawn_time: 7.0
      kills: 0
      deaths: 0
      assists: 0
    }
    players {
      player_id: 2
      hero_id: 5
      is_alive: true
      respawn_time: 7.0
      kills: 0
      deaths: 0
      assists: 0
    }
    players {
      player_id: 3
      hero_id: 4
      is_alive: true
      respawn_time: 7.0
      kills: 0
      deaths: 0
      assists: 0
    }
    players {
      player_id: 4
      hero_id: 25
      is_alive: true
      respawn_time: 7.0
      kills: 0
      deaths: 0
      assists: 0
    }
    players {
      player_id: 5
      hero_id: 47
      is_alive: true
      respawn_time: 7.0
      kills: 0
      deaths: 0
      assists: 0
    }
    players {
      player_id: 6
      hero_id: 5
      is_alive: true
      respawn_time: 7.0
      kills: 0
      deaths: 0
      assists: 0
    }
    players {
      player_id: 7
      hero_id: 4
      is_alive: true
      respawn_time: 7.0
      kills: 0
      deaths: 0
      assists: 0
    }
    players {
      player_id: 8
      hero_id: 25
      is_alive: true
      respawn_time: 7.0
      kills: 0
      deaths: 0
      assists: 0
    }
    players {
      player_id: 9
      hero_id: 47
      is_alive: true
      respawn_time: 7.0
      kills: 0
      deaths: 0
      assists: 0
    }
    units {
      handle: 0
      unit_type: HERO
      name: "npc_dota_hero_viper"
      team_id: 3
      level: 1
      location {
        x: 7300
        y: 6099
        z: 512
      }
      is_alive: true
      bounding_radius: 24
      facing: 225
      ground_height: 512
      vision_range_daytime: 1800
      vision_range_nighttime: 800
      health: 680
      health_max: 680
      health_regen: 28.639999389648438
      mana: 284
      mana_max: 284
      mana_regen: 0.009999999776482582
      base_movement_speed: 285
      current_movement_speed: 285
      anim_activity: 1500
      anim_cycle: 0.7862491607666016
      base_damage: 52
      base_damage_variance: 1
      bonus_damage: 5
      attack_damage: 57
      attack_range: 575
      attack_speed: 1
      attack_anim_point: 0.33000001311302185
      attack_acquisition_range: 800
      attack_projectile_speed: 1200
      bounty_xp: 100
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: false
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5218
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 600
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 5219
        slot: 1
        caster_handle: 0
        level: 0
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 5220
        slot: 2
        caster_handle: 0
        level: 0
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 5221
        slot: 3
        caster_handle: 0
        level: 0
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 5938
        slot: 9
        caster_handle: 0
        level: 0
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      items {
        handle: 0
        ability_id: 75
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
        charges: 0
        secondary_charges: 0
        is_combined_locked: false
      }
      items {
        handle: 0
        ability_id: 16
        slot: 2
        caster_handle: 0
        level: 1
        cast_range: 200
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
        charges: 0
        secondary_charges: 0
        is_combined_locked: false
      }
      items {
        handle: 0
        ability_id: 237
        slot: 3
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
        charges: 1
        secondary_charges: 0
        is_combined_locked: false
      }
      modifiers {
        name: "modifier_fountain_aura_buff"
        stack_count: 0
      }
      action_type: 1
      primary_attribute: 1
      is_illusion: false
      respawn_time: 7
      buyback_cost: 101
      buyback_cooldown: 0
      spell_amplifiction: 0.013571429066359997
      armor: 3
      magic_resist: 0
      evasion: 0.0
      xp_needed_to_level: 240
      ability_points: 0
      gold: 0
      last_hits: 20
      denies: 0
    }
    units {
      handle: 0
      unit_type: BUILDING
      name: "npc_dota_badguys_fillers"
      team_id: 3
      level: 1
      location {
        x: 6326
        y: 3798
        z: 409
      }
      is_alive: true
      bounding_radius: 96
      facing: 219
      ground_height: 384
      vision_range_daytime: 900
      vision_range_nighttime: 600
      health: 1000
      health_max: 1000
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.5243491530418396
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 125
      bounty_gold_max: 125
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: COURIER
      name: "npc_dota_courier"
      team_id: 3
      level: 0
      location {
        x: 7216
        y: 6555
        z: 512
      }
      is_alive: true
      bounding_radius: 8
      facing: 0
      ground_height: 512
      vision_range_daytime: 350
      vision_range_nighttime: 350
      health: 75
      health_max: 75
      health_regen: 3.5
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 350
      current_movement_speed: 350
      anim_activity: 1500
      anim_cycle: 0.5431032776832581
      base_damage: 1
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 1
      attack_range: 600
      attack_speed: 1
      attack_anim_point: 0.75
      attack_acquisition_range: 800
      attack_projectile_speed: 900
      bounty_xp: 0
      bounty_gold_min: 175
      bounty_gold_max: 175
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: true
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5205
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 5492
        slot: 1
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 5207
        slot: 2
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 5208
        slot: 3
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 5206
        slot: 4
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_magic_immune"
        stack_count: 0
      }
      modifiers {
        name: "modifier_phased"
        stack_count: 0
      }
      modifiers {
        name: "modifier_fountain_aura_buff"
        stack_count: 0
      }
      flying_courier: false
    }
    units {
      handle: 0
      unit_type: TOWER
      name: "npc_dota_goodguys_tower3_bot"
      team_id: 2
      level: 3
      location {
        x: -3951
        y: -6112
        z: 383
      }
      is_alive: true
      bounding_radius: 144
      facing: 0
      ground_height: 384
      vision_range_daytime: 1900
      vision_range_nighttime: 800
      health: 1600
      health_max: 1600
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: 1500
      anim_cycle: 0.0666656494140625
      base_damage: 152
      base_damage_variance: 10
      bonus_damage: 0
      attack_damage: 152
      attack_range: 700
      attack_speed: 1
      attack_anim_point: 0.6000000238418579
      attack_acquisition_range: 700
      attack_projectile_speed: 750
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_armor_bonus"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: TOWER
      name: "npc_dota_goodguys_tower3_mid"
      team_id: 2
      level: 3
      location {
        x: -4640
        y: -4144
        z: 384
      }
      is_alive: true
      bounding_radius: 144
      facing: 45
      ground_height: 384
      vision_range_daytime: 1900
      vision_range_nighttime: 800
      health: 1600
      health_max: 1600
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: 1500
      anim_cycle: 0.0666656494140625
      base_damage: 152
      base_damage_variance: 10
      bonus_damage: 0
      attack_damage: 152
      attack_range: 700
      attack_speed: 1
      attack_anim_point: 0.6000000238418579
      attack_acquisition_range: 700
      attack_projectile_speed: 750
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_armor_bonus"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: TOWER
      name: "npc_dota_goodguys_tower3_top"
      team_id: 2
      level: 3
      location {
        x: -6592
        y: -3407
        z: 384
      }
      is_alive: true
      bounding_radius: 144
      facing: 90
      ground_height: 384
      vision_range_daytime: 1900
      vision_range_nighttime: 800
      health: 1600
      health_max: 1600
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: 1500
      anim_cycle: 0.0666656494140625
      base_damage: 152
      base_damage_variance: 10
      bonus_damage: 0
      attack_damage: 152
      attack_range: 700
      attack_speed: 1
      attack_anim_point: 0.6000000238418579
      attack_acquisition_range: 700
      attack_projectile_speed: 750
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_armor_bonus"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: TOWER
      name: "npc_dota_goodguys_tower2_bot"
      team_id: 2
      level: 2
      location {
        x: -103
        y: -6240
        z: 384
      }
      is_alive: true
      bounding_radius: 144
      facing: 0
      ground_height: 384
      vision_range_daytime: 1900
      vision_range_nighttime: 800
      health: 1600
      health_max: 1600
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: 1500
      anim_cycle: 0.0666656494140625
      base_damage: 152
      base_damage_variance: 10
      bonus_damage: 0
      attack_damage: 152
      attack_range: 700
      attack_speed: 1
      attack_anim_point: 0.6000000238418579
      attack_acquisition_range: 700
      attack_projectile_speed: 750
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5350
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_armor_bonus"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: TOWER
      name: "npc_dota_goodguys_tower1_bot"
      team_id: 2
      level: 1
      location {
        x: 4924
        y: -6128
        z: 383
      }
      is_alive: true
      bounding_radius: 144
      facing: 30
      ground_height: 384
      vision_range_daytime: 1900
      vision_range_nighttime: 800
      health: 1400
      health_max: 1400
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: 1500
      anim_cycle: 0.0666656494140625
      base_damage: 110
      base_damage_variance: 10
      bonus_damage: 0
      attack_damage: 110
      attack_range: 700
      attack_speed: 1
      attack_anim_point: 0.6000000238418579
      attack_acquisition_range: 700
      attack_projectile_speed: 750
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_armor_bonus"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: TOWER
      name: "npc_dota_goodguys_tower2_mid"
      team_id: 2
      level: 2
      location {
        x: -3551
        y: -2791
        z: 256
      }
      is_alive: true
      bounding_radius: 144
      facing: 45
      ground_height: 256
      vision_range_daytime: 1900
      vision_range_nighttime: 800
      health: 1600
      health_max: 1600
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: 1500
      anim_cycle: 0.0666656494140625
      base_damage: 152
      base_damage_variance: 10
      bonus_damage: 0
      attack_damage: 152
      attack_range: 700
      attack_speed: 1
      attack_anim_point: 0.6000000238418579
      attack_acquisition_range: 700
      attack_projectile_speed: 750
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5350
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_armor_bonus"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: TOWER
      name: "npc_dota_goodguys_tower2_top"
      team_id: 2
      level: 2
      location {
        x: -6160
        y: -871
        z: 383
      }
      is_alive: true
      bounding_radius: 144
      facing: 90
      ground_height: 384
      vision_range_daytime: 1900
      vision_range_nighttime: 800
      health: 1600
      health_max: 1600
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: 1500
      anim_cycle: 0.0666656494140625
      base_damage: 152
      base_damage_variance: 10
      bonus_damage: 0
      attack_damage: 152
      attack_range: 700
      attack_speed: 1
      attack_anim_point: 0.6000000238418579
      attack_acquisition_range: 700
      attack_projectile_speed: 750
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5350
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_armor_bonus"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: TOWER
      name: "npc_dota_goodguys_tower1_top"
      team_id: 2
      level: 1
      location {
        x: -6208
        y: 1816
        z: 383
      }
      is_alive: true
      bounding_radius: 144
      facing: 90
      ground_height: 384
      vision_range_daytime: 1900
      vision_range_nighttime: 800
      health: 1400
      health_max: 1400
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: 1500
      anim_cycle: 0.0666656494140625
      base_damage: 110
      base_damage_variance: 10
      bonus_damage: 0
      attack_damage: 110
      attack_range: 700
      attack_speed: 1
      attack_anim_point: 0.6000000238418579
      attack_acquisition_range: 700
      attack_projectile_speed: 750
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_armor_bonus"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: TOWER
      name: "npc_dota_goodguys_tower4"
      team_id: 2
      level: 4
      location {
        x: -5711
        y: -4863
        z: 383
      }
      is_alive: true
      bounding_radius: 144
      facing: 45
      ground_height: 384
      vision_range_daytime: 1900
      vision_range_nighttime: 800
      health: 1600
      health_max: 1600
      health_regen: 3.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: 1500
      anim_cycle: 0.0666656494140625
      base_damage: 152
      base_damage_variance: 10
      bonus_damage: 0
      attack_damage: 152
      attack_range: 700
      attack_speed: 1
      attack_anim_point: 0.6000000238418579
      attack_acquisition_range: 700
      attack_projectile_speed: 750
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_armor_bonus"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: BARRACKS
      name: "npc_dota_goodguys_melee_rax_mid"
      team_id: 2
      level: 1
      location {
        x: -4671
        y: -4551
        z: 383
      }
      is_alive: true
      bounding_radius: 144
      facing: 135
      ground_height: 384
      vision_range_daytime: 900
      vision_range_nighttime: 600
      health: 1500
      health_max: 1500
      health_regen: 5.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: BARRACKS
      name: "npc_dota_goodguys_range_rax_mid"
      team_id: 2
      level: 1
      location {
        x: -5060
        y: -4199
        z: 383
      }
      is_alive: true
      bounding_radius: 144
      facing: 315
      ground_height: 384
      vision_range_daytime: 900
      vision_range_nighttime: 600
      health: 1200
      health_max: 1200
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: BARRACKS
      name: "npc_dota_goodguys_melee_rax_bot"
      team_id: 2
      level: 1
      location {
        x: -4279
        y: -6360
        z: 384
      }
      is_alive: true
      bounding_radius: 144
      facing: 90
      ground_height: 384
      vision_range_daytime: 900
      vision_range_nighttime: 600
      health: 1500
      health_max: 1500
      health_regen: 5.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: BARRACKS
      name: "npc_dota_goodguys_range_rax_bot"
      team_id: 2
      level: 1
      location {
        x: -4279
        y: -5853
        z: 383
      }
      is_alive: true
      bounding_radius: 144
      facing: 270
      ground_height: 384
      vision_range_daytime: 900
      vision_range_nighttime: 600
      health: 1200
      health_max: 1200
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: BARRACKS
      name: "npc_dota_goodguys_melee_rax_top"
      team_id: 2
      level: 1
      location {
        x: -6335
        y: -3757
        z: 383
      }
      is_alive: true
      bounding_radius: 144
      facing: 180
      ground_height: 384
      vision_range_daytime: 900
      vision_range_nighttime: 600
      health: 1500
      health_max: 1500
      health_regen: 5.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: BARRACKS
      name: "npc_dota_goodguys_range_rax_top"
      team_id: 2
      level: 1
      location {
        x: -6844
        y: -3759
        z: 383
      }
      is_alive: true
      bounding_radius: 144
      facing: 0
      ground_height: 384
      vision_range_daytime: 900
      vision_range_nighttime: 600
      health: 1200
      health_max: 1200
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: BARRACKS
      name: "npc_dota_badguys_melee_rax_bot"
      team_id: 3
      level: 1
      location {
        x: 6591
        y: 3392
        z: 383
      }
      is_alive: true
      bounding_radius: 144
      facing: 0
      ground_height: 384
      vision_range_daytime: 900
      vision_range_nighttime: 600
      health: 1500
      health_max: 1500
      health_regen: 5.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: BARRACKS
      name: "npc_dota_badguys_range_rax_bot"
      team_id: 3
      level: 1
      location {
        x: 6064
        y: 3376
        z: 384
      }
      is_alive: true
      bounding_radius: 144
      facing: 180
      ground_height: 384
      vision_range_daytime: 900
      vision_range_nighttime: 600
      health: 1200
      health_max: 1200
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: BARRACKS
      name: "npc_dota_badguys_range_rax_mid"
      team_id: 3
      level: 1
      location {
        x: 4336
        y: 4183
        z: 383
      }
      is_alive: true
      bounding_radius: 144
      facing: 135
      ground_height: 384
      vision_range_daytime: 900
      vision_range_nighttime: 600
      health: 1200
      health_max: 1200
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: BARRACKS
      name: "npc_dota_badguys_melee_rax_mid"
      team_id: 3
      level: 1
      location {
        x: 4702
        y: 3824
        z: 383
      }
      is_alive: true
      bounding_radius: 144
      facing: 315
      ground_height: 384
      vision_range_daytime: 900
      vision_range_nighttime: 600
      health: 1500
      health_max: 1500
      health_regen: 5.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: BARRACKS
      name: "npc_dota_badguys_melee_rax_top"
      team_id: 3
      level: 1
      location {
        x: 3898
        y: 5496
        z: 383
      }
      is_alive: true
      bounding_radius: 144
      facing: 270
      ground_height: 384
      vision_range_daytime: 900
      vision_range_nighttime: 600
      health: 1500
      health_max: 1500
      health_regen: 5.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: BARRACKS
      name: "npc_dota_badguys_range_rax_top"
      team_id: 3
      level: 1
      location {
        x: 3894
        y: 6025
        z: 383
      }
      is_alive: true
      bounding_radius: 144
      facing: 90
      ground_height: 384
      vision_range_daytime: 900
      vision_range_nighttime: 600
      health: 1200
      health_max: 1200
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: FORT
      name: "npc_dota_badguys_fort"
      team_id: 3
      level: 1
      location {
        x: 5527
        y: 4999
        z: 376
      }
      is_alive: true
      bounding_radius: 373
      facing: 45
      ground_height: 384
      vision_range_daytime: 2600
      vision_range_nighttime: 2600
      health: 4250
      health_max: 4250
      health_regen: 3.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: FORT
      name: "npc_dota_goodguys_fort"
      team_id: 2
      level: 1
      location {
        x: -5919
        y: -5351
        z: 367
      }
      is_alive: true
      bounding_radius: 298
      facing: 345
      ground_height: 384
      vision_range_daytime: 2600
      vision_range_nighttime: 2600
      health: 4250
      health_max: 4250
      health_regen: 3.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: SHRINE
      name: "npc_dota_goodguys_healers"
      team_id: 2
      level: 1
      location {
        x: -5120
        y: -4628
        z: 384
      }
      is_alive: true
      bounding_radius: 96
      facing: 310
      ground_height: 384
      vision_range_daytime: 0
      vision_range_nighttime: 0
      health: 1500
      health_max: 1500
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 6226
        slot: 1
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      shrine_cooldown: 368.5096435546875
      is_shrine_healing: false
    }
    units {
      handle: 0
      unit_type: SHRINE
      name: "npc_dota_goodguys_healers"
      team_id: 2
      level: 1
      location {
        x: -5616
        y: -3749
        z: 383
      }
      is_alive: true
      bounding_radius: 96
      facing: 310
      ground_height: 384
      vision_range_daytime: 0
      vision_range_nighttime: 0
      health: 1500
      health_max: 1500
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 6226
        slot: 1
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      shrine_cooldown: 368.5096435546875
      is_shrine_healing: false
    }
    units {
      handle: 0
      unit_type: TOWER
      name: "npc_dota_badguys_tower4"
      team_id: 3
      level: 4
      location {
        x: 4944
        y: 4776
        z: 383
      }
      is_alive: true
      bounding_radius: 144
      facing: 43
      ground_height: 384
      vision_range_daytime: 1900
      vision_range_nighttime: 800
      health: 1600
      health_max: 1600
      health_regen: 3.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: 1500
      anim_cycle: 0.0666656494140625
      base_damage: 152
      base_damage_variance: 10
      bonus_damage: 0
      attack_damage: 152
      attack_range: 700
      attack_speed: 1
      attack_anim_point: 0.6000000238418579
      attack_acquisition_range: 700
      attack_projectile_speed: 750
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_armor_bonus"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: TOWER
      name: "npc_dota_badguys_tower2_top"
      team_id: 3
      level: 2
      location {
        x: 0
        y: 6016
        z: 384
      }
      is_alive: true
      bounding_radius: 144
      facing: 0
      ground_height: 384
      vision_range_daytime: 1900
      vision_range_nighttime: 800
      health: 1600
      health_max: 1600
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: 1500
      anim_cycle: 0.0666656494140625
      base_damage: 152
      base_damage_variance: 10
      bonus_damage: 0
      attack_damage: 152
      attack_range: 700
      attack_speed: 1
      attack_anim_point: 0.6000000238418579
      attack_acquisition_range: 700
      attack_projectile_speed: 750
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5350
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_armor_bonus"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: TOWER
      name: "npc_dota_badguys_tower1_top"
      team_id: 3
      level: 1
      location {
        x: -4736
        y: 6016
        z: 383
      }
      is_alive: true
      bounding_radius: 144
      facing: 0
      ground_height: 384
      vision_range_daytime: 1900
      vision_range_nighttime: 800
      health: 1400
      health_max: 1400
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: 1500
      anim_cycle: 0.0666656494140625
      base_damage: 110
      base_damage_variance: 10
      bonus_damage: 0
      attack_damage: 110
      attack_range: 700
      attack_speed: 1
      attack_anim_point: 0.6000000238418579
      attack_acquisition_range: 700
      attack_projectile_speed: 750
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_armor_bonus"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: TOWER
      name: "npc_dota_badguys_tower2_mid"
      team_id: 3
      level: 2
      location {
        x: 2496
        y: 2112
        z: 256
      }
      is_alive: true
      bounding_radius: 144
      facing: 45
      ground_height: 256
      vision_range_daytime: 1900
      vision_range_nighttime: 800
      health: 1600
      health_max: 1600
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: 1500
      anim_cycle: 0.0666656494140625
      base_damage: 152
      base_damage_variance: 10
      bonus_damage: 0
      attack_damage: 152
      attack_range: 700
      attack_speed: 1
      attack_anim_point: 0.6000000238418579
      attack_acquisition_range: 700
      attack_projectile_speed: 750
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5350
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_armor_bonus"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: TOWER
      name: "npc_dota_badguys_tower1_mid"
      team_id: 3
      level: 1
      location {
        x: 1024
        y: 320
        z: 256
      }
      is_alive: true
      bounding_radius: 144
      facing: 45
      ground_height: 256
      vision_range_daytime: 1900
      vision_range_nighttime: 800
      health: 1400
      health_max: 1400
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: 1500
      anim_cycle: 0.0666656494140625
      base_damage: 110
      base_damage_variance: 10
      bonus_damage: 0
      attack_damage: 110
      attack_range: 700
      attack_speed: 1
      attack_anim_point: 0.6000000238418579
      attack_acquisition_range: 700
      attack_projectile_speed: 750
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_armor_bonus"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: TOWER
      name: "npc_dota_badguys_tower2_bot"
      team_id: 3
      level: 2
      location {
        x: 6208
        y: 384
        z: 383
      }
      is_alive: true
      bounding_radius: 144
      facing: 90
      ground_height: 384
      vision_range_daytime: 1900
      vision_range_nighttime: 800
      health: 1600
      health_max: 1600
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: 1500
      anim_cycle: 0.0666656494140625
      base_damage: 152
      base_damage_variance: 10
      bonus_damage: 0
      attack_damage: 152
      attack_range: 700
      attack_speed: 1
      attack_anim_point: 0.6000000238418579
      attack_acquisition_range: 700
      attack_projectile_speed: 750
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5350
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_armor_bonus"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: TOWER
      name: "npc_dota_badguys_tower3_bot"
      team_id: 3
      level: 3
      location {
        x: 6336
        y: 3032
        z: 383
      }
      is_alive: true
      bounding_radius: 144
      facing: 90
      ground_height: 384
      vision_range_daytime: 1900
      vision_range_nighttime: 800
      health: 1600
      health_max: 1600
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: 1500
      anim_cycle: 0.0666656494140625
      base_damage: 152
      base_damage_variance: 10
      bonus_damage: 0
      attack_damage: 152
      attack_range: 700
      attack_speed: 1
      attack_anim_point: 0.6000000238418579
      attack_acquisition_range: 700
      attack_projectile_speed: 750
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_armor_bonus"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: TOWER
      name: "npc_dota_badguys_tower3_top"
      team_id: 3
      level: 3
      location {
        x: 3552
        y: 5776
        z: 384
      }
      is_alive: true
      bounding_radius: 144
      facing: 0
      ground_height: 384
      vision_range_daytime: 1900
      vision_range_nighttime: 800
      health: 1600
      health_max: 1600
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: 1500
      anim_cycle: 0.0666656494140625
      base_damage: 152
      base_damage_variance: 10
      bonus_damage: 0
      attack_damage: 152
      attack_range: 700
      attack_speed: 1
      attack_anim_point: 0.6000000238418579
      attack_acquisition_range: 700
      attack_projectile_speed: 750
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_armor_bonus"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: TOWER
      name: "npc_dota_badguys_tower3_mid"
      team_id: 3
      level: 3
      location {
        x: 4272
        y: 3759
        z: 384
      }
      is_alive: true
      bounding_radius: 144
      facing: 45
      ground_height: 384
      vision_range_daytime: 1900
      vision_range_nighttime: 800
      health: 1600
      health_max: 1600
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: 1500
      anim_cycle: 0.0666656494140625
      base_damage: 152
      base_damage_variance: 10
      bonus_damage: 0
      attack_damage: 152
      attack_range: 700
      attack_speed: 1
      attack_anim_point: 0.6000000238418579
      attack_acquisition_range: 700
      attack_projectile_speed: 750
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_armor_bonus"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: TOWER
      name: "npc_dota_badguys_tower4"
      team_id: 3
      level: 4
      location {
        x: 5280
        y: 4432
        z: 383
      }
      is_alive: true
      bounding_radius: 144
      facing: 42
      ground_height: 384
      vision_range_daytime: 1900
      vision_range_nighttime: 800
      health: 1600
      health_max: 1600
      health_regen: 3.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: 1500
      anim_cycle: 0.0666656494140625
      base_damage: 152
      base_damage_variance: 10
      bonus_damage: 0
      attack_damage: 152
      attack_range: 700
      attack_speed: 1
      attack_anim_point: 0.6000000238418579
      attack_acquisition_range: 700
      attack_projectile_speed: 750
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_armor_bonus"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: TOWER
      name: "npc_dota_goodguys_tower4"
      team_id: 2
      level: 4
      location {
        x: -5391
        y: -5191
        z: 383
      }
      is_alive: true
      bounding_radius: 144
      facing: 45
      ground_height: 384
      vision_range_daytime: 1900
      vision_range_nighttime: 800
      health: 1600
      health_max: 1600
      health_regen: 3.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: 1500
      anim_cycle: 0.0666656494140625
      base_damage: 152
      base_damage_variance: 10
      bonus_damage: 0
      attack_damage: 152
      attack_range: 700
      attack_speed: 1
      attack_anim_point: 0.6000000238418579
      attack_acquisition_range: 700
      attack_projectile_speed: 750
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_armor_bonus"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: TOWER
      name: "npc_dota_goodguys_tower1_mid"
      team_id: 2
      level: 1
      location {
        x: -1655
        y: -1511
        z: 255
      }
      is_alive: true
      bounding_radius: 144
      facing: 45
      ground_height: 256
      vision_range_daytime: 1900
      vision_range_nighttime: 800
      health: 1400
      health_max: 1400
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: 1500
      anim_cycle: 0.0666656494140625
      base_damage: 110
      base_damage_variance: 10
      bonus_damage: 0
      attack_damage: 110
      attack_range: 700
      attack_speed: 1
      attack_anim_point: 0.6000000238418579
      attack_acquisition_range: 700
      attack_projectile_speed: 750
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_armor_bonus"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: SHRINE
      name: "npc_dota_goodguys_healers"
      team_id: 2
      level: 1
      location {
        x: -4383
        y: -5206
        z: 384
      }
      is_alive: true
      bounding_radius: 96
      facing: 310
      ground_height: 384
      vision_range_daytime: 0
      vision_range_nighttime: 0
      health: 1500
      health_max: 1500
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 6226
        slot: 1
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      shrine_cooldown: 368.5096435546875
      is_shrine_healing: false
    }
    units {
      handle: 0
      unit_type: SHRINE
      name: "npc_dota_badguys_healers"
      team_id: 3
      level: 1
      location {
        x: 5262
        y: 3346
        z: 385
      }
      is_alive: true
      bounding_radius: 96
      facing: 0
      ground_height: 384
      vision_range_daytime: 0
      vision_range_nighttime: 0
      health: 1500
      health_max: 1500
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 6226
        slot: 1
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 368.5096435546875
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      shrine_cooldown: 368.5096435546875
      is_shrine_healing: false
    }
    units {
      handle: 0
      unit_type: SHRINE
      name: "npc_dota_badguys_healers"
      team_id: 3
      level: 1
      location {
        x: 3777
        y: 4701
        z: 385
      }
      is_alive: true
      bounding_radius: 96
      facing: 0
      ground_height: 384
      vision_range_daytime: 0
      vision_range_nighttime: 0
      health: 1500
      health_max: 1500
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 6226
        slot: 1
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 368.5096435546875
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      shrine_cooldown: 368.5096435546875
      is_shrine_healing: false
    }
    units {
      handle: 0
      unit_type: SHRINE
      name: "npc_dota_badguys_healers"
      team_id: 3
      level: 1
      location {
        x: 4745
        y: 4232
        z: 385
      }
      is_alive: true
      bounding_radius: 96
      facing: 0
      ground_height: 384
      vision_range_daytime: 0
      vision_range_nighttime: 0
      health: 1500
      health_max: 1500
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 6226
        slot: 1
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 368.5096435546875
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      shrine_cooldown: 368.5096435546875
      is_shrine_healing: false
    }
    units {
      handle: 0
      unit_type: BUILDING
      name: "npc_dota_goodguys_fillers"
      team_id: 2
      level: 1
      location {
        x: -6627
        y: -4224
        z: 368
      }
      is_alive: true
      bounding_radius: 96
      facing: 187
      ground_height: 384
      vision_range_daytime: 900
      vision_range_nighttime: 600
      health: 1000
      health_max: 1000
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 125
      bounty_gold_max: 125
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: BUILDING
      name: "npc_dota_goodguys_fillers"
      team_id: 2
      level: 1
      location {
        x: -5876
        y: -4309
        z: 368
      }
      is_alive: true
      bounding_radius: 96
      facing: 186
      ground_height: 384
      vision_range_daytime: 900
      vision_range_nighttime: 600
      health: 1000
      health_max: 1000
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 125
      bounty_gold_max: 125
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: SHRINE
      name: "npc_dota_badguys_healers"
      team_id: 3
      level: 1
      location {
        x: -128
        y: 2528
        z: 385
      }
      is_alive: true
      bounding_radius: 96
      facing: 0
      ground_height: 384
      vision_range_daytime: 0
      vision_range_nighttime: 0
      health: 1500
      health_max: 1500
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 6226
        slot: 1
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 368.5096435546875
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      shrine_cooldown: 368.5096435546875
      is_shrine_healing: false
    }
    units {
      handle: 0
      unit_type: SHRINE
      name: "npc_dota_badguys_healers"
      team_id: 3
      level: 1
      location {
        x: 4191
        y: -1599
        z: 385
      }
      is_alive: true
      bounding_radius: 96
      facing: 0
      ground_height: 384
      vision_range_daytime: 0
      vision_range_nighttime: 0
      health: 1500
      health_max: 1500
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 6226
        slot: 1
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 368.5096435546875
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      shrine_cooldown: 368.5096435546875
      is_shrine_healing: false
    }
    units {
      handle: 0
      unit_type: SHRINE
      name: "npc_dota_goodguys_healers"
      team_id: 2
      level: 1
      location {
        x: -4224
        y: 1279
        z: 384
      }
      is_alive: true
      bounding_radius: 96
      facing: 310
      ground_height: 384
      vision_range_daytime: 0
      vision_range_nighttime: 0
      health: 1500
      health_max: 1500
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 6226
        slot: 1
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      shrine_cooldown: 368.5096435546875
      is_shrine_healing: false
    }
    units {
      handle: 0
      unit_type: SHRINE
      name: "npc_dota_goodguys_healers"
      team_id: 2
      level: 1
      location {
        x: 639
        y: -2560
        z: 384
      }
      is_alive: true
      bounding_radius: 96
      facing: 310
      ground_height: 384
      vision_range_daytime: 0
      vision_range_nighttime: 0
      health: 1500
      health_max: 1500
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 6226
        slot: 1
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      shrine_cooldown: 368.5096435546875
      is_shrine_healing: false
    }
    units {
      handle: 0
      unit_type: BUILDING
      name: "npc_dota_goodguys_fillers"
      team_id: 2
      level: 1
      location {
        x: -4789
        y: -6080
        z: 368
      }
      is_alive: true
      bounding_radius: 96
      facing: 189
      ground_height: 384
      vision_range_daytime: 900
      vision_range_nighttime: 600
      health: 1000
      health_max: 1000
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 125
      bounty_gold_max: 125
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: BUILDING
      name: "npc_dota_goodguys_fillers"
      team_id: 2
      level: 1
      location {
        x: -5382
        y: -4839
        z: 368
      }
      is_alive: true
      bounding_radius: 96
      facing: 183
      ground_height: 384
      vision_range_daytime: 900
      vision_range_nighttime: 600
      health: 1000
      health_max: 1000
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 125
      bounty_gold_max: 125
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: BUILDING
      name: "npc_dota_goodguys_fillers"
      team_id: 2
      level: 1
      location {
        x: -4819
        y: -5286
        z: 368
      }
      is_alive: true
      bounding_radius: 96
      facing: 187
      ground_height: 384
      vision_range_daytime: 900
      vision_range_nighttime: 600
      health: 1000
      health_max: 1000
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 125
      bounty_gold_max: 125
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: BUILDING
      name: "npc_dota_badguys_fillers"
      team_id: 3
      level: 1
      location {
        x: 5520
        y: 3949
        z: 384
      }
      is_alive: true
      bounding_radius: 96
      facing: 178
      ground_height: 384
      vision_range_daytime: 900
      vision_range_nighttime: 600
      health: 1000
      health_max: 1000
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 125
      bounty_gold_max: 125
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: BUILDING
      name: "npc_dota_badguys_fillers"
      team_id: 3
      level: 1
      location {
        x: 4944
        y: 4446
        z: 392
      }
      is_alive: true
      bounding_radius: 96
      facing: 131
      ground_height: 384
      vision_range_daytime: 900
      vision_range_nighttime: 600
      health: 1000
      health_max: 1000
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 125
      bounty_gold_max: 125
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: BUILDING
      name: "npc_dota_badguys_fillers"
      team_id: 3
      level: 1
      location {
        x: 4480
        y: 4989
        z: 384
      }
      is_alive: true
      bounding_radius: 96
      facing: 85
      ground_height: 384
      vision_range_daytime: 900
      vision_range_nighttime: 600
      health: 1000
      health_max: 1000
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 125
      bounty_gold_max: 125
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: BUILDING
      name: "npc_dota_badguys_fillers"
      team_id: 3
      level: 1
      location {
        x: 4411
        y: 5753
        z: 384
      }
      is_alive: true
      bounding_radius: 96
      facing: 45
      ground_height: 384
      vision_range_daytime: 900
      vision_range_nighttime: 600
      health: 1000
      health_max: 1000
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 125
      bounty_gold_max: 125
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: TOWER
      name: "npc_dota_badguys_tower1_bot"
      team_id: 3
      level: 1
      location {
        x: 6253
        y: -1648
        z: 384
      }
      is_alive: true
      bounding_radius: 144
      facing: 90
      ground_height: 384
      vision_range_daytime: 1900
      vision_range_nighttime: 800
      health: 1400
      health_max: 1400
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: 1500
      anim_cycle: 0.0666656494140625
      base_damage: 110
      base_damage_variance: 10
      bonus_damage: 0
      attack_damage: 110
      attack_range: 700
      attack_speed: 1
      attack_anim_point: 0.6000000238418579
      attack_acquisition_range: 700
      attack_projectile_speed: 750
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_armor_bonus"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: BUILDING
      name: "dota_fountain"
      team_id: 3
      level: 1
      location {
        x: 7472
        y: 6912
        z: 512
      }
      is_alive: true
      bounding_radius: 144
      facing: 143
      ground_height: 512
      vision_range_daytime: 1800
      vision_range_nighttime: 1800
      health: 500
      health_max: 500
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 194
      base_damage_variance: 4
      bonus_damage: 0
      attack_damage: 194
      attack_range: 1200
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 1200
      attack_projectile_speed: 1400
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_fountain_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_fountain_truesight_aura"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: BUILDING
      name: "dota_fountain"
      team_id: 2
      level: 1
      location {
        x: -7456
        y: -6938
        z: 528
      }
      is_alive: true
      bounding_radius: 144
      facing: 65
      ground_height: 512
      vision_range_daytime: 1800
      vision_range_nighttime: 1800
      health: 500
      health_max: 500
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 194
      base_damage_variance: 4
      bonus_damage: 0
      attack_damage: 194
      attack_range: 1200
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 1200
      attack_projectile_speed: 1400
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_fountain_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_fountain_truesight_aura"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: HERO
      name: "npc_dota_hero_zuus"
      team_id: 3
      level: 1
      location {
        x: 6900
        y: 6649
        z: 512
      }
      is_alive: true
      bounding_radius: 24
      facing: 225
      ground_height: 512
      vision_range_daytime: 1800
      vision_range_nighttime: 800
      health: 640
      health_max: 640
      health_regen: 26.919998168945312
      mana: 383
      mana_max: 383
      mana_regen: 0.009999999776482582
      base_movement_speed: 300
      current_movement_speed: 300
      anim_activity: 1500
      anim_cycle: 0.9874995946884155
      base_damage: 53
      base_damage_variance: 4
      bonus_damage: 3
      attack_damage: 56
      attack_range: 350
      attack_speed: 1
      attack_anim_point: 0.6330000162124634
      attack_acquisition_range: 800
      attack_projectile_speed: 1100
      bounty_xp: 100
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: false
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5110
        slot: 0
        caster_handle: 0
        level: 0
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 5111
        slot: 1
        caster_handle: 0
        level: 0
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 5112
        slot: 2
        caster_handle: 0
        level: 0
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 6325
        slot: 3
        caster_handle: 0
        level: 0
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 5113
        slot: 4
        caster_handle: 0
        level: 0
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      items {
        handle: 0
        ability_id: 38
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 250
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
        charges: 1
        secondary_charges: 0
        is_combined_locked: false
      }
      items {
        handle: 0
        ability_id: 77
        slot: 1
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
        charges: 0
        secondary_charges: 0
        is_combined_locked: false
      }
      modifiers {
        name: "modifier_fountain_aura_buff"
        stack_count: 0
      }
      action_type: 1
      primary_attribute: 2
      is_illusion: false
      respawn_time: 7
      buyback_cost: 101
      buyback_cooldown: 0
      spell_amplifiction: 0.019999999552965164
      armor: 2
      magic_resist: 0
      evasion: 0.0
      xp_needed_to_level: 240
      ability_points: 1
      gold: 0
      last_hits: 105
      denies: 0
    }
    units {
      handle: 0
      unit_type: HERO
      name: "npc_dota_hero_crystal_maiden"
      team_id: 3
      level: 1
      location {
        x: 6950
        y: 6499
        z: 518
      }
      is_alive: true
      bounding_radius: 24
      facing: 225
      ground_height: 518
      vision_range_daytime: 1800
      vision_range_nighttime: 800
      health: 520
      health_max: 520
      health_regen: 21.759998321533203
      mana: 251
      mana_max: 251
      mana_regen: 0.009999999776482582
      base_movement_speed: 275
      current_movement_speed: 275
      anim_activity: 1500
      anim_cycle: 0.1848951280117035
      base_damage: 38
      base_damage_variance: 3
      bonus_damage: 0
      attack_damage: 38
      attack_range: 600
      attack_speed: 1
      attack_anim_point: 0.550000011920929
      attack_acquisition_range: 800
      attack_projectile_speed: 900
      bounty_xp: 100
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: false
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5126
        slot: 0
        caster_handle: 0
        level: 0
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 5127
        slot: 1
        caster_handle: 0
        level: 1
        cast_range: 525
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 5128
        slot: 2
        caster_handle: 0
        level: 0
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 5129
        slot: 3
        caster_handle: 0
        level: 0
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 6138
        slot: 9
        caster_handle: 0
        level: 0
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      items {
        handle: 0
        ability_id: 39
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 250
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
        charges: 1
        secondary_charges: 0
        is_combined_locked: false
      }
      items {
        handle: 0
        ability_id: 38
        slot: 1
        caster_handle: 0
        level: 1
        cast_range: 250
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
        charges: 2
        secondary_charges: 0
        is_combined_locked: false
      }
      items {
        handle: 0
        ability_id: 42
        slot: 2
        caster_handle: 0
        level: 1
        cast_range: 500
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
        charges: 1
        secondary_charges: 0
        is_combined_locked: false
      }
      items {
        handle: 0
        ability_id: 44
        slot: 3
        caster_handle: 0
        level: 1
        cast_range: 165
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
        charges: 4
        secondary_charges: 0
        is_combined_locked: false
      }
      items {
        handle: 0
        ability_id: 34
        slot: 4
        caster_handle: 0
        level: 1
        cast_range: 1200
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
        charges: 0
        secondary_charges: 0
        is_combined_locked: false
      }
      modifiers {
        name: "modifier_fountain_aura_buff"
        stack_count: 0
      }
      action_type: 1
      primary_attribute: 2
      is_illusion: false
      respawn_time: 7
      buyback_cost: 101
      buyback_cooldown: 0
      spell_amplifiction: 0.011428571306169033
      armor: 1
      magic_resist: 0
      evasion: 0.0
      xp_needed_to_level: 240
      ability_points: 0
      gold: 0
      last_hits: 30
      denies: 0
    }
    units {
      handle: 0
      unit_type: HERO
      name: "npc_dota_hero_bloodseeker"
      team_id: 3
      level: 1
      location {
        x: 7100
        y: 6375
        z: 514
      }
      is_alive: true
      bounding_radius: 24
      facing: 225
      ground_height: 514
      vision_range_daytime: 1800
      vision_range_nighttime: 800
      health: 660
      health_max: 660
      health_regen: 27.779998779296875
      mana: 273
      mana_max: 273
      mana_regen: 0.009999999776482582
      base_movement_speed: 290
      current_movement_speed: 290
      anim_activity: 1500
      anim_cycle: 0.15937483310699463
      base_damage: 60
      base_damage_variance: 3
      bonus_damage: 0
      attack_damage: 60
      attack_range: 150
      attack_speed: 1
      attack_anim_point: 0.4300000071525574
      attack_acquisition_range: 600
      attack_projectile_speed: 900
      bounty_xp: 100
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: false
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5015
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 800
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 5016
        slot: 1
        caster_handle: 0
        level: 0
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 5017
        slot: 2
        caster_handle: 0
        level: 0
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 5018
        slot: 3
        caster_handle: 0
        level: 0
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 6009
        slot: 9
        caster_handle: 0
        level: 0
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      items {
        handle: 0
        ability_id: 182
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
        charges: 0
        secondary_charges: 0
        is_combined_locked: false
      }
      items {
        handle: 0
        ability_id: 44
        slot: 2
        caster_handle: 0
        level: 1
        cast_range: 165
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
        charges: 4
        secondary_charges: 0
        is_combined_locked: false
      }
      modifiers {
        name: "modifier_fountain_aura_buff"
        stack_count: 0
      }
      action_type: 1
      primary_attribute: 1
      is_illusion: false
      respawn_time: 7
      buyback_cost: 101
      buyback_cooldown: 0
      spell_amplifiction: 0.012857143767178059
      armor: 3
      magic_resist: 0
      evasion: 0.0
      xp_needed_to_level: 240
      ability_points: 0
      gold: 0
      last_hits: 200
      denies: 0
    }
    units {
      handle: 0
      unit_type: HERO
      name: "npc_dota_hero_lina"
      team_id: 3
      level: 1
      location {
        x: 7150
        y: 6224
        z: 512
      }
      is_alive: true
      bounding_radius: 24
      facing: 225
      ground_height: 512
      vision_range_daytime: 1800
      vision_range_nighttime: 800
      health: 600
      health_max: 600
      health_regen: 25.200000762939453
      mana: 394
      mana_max: 394
      mana_regen: 0.009999999776482582
      base_movement_speed: 295
      current_movement_speed: 295
      anim_activity: 1500
      anim_cycle: 0.45127072930336
      base_damage: 51
      base_damage_variance: 9
      bonus_damage: 0
      attack_damage: 51
      attack_range: 670
      attack_speed: 1
      attack_anim_point: 0.75
      attack_acquisition_range: 800
      attack_projectile_speed: 1000
      bounty_xp: 100
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: false
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5040
        slot: 0
        caster_handle: 0
        level: 0
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 5041
        slot: 1
        caster_handle: 0
        level: 1
        cast_range: 625
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 5042
        slot: 2
        caster_handle: 0
        level: 0
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 5043
        slot: 3
        caster_handle: 0
        level: 0
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 6388
        slot: 9
        caster_handle: 0
        level: 0
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      items {
        handle: 0
        ability_id: 38
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 250
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
        charges: 2
        secondary_charges: 0
        is_combined_locked: false
      }
      items {
        handle: 0
        ability_id: 44
        slot: 1
        caster_handle: 0
        level: 1
        cast_range: 165
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
        charges: 8
        secondary_charges: 0
        is_combined_locked: false
      }
      items {
        handle: 0
        ability_id: 16
        slot: 2
        caster_handle: 0
        level: 1
        cast_range: 200
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
        charges: 0
        secondary_charges: 0
        is_combined_locked: false
      }
      items {
        handle: 0
        ability_id: 16
        slot: 3
        caster_handle: 0
        level: 1
        cast_range: 200
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
        charges: 0
        secondary_charges: 0
        is_combined_locked: false
      }
      modifiers {
        name: "modifier_fountain_aura_buff"
        stack_count: 0
      }
      action_type: 1
      primary_attribute: 2
      is_illusion: false
      respawn_time: 7
      buyback_cost: 101
      buyback_cooldown: 0
      spell_amplifiction: 0.02071428671479225
      armor: 1
      magic_resist: 0
      evasion: 0.0
      xp_needed_to_level: 240
      ability_points: 0
      gold: 0
      last_hits: 175
      denies: 0
    }
    units {
      handle: 0
      unit_type: HERO
      name: "npc_dota_hero_viper"
      team_id: 3
      level: 1
      location {
        x: 7300
        y: 6099
        z: 512
      }
      is_alive: true
      bounding_radius: 24
      facing: 225
      ground_height: 512
      vision_range_daytime: 1800
      vision_range_nighttime: 800
      health: 680
      health_max: 680
      health_regen: 28.639999389648438
      mana: 284
      mana_max: 284
      mana_regen: 0.009999999776482582
      base_movement_speed: 285
      current_movement_speed: 285
      anim_activity: 1500
      anim_cycle: 0.2620830833911896
      base_damage: 52
      base_damage_variance: 1
      bonus_damage: 5
      attack_damage: 57
      attack_range: 575
      attack_speed: 1
      attack_anim_point: 0.33000001311302185
      attack_acquisition_range: 800
      attack_projectile_speed: 1200
      bounty_xp: 100
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: false
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5218
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 600
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 5219
        slot: 1
        caster_handle: 0
        level: 0
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 5220
        slot: 2
        caster_handle: 0
        level: 0
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 5221
        slot: 3
        caster_handle: 0
        level: 0
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 5938
        slot: 9
        caster_handle: 0
        level: 0
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      items {
        handle: 0
        ability_id: 75
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
        charges: 0
        secondary_charges: 0
        is_combined_locked: false
      }
      items {
        handle: 0
        ability_id: 16
        slot: 2
        caster_handle: 0
        level: 1
        cast_range: 200
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
        charges: 0
        secondary_charges: 0
        is_combined_locked: false
      }
      items {
        handle: 0
        ability_id: 237
        slot: 3
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
        charges: 1
        secondary_charges: 0
        is_combined_locked: false
      }
      modifiers {
        name: "modifier_fountain_aura_buff"
        stack_count: 0
      }
      action_type: 1
      primary_attribute: 1
      is_illusion: false
      respawn_time: 7
      buyback_cost: 101
      buyback_cooldown: 0
      spell_amplifiction: 0.013571429066359997
      armor: 3
      magic_resist: 0
      evasion: 0.0
      xp_needed_to_level: 240
      ability_points: 0
      gold: 0
      last_hits: 20
      denies: 0
    }
    units {
      handle: 0
      unit_type: BUILDING
      name: "npc_dota_badguys_fillers"
      team_id: 3
      level: 1
      location {
        x: 6326
        y: 3798
        z: 409
      }
      is_alive: true
      bounding_radius: 96
      facing: 219
      ground_height: 384
      vision_range_daytime: 900
      vision_range_nighttime: 600
      health: 1000
      health_max: 1000
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.5243491530418396
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 125
      bounty_gold_max: 125
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: COURIER
      name: "npc_dota_courier"
      team_id: 3
      level: 0
      location {
        x: 7216
        y: 6555
        z: 512
      }
      is_alive: true
      bounding_radius: 8
      facing: 0
      ground_height: 512
      vision_range_daytime: 350
      vision_range_nighttime: 350
      health: 75
      health_max: 75
      health_regen: 3.5
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 350
      current_movement_speed: 350
      anim_activity: 1500
      anim_cycle: 0.6077582240104675
      base_damage: 1
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 1
      attack_range: 600
      attack_speed: 1
      attack_anim_point: 0.75
      attack_acquisition_range: 800
      attack_projectile_speed: 900
      bounty_xp: 0
      bounty_gold_min: 175
      bounty_gold_max: 175
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: true
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5205
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 5492
        slot: 1
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 5207
        slot: 2
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 5208
        slot: 3
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 5206
        slot: 4
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_magic_immune"
        stack_count: 0
      }
      modifiers {
        name: "modifier_phased"
        stack_count: 0
      }
      modifiers {
        name: "modifier_fountain_aura_buff"
        stack_count: 0
      }
      flying_courier: false
    }
    units {
      handle: 0
      unit_type: TOWER
      name: "npc_dota_goodguys_tower3_bot"
      team_id: 2
      level: 3
      location {
        x: -3951
        y: -6112
        z: 383
      }
      is_alive: true
      bounding_radius: 144
      facing: 0
      ground_height: 384
      vision_range_daytime: 1900
      vision_range_nighttime: 800
      health: 1600
      health_max: 1600
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: 1500
      anim_cycle: 0.0666656494140625
      base_damage: 152
      base_damage_variance: 10
      bonus_damage: 0
      attack_damage: 152
      attack_range: 700
      attack_speed: 1
      attack_anim_point: 0.6000000238418579
      attack_acquisition_range: 700
      attack_projectile_speed: 750
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_armor_bonus"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: TOWER
      name: "npc_dota_goodguys_tower3_mid"
      team_id: 2
      level: 3
      location {
        x: -4640
        y: -4144
        z: 384
      }
      is_alive: true
      bounding_radius: 144
      facing: 45
      ground_height: 384
      vision_range_daytime: 1900
      vision_range_nighttime: 800
      health: 1600
      health_max: 1600
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: 1500
      anim_cycle: 0.0666656494140625
      base_damage: 152
      base_damage_variance: 10
      bonus_damage: 0
      attack_damage: 152
      attack_range: 700
      attack_speed: 1
      attack_anim_point: 0.6000000238418579
      attack_acquisition_range: 700
      attack_projectile_speed: 750
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_armor_bonus"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: TOWER
      name: "npc_dota_goodguys_tower3_top"
      team_id: 2
      level: 3
      location {
        x: -6592
        y: -3407
        z: 384
      }
      is_alive: true
      bounding_radius: 144
      facing: 90
      ground_height: 384
      vision_range_daytime: 1900
      vision_range_nighttime: 800
      health: 1600
      health_max: 1600
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: 1500
      anim_cycle: 0.0666656494140625
      base_damage: 152
      base_damage_variance: 10
      bonus_damage: 0
      attack_damage: 152
      attack_range: 700
      attack_speed: 1
      attack_anim_point: 0.6000000238418579
      attack_acquisition_range: 700
      attack_projectile_speed: 750
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_armor_bonus"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: TOWER
      name: "npc_dota_goodguys_tower2_bot"
      team_id: 2
      level: 2
      location {
        x: -103
        y: -6240
        z: 384
      }
      is_alive: true
      bounding_radius: 144
      facing: 0
      ground_height: 384
      vision_range_daytime: 1900
      vision_range_nighttime: 800
      health: 1600
      health_max: 1600
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: 1500
      anim_cycle: 0.0666656494140625
      base_damage: 152
      base_damage_variance: 10
      bonus_damage: 0
      attack_damage: 152
      attack_range: 700
      attack_speed: 1
      attack_anim_point: 0.6000000238418579
      attack_acquisition_range: 700
      attack_projectile_speed: 750
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5350
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_armor_bonus"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: TOWER
      name: "npc_dota_goodguys_tower1_bot"
      team_id: 2
      level: 1
      location {
        x: 4924
        y: -6128
        z: 383
      }
      is_alive: true
      bounding_radius: 144
      facing: 30
      ground_height: 384
      vision_range_daytime: 1900
      vision_range_nighttime: 800
      health: 1400
      health_max: 1400
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: 1500
      anim_cycle: 0.0666656494140625
      base_damage: 110
      base_damage_variance: 10
      bonus_damage: 0
      attack_damage: 110
      attack_range: 700
      attack_speed: 1
      attack_anim_point: 0.6000000238418579
      attack_acquisition_range: 700
      attack_projectile_speed: 750
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_armor_bonus"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: TOWER
      name: "npc_dota_goodguys_tower2_mid"
      team_id: 2
      level: 2
      location {
        x: -3551
        y: -2791
        z: 256
      }
      is_alive: true
      bounding_radius: 144
      facing: 45
      ground_height: 256
      vision_range_daytime: 1900
      vision_range_nighttime: 800
      health: 1600
      health_max: 1600
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: 1500
      anim_cycle: 0.0666656494140625
      base_damage: 152
      base_damage_variance: 10
      bonus_damage: 0
      attack_damage: 152
      attack_range: 700
      attack_speed: 1
      attack_anim_point: 0.6000000238418579
      attack_acquisition_range: 700
      attack_projectile_speed: 750
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5350
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_armor_bonus"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: TOWER
      name: "npc_dota_goodguys_tower2_top"
      team_id: 2
      level: 2
      location {
        x: -6160
        y: -871
        z: 383
      }
      is_alive: true
      bounding_radius: 144
      facing: 90
      ground_height: 384
      vision_range_daytime: 1900
      vision_range_nighttime: 800
      health: 1600
      health_max: 1600
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: 1500
      anim_cycle: 0.0666656494140625
      base_damage: 152
      base_damage_variance: 10
      bonus_damage: 0
      attack_damage: 152
      attack_range: 700
      attack_speed: 1
      attack_anim_point: 0.6000000238418579
      attack_acquisition_range: 700
      attack_projectile_speed: 750
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5350
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_armor_bonus"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: TOWER
      name: "npc_dota_goodguys_tower1_top"
      team_id: 2
      level: 1
      location {
        x: -6208
        y: 1816
        z: 383
      }
      is_alive: true
      bounding_radius: 144
      facing: 90
      ground_height: 384
      vision_range_daytime: 1900
      vision_range_nighttime: 800
      health: 1400
      health_max: 1400
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: 1500
      anim_cycle: 0.0666656494140625
      base_damage: 110
      base_damage_variance: 10
      bonus_damage: 0
      attack_damage: 110
      attack_range: 700
      attack_speed: 1
      attack_anim_point: 0.6000000238418579
      attack_acquisition_range: 700
      attack_projectile_speed: 750
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_armor_bonus"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: TOWER
      name: "npc_dota_goodguys_tower4"
      team_id: 2
      level: 4
      location {
        x: -5711
        y: -4863
        z: 383
      }
      is_alive: true
      bounding_radius: 144
      facing: 45
      ground_height: 384
      vision_range_daytime: 1900
      vision_range_nighttime: 800
      health: 1600
      health_max: 1600
      health_regen: 3.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: 1500
      anim_cycle: 0.0666656494140625
      base_damage: 152
      base_damage_variance: 10
      bonus_damage: 0
      attack_damage: 152
      attack_range: 700
      attack_speed: 1
      attack_anim_point: 0.6000000238418579
      attack_acquisition_range: 700
      attack_projectile_speed: 750
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_armor_bonus"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: BARRACKS
      name: "npc_dota_goodguys_melee_rax_mid"
      team_id: 2
      level: 1
      location {
        x: -4671
        y: -4551
        z: 383
      }
      is_alive: true
      bounding_radius: 144
      facing: 135
      ground_height: 384
      vision_range_daytime: 900
      vision_range_nighttime: 600
      health: 1500
      health_max: 1500
      health_regen: 5.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: BARRACKS
      name: "npc_dota_goodguys_range_rax_mid"
      team_id: 2
      level: 1
      location {
        x: -5060
        y: -4199
        z: 383
      }
      is_alive: true
      bounding_radius: 144
      facing: 315
      ground_height: 384
      vision_range_daytime: 900
      vision_range_nighttime: 600
      health: 1200
      health_max: 1200
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: BARRACKS
      name: "npc_dota_goodguys_melee_rax_bot"
      team_id: 2
      level: 1
      location {
        x: -4279
        y: -6360
        z: 384
      }
      is_alive: true
      bounding_radius: 144
      facing: 90
      ground_height: 384
      vision_range_daytime: 900
      vision_range_nighttime: 600
      health: 1500
      health_max: 1500
      health_regen: 5.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: BARRACKS
      name: "npc_dota_goodguys_range_rax_bot"
      team_id: 2
      level: 1
      location {
        x: -4279
        y: -5853
        z: 383
      }
      is_alive: true
      bounding_radius: 144
      facing: 270
      ground_height: 384
      vision_range_daytime: 900
      vision_range_nighttime: 600
      health: 1200
      health_max: 1200
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: BARRACKS
      name: "npc_dota_goodguys_melee_rax_top"
      team_id: 2
      level: 1
      location {
        x: -6335
        y: -3757
        z: 383
      }
      is_alive: true
      bounding_radius: 144
      facing: 180
      ground_height: 384
      vision_range_daytime: 900
      vision_range_nighttime: 600
      health: 1500
      health_max: 1500
      health_regen: 5.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: BARRACKS
      name: "npc_dota_goodguys_range_rax_top"
      team_id: 2
      level: 1
      location {
        x: -6844
        y: -3759
        z: 383
      }
      is_alive: true
      bounding_radius: 144
      facing: 0
      ground_height: 384
      vision_range_daytime: 900
      vision_range_nighttime: 600
      health: 1200
      health_max: 1200
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: BARRACKS
      name: "npc_dota_badguys_melee_rax_bot"
      team_id: 3
      level: 1
      location {
        x: 6591
        y: 3392
        z: 383
      }
      is_alive: true
      bounding_radius: 144
      facing: 0
      ground_height: 384
      vision_range_daytime: 900
      vision_range_nighttime: 600
      health: 1500
      health_max: 1500
      health_regen: 5.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: BARRACKS
      name: "npc_dota_badguys_range_rax_bot"
      team_id: 3
      level: 1
      location {
        x: 6064
        y: 3376
        z: 384
      }
      is_alive: true
      bounding_radius: 144
      facing: 180
      ground_height: 384
      vision_range_daytime: 900
      vision_range_nighttime: 600
      health: 1200
      health_max: 1200
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: BARRACKS
      name: "npc_dota_badguys_range_rax_mid"
      team_id: 3
      level: 1
      location {
        x: 4336
        y: 4183
        z: 383
      }
      is_alive: true
      bounding_radius: 144
      facing: 135
      ground_height: 384
      vision_range_daytime: 900
      vision_range_nighttime: 600
      health: 1200
      health_max: 1200
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: BARRACKS
      name: "npc_dota_badguys_melee_rax_mid"
      team_id: 3
      level: 1
      location {
        x: 4702
        y: 3824
        z: 383
      }
      is_alive: true
      bounding_radius: 144
      facing: 315
      ground_height: 384
      vision_range_daytime: 900
      vision_range_nighttime: 600
      health: 1500
      health_max: 1500
      health_regen: 5.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: BARRACKS
      name: "npc_dota_badguys_melee_rax_top"
      team_id: 3
      level: 1
      location {
        x: 3898
        y: 5496
        z: 383
      }
      is_alive: true
      bounding_radius: 144
      facing: 270
      ground_height: 384
      vision_range_daytime: 900
      vision_range_nighttime: 600
      health: 1500
      health_max: 1500
      health_regen: 5.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: BARRACKS
      name: "npc_dota_badguys_range_rax_top"
      team_id: 3
      level: 1
      location {
        x: 3894
        y: 6025
        z: 383
      }
      is_alive: true
      bounding_radius: 144
      facing: 90
      ground_height: 384
      vision_range_daytime: 900
      vision_range_nighttime: 600
      health: 1200
      health_max: 1200
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: FORT
      name: "npc_dota_badguys_fort"
      team_id: 3
      level: 1
      location {
        x: 5527
        y: 4999
        z: 376
      }
      is_alive: true
      bounding_radius: 373
      facing: 45
      ground_height: 384
      vision_range_daytime: 2600
      vision_range_nighttime: 2600
      health: 4250
      health_max: 4250
      health_regen: 3.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: FORT
      name: "npc_dota_goodguys_fort"
      team_id: 2
      level: 1
      location {
        x: -5919
        y: -5351
        z: 367
      }
      is_alive: true
      bounding_radius: 298
      facing: 345
      ground_height: 384
      vision_range_daytime: 2600
      vision_range_nighttime: 2600
      health: 4250
      health_max: 4250
      health_regen: 3.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: SHRINE
      name: "npc_dota_goodguys_healers"
      team_id: 2
      level: 1
      location {
        x: -5120
        y: -4628
        z: 384
      }
      is_alive: true
      bounding_radius: 96
      facing: 310
      ground_height: 384
      vision_range_daytime: 0
      vision_range_nighttime: 0
      health: 1500
      health_max: 1500
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 6226
        slot: 1
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      shrine_cooldown: 368.0096130371094
      is_shrine_healing: false
    }
    units {
      handle: 0
      unit_type: SHRINE
      name: "npc_dota_goodguys_healers"
      team_id: 2
      level: 1
      location {
        x: -5616
        y: -3749
        z: 383
      }
      is_alive: true
      bounding_radius: 96
      facing: 310
      ground_height: 384
      vision_range_daytime: 0
      vision_range_nighttime: 0
      health: 1500
      health_max: 1500
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 6226
        slot: 1
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      shrine_cooldown: 368.0096130371094
      is_shrine_healing: false
    }
    units {
      handle: 0
      unit_type: TOWER
      name: "npc_dota_badguys_tower4"
      team_id: 3
      level: 4
      location {
        x: 4944
        y: 4776
        z: 383
      }
      is_alive: true
      bounding_radius: 144
      facing: 43
      ground_height: 384
      vision_range_daytime: 1900
      vision_range_nighttime: 800
      health: 1600
      health_max: 1600
      health_regen: 3.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: 1500
      anim_cycle: 0.0666656494140625
      base_damage: 152
      base_damage_variance: 10
      bonus_damage: 0
      attack_damage: 152
      attack_range: 700
      attack_speed: 1
      attack_anim_point: 0.6000000238418579
      attack_acquisition_range: 700
      attack_projectile_speed: 750
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_armor_bonus"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: TOWER
      name: "npc_dota_badguys_tower2_top"
      team_id: 3
      level: 2
      location {
        x: 0
        y: 6016
        z: 384
      }
      is_alive: true
      bounding_radius: 144
      facing: 0
      ground_height: 384
      vision_range_daytime: 1900
      vision_range_nighttime: 800
      health: 1600
      health_max: 1600
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: 1500
      anim_cycle: 0.0666656494140625
      base_damage: 152
      base_damage_variance: 10
      bonus_damage: 0
      attack_damage: 152
      attack_range: 700
      attack_speed: 1
      attack_anim_point: 0.6000000238418579
      attack_acquisition_range: 700
      attack_projectile_speed: 750
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5350
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_armor_bonus"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: TOWER
      name: "npc_dota_badguys_tower1_top"
      team_id: 3
      level: 1
      location {
        x: -4736
        y: 6016
        z: 383
      }
      is_alive: true
      bounding_radius: 144
      facing: 0
      ground_height: 384
      vision_range_daytime: 1900
      vision_range_nighttime: 800
      health: 1400
      health_max: 1400
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: 1500
      anim_cycle: 0.0666656494140625
      base_damage: 110
      base_damage_variance: 10
      bonus_damage: 0
      attack_damage: 110
      attack_range: 700
      attack_speed: 1
      attack_anim_point: 0.6000000238418579
      attack_acquisition_range: 700
      attack_projectile_speed: 750
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_armor_bonus"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: TOWER
      name: "npc_dota_badguys_tower2_mid"
      team_id: 3
      level: 2
      location {
        x: 2496
        y: 2112
        z: 256
      }
      is_alive: true
      bounding_radius: 144
      facing: 45
      ground_height: 256
      vision_range_daytime: 1900
      vision_range_nighttime: 800
      health: 1600
      health_max: 1600
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: 1500
      anim_cycle: 0.0666656494140625
      base_damage: 152
      base_damage_variance: 10
      bonus_damage: 0
      attack_damage: 152
      attack_range: 700
      attack_speed: 1
      attack_anim_point: 0.6000000238418579
      attack_acquisition_range: 700
      attack_projectile_speed: 750
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5350
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_armor_bonus"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: TOWER
      name: "npc_dota_badguys_tower1_mid"
      team_id: 3
      level: 1
      location {
        x: 1024
        y: 320
        z: 256
      }
      is_alive: true
      bounding_radius: 144
      facing: 45
      ground_height: 256
      vision_range_daytime: 1900
      vision_range_nighttime: 800
      health: 1400
      health_max: 1400
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: 1500
      anim_cycle: 0.0666656494140625
      base_damage: 110
      base_damage_variance: 10
      bonus_damage: 0
      attack_damage: 110
      attack_range: 700
      attack_speed: 1
      attack_anim_point: 0.6000000238418579
      attack_acquisition_range: 700
      attack_projectile_speed: 750
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_armor_bonus"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: TOWER
      name: "npc_dota_badguys_tower2_bot"
      team_id: 3
      level: 2
      location {
        x: 6208
        y: 384
        z: 383
      }
      is_alive: true
      bounding_radius: 144
      facing: 90
      ground_height: 384
      vision_range_daytime: 1900
      vision_range_nighttime: 800
      health: 1600
      health_max: 1600
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: 1500
      anim_cycle: 0.0666656494140625
      base_damage: 152
      base_damage_variance: 10
      bonus_damage: 0
      attack_damage: 152
      attack_range: 700
      attack_speed: 1
      attack_anim_point: 0.6000000238418579
      attack_acquisition_range: 700
      attack_projectile_speed: 750
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5350
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_armor_bonus"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: TOWER
      name: "npc_dota_badguys_tower3_bot"
      team_id: 3
      level: 3
      location {
        x: 6336
        y: 3032
        z: 383
      }
      is_alive: true
      bounding_radius: 144
      facing: 90
      ground_height: 384
      vision_range_daytime: 1900
      vision_range_nighttime: 800
      health: 1600
      health_max: 1600
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: 1500
      anim_cycle: 0.0666656494140625
      base_damage: 152
      base_damage_variance: 10
      bonus_damage: 0
      attack_damage: 152
      attack_range: 700
      attack_speed: 1
      attack_anim_point: 0.6000000238418579
      attack_acquisition_range: 700
      attack_projectile_speed: 750
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_armor_bonus"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: TOWER
      name: "npc_dota_badguys_tower3_top"
      team_id: 3
      level: 3
      location {
        x: 3552
        y: 5776
        z: 384
      }
      is_alive: true
      bounding_radius: 144
      facing: 0
      ground_height: 384
      vision_range_daytime: 1900
      vision_range_nighttime: 800
      health: 1600
      health_max: 1600
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: 1500
      anim_cycle: 0.0666656494140625
      base_damage: 152
      base_damage_variance: 10
      bonus_damage: 0
      attack_damage: 152
      attack_range: 700
      attack_speed: 1
      attack_anim_point: 0.6000000238418579
      attack_acquisition_range: 700
      attack_projectile_speed: 750
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_armor_bonus"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: TOWER
      name: "npc_dota_badguys_tower3_mid"
      team_id: 3
      level: 3
      location {
        x: 4272
        y: 3759
        z: 384
      }
      is_alive: true
      bounding_radius: 144
      facing: 45
      ground_height: 384
      vision_range_daytime: 1900
      vision_range_nighttime: 800
      health: 1600
      health_max: 1600
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: 1500
      anim_cycle: 0.0666656494140625
      base_damage: 152
      base_damage_variance: 10
      bonus_damage: 0
      attack_damage: 152
      attack_range: 700
      attack_speed: 1
      attack_anim_point: 0.6000000238418579
      attack_acquisition_range: 700
      attack_projectile_speed: 750
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_armor_bonus"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: TOWER
      name: "npc_dota_badguys_tower4"
      team_id: 3
      level: 4
      location {
        x: 5280
        y: 4432
        z: 383
      }
      is_alive: true
      bounding_radius: 144
      facing: 42
      ground_height: 384
      vision_range_daytime: 1900
      vision_range_nighttime: 800
      health: 1600
      health_max: 1600
      health_regen: 3.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: 1500
      anim_cycle: 0.0666656494140625
      base_damage: 152
      base_damage_variance: 10
      bonus_damage: 0
      attack_damage: 152
      attack_range: 700
      attack_speed: 1
      attack_anim_point: 0.6000000238418579
      attack_acquisition_range: 700
      attack_projectile_speed: 750
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_armor_bonus"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: TOWER
      name: "npc_dota_goodguys_tower4"
      team_id: 2
      level: 4
      location {
        x: -5391
        y: -5191
        z: 383
      }
      is_alive: true
      bounding_radius: 144
      facing: 45
      ground_height: 384
      vision_range_daytime: 1900
      vision_range_nighttime: 800
      health: 1600
      health_max: 1600
      health_regen: 3.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: 1500
      anim_cycle: 0.0666656494140625
      base_damage: 152
      base_damage_variance: 10
      bonus_damage: 0
      attack_damage: 152
      attack_range: 700
      attack_speed: 1
      attack_anim_point: 0.6000000238418579
      attack_acquisition_range: 700
      attack_projectile_speed: 750
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_armor_bonus"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: TOWER
      name: "npc_dota_goodguys_tower1_mid"
      team_id: 2
      level: 1
      location {
        x: -1655
        y: -1511
        z: 255
      }
      is_alive: true
      bounding_radius: 144
      facing: 45
      ground_height: 256
      vision_range_daytime: 1900
      vision_range_nighttime: 800
      health: 1400
      health_max: 1400
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: 1500
      anim_cycle: 0.0666656494140625
      base_damage: 110
      base_damage_variance: 10
      bonus_damage: 0
      attack_damage: 110
      attack_range: 700
      attack_speed: 1
      attack_anim_point: 0.6000000238418579
      attack_acquisition_range: 700
      attack_projectile_speed: 750
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_armor_bonus"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: SHRINE
      name: "npc_dota_goodguys_healers"
      team_id: 2
      level: 1
      location {
        x: -4383
        y: -5206
        z: 384
      }
      is_alive: true
      bounding_radius: 96
      facing: 310
      ground_height: 384
      vision_range_daytime: 0
      vision_range_nighttime: 0
      health: 1500
      health_max: 1500
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 6226
        slot: 1
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      shrine_cooldown: 368.0096130371094
      is_shrine_healing: false
    }
    units {
      handle: 0
      unit_type: SHRINE
      name: "npc_dota_badguys_healers"
      team_id: 3
      level: 1
      location {
        x: 5262
        y: 3346
        z: 385
      }
      is_alive: true
      bounding_radius: 96
      facing: 0
      ground_height: 384
      vision_range_daytime: 0
      vision_range_nighttime: 0
      health: 1500
      health_max: 1500
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 6226
        slot: 1
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 368.0096130371094
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      shrine_cooldown: 368.0096130371094
      is_shrine_healing: false
    }
    units {
      handle: 0
      unit_type: SHRINE
      name: "npc_dota_badguys_healers"
      team_id: 3
      level: 1
      location {
        x: 3777
        y: 4701
        z: 385
      }
      is_alive: true
      bounding_radius: 96
      facing: 0
      ground_height: 384
      vision_range_daytime: 0
      vision_range_nighttime: 0
      health: 1500
      health_max: 1500
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 6226
        slot: 1
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 368.0096130371094
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      shrine_cooldown: 368.0096130371094
      is_shrine_healing: false
    }
    units {
      handle: 0
      unit_type: SHRINE
      name: "npc_dota_badguys_healers"
      team_id: 3
      level: 1
      location {
        x: 4745
        y: 4232
        z: 385
      }
      is_alive: true
      bounding_radius: 96
      facing: 0
      ground_height: 384
      vision_range_daytime: 0
      vision_range_nighttime: 0
      health: 1500
      health_max: 1500
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 6226
        slot: 1
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 368.0096130371094
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      shrine_cooldown: 368.0096130371094
      is_shrine_healing: false
    }
    units {
      handle: 0
      unit_type: BUILDING
      name: "npc_dota_goodguys_fillers"
      team_id: 2
      level: 1
      location {
        x: -6627
        y: -4224
        z: 368
      }
      is_alive: true
      bounding_radius: 96
      facing: 187
      ground_height: 384
      vision_range_daytime: 900
      vision_range_nighttime: 600
      health: 1000
      health_max: 1000
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 125
      bounty_gold_max: 125
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: BUILDING
      name: "npc_dota_goodguys_fillers"
      team_id: 2
      level: 1
      location {
        x: -5876
        y: -4309
        z: 368
      }
      is_alive: true
      bounding_radius: 96
      facing: 186
      ground_height: 384
      vision_range_daytime: 900
      vision_range_nighttime: 600
      health: 1000
      health_max: 1000
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 125
      bounty_gold_max: 125
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: SHRINE
      name: "npc_dota_badguys_healers"
      team_id: 3
      level: 1
      location {
        x: -128
        y: 2528
        z: 385
      }
      is_alive: true
      bounding_radius: 96
      facing: 0
      ground_height: 384
      vision_range_daytime: 0
      vision_range_nighttime: 0
      health: 1500
      health_max: 1500
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 6226
        slot: 1
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 368.0096130371094
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      shrine_cooldown: 368.0096130371094
      is_shrine_healing: false
    }
    units {
      handle: 0
      unit_type: SHRINE
      name: "npc_dota_badguys_healers"
      team_id: 3
      level: 1
      location {
        x: 4191
        y: -1599
        z: 385
      }
      is_alive: true
      bounding_radius: 96
      facing: 0
      ground_height: 384
      vision_range_daytime: 0
      vision_range_nighttime: 0
      health: 1500
      health_max: 1500
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 6226
        slot: 1
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 368.0096130371094
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      shrine_cooldown: 368.0096130371094
      is_shrine_healing: false
    }
    units {
      handle: 0
      unit_type: SHRINE
      name: "npc_dota_goodguys_healers"
      team_id: 2
      level: 1
      location {
        x: -4224
        y: 1279
        z: 384
      }
      is_alive: true
      bounding_radius: 96
      facing: 310
      ground_height: 384
      vision_range_daytime: 0
      vision_range_nighttime: 0
      health: 1500
      health_max: 1500
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 6226
        slot: 1
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      shrine_cooldown: 368.0096130371094
      is_shrine_healing: false
    }
    units {
      handle: 0
      unit_type: SHRINE
      name: "npc_dota_goodguys_healers"
      team_id: 2
      level: 1
      location {
        x: 639
        y: -2560
        z: 384
      }
      is_alive: true
      bounding_radius: 96
      facing: 310
      ground_height: 384
      vision_range_daytime: 0
      vision_range_nighttime: 0
      health: 1500
      health_max: 1500
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 6226
        slot: 1
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      shrine_cooldown: 368.0096130371094
      is_shrine_healing: false
    }
    units {
      handle: 0
      unit_type: BUILDING
      name: "npc_dota_goodguys_fillers"
      team_id: 2
      level: 1
      location {
        x: -4789
        y: -6080
        z: 368
      }
      is_alive: true
      bounding_radius: 96
      facing: 189
      ground_height: 384
      vision_range_daytime: 900
      vision_range_nighttime: 600
      health: 1000
      health_max: 1000
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 125
      bounty_gold_max: 125
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: BUILDING
      name: "npc_dota_goodguys_fillers"
      team_id: 2
      level: 1
      location {
        x: -5382
        y: -4839
        z: 368
      }
      is_alive: true
      bounding_radius: 96
      facing: 183
      ground_height: 384
      vision_range_daytime: 900
      vision_range_nighttime: 600
      health: 1000
      health_max: 1000
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 125
      bounty_gold_max: 125
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: BUILDING
      name: "npc_dota_goodguys_fillers"
      team_id: 2
      level: 1
      location {
        x: -4819
        y: -5286
        z: 368
      }
      is_alive: true
      bounding_radius: 96
      facing: 187
      ground_height: 384
      vision_range_daytime: 900
      vision_range_nighttime: 600
      health: 1000
      health_max: 1000
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 125
      bounty_gold_max: 125
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        cast_range: 0
        channel_time: 0.0
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: BUILDING
      name: "npc_dota_badguys_fillers"
      team_id: 3
      level: 1
      location {
        x: 5520
        y: 3949
        z: 384
      }
      is_alive: true
      bounding_radius: 96
      facing: 178
      ground_height: 384
      vision_range_daytime: 900
      vision_range_nighttime: 600
      health: 1000
      health_max: 1000
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 125
      bounty_gold_max: 125
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: BUILDING
      name: "npc_dota_badguys_fillers"
      team_id: 3
      level: 1
      location {
        x: 4944
        y: 4446
        z: 392
      }
      is_alive: true
      bounding_radius: 96
      facing: 131
      ground_height: 384
      vision_range_daytime: 900
      vision_range_nighttime: 600
      health: 1000
      health_max: 1000
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 125
      bounty_gold_max: 125
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: BUILDING
      name: "npc_dota_badguys_fillers"
      team_id: 3
      level: 1
      location {
        x: 4480
        y: 4989
        z: 384
      }
      is_alive: true
      bounding_radius: 96
      facing: 85
      ground_height: 384
      vision_range_daytime: 900
      vision_range_nighttime: 600
      health: 1000
      health_max: 1000
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 125
      bounty_gold_max: 125
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: BUILDING
      name: "npc_dota_badguys_fillers"
      team_id: 3
      level: 1
      location {
        x: 4411
        y: 5753
        z: 384
      }
      is_alive: true
      bounding_radius: 96
      facing: 45
      ground_height: 384
      vision_range_daytime: 900
      vision_range_nighttime: 600
      health: 1000
      health_max: 1000
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 0
      base_damage_variance: 0
      bonus_damage: 0
      attack_damage: 0
      attack_range: 0
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 0
      attack_projectile_speed: 0
      bounty_xp: 0
      bounty_gold_min: 125
      bounty_gold_max: 125
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5351
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: TOWER
      name: "npc_dota_badguys_tower1_bot"
      team_id: 3
      level: 1
      location {
        x: 6253
        y: -1648
        z: 384
      }
      is_alive: true
      bounding_radius: 144
      facing: 90
      ground_height: 384
      vision_range_daytime: 1900
      vision_range_nighttime: 800
      health: 1400
      health_max: 1400
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: 1500
      anim_cycle: 0.0666656494140625
      base_damage: 110
      base_damage_variance: 10
      bonus_damage: 0
      attack_damage: 110
      attack_range: 700
      attack_speed: 1
      attack_anim_point: 0.6000000238418579
      attack_acquisition_range: 700
      attack_projectile_speed: 750
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_truesight_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_tower_armor_bonus"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: BUILDING
      name: "dota_fountain"
      team_id: 3
      level: 1
      location {
        x: 7472
        y: 6912
        z: 512
      }
      is_alive: true
      bounding_radius: 144
      facing: 143
      ground_height: 512
      vision_range_daytime: 1800
      vision_range_nighttime: 1800
      health: 500
      health_max: 500
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 194
      base_damage_variance: 4
      bonus_damage: 0
      attack_damage: 194
      attack_range: 1200
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 1200
      attack_projectile_speed: 1400
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_fountain_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_fountain_truesight_aura"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: BUILDING
      name: "dota_fountain"
      team_id: 2
      level: 1
      location {
        x: -7456
        y: -6938
        z: 528
      }
      is_alive: true
      bounding_radius: 144
      facing: 65
      ground_height: 512
      vision_range_daytime: 1800
      vision_range_nighttime: 1800
      health: 500
      health_max: 500
      health_regen: 0.0
      mana: 0
      mana_max: 0
      mana_regen: 0.0
      base_movement_speed: 0
      current_movement_speed: 100
      anim_activity: -1
      anim_cycle: 0.0
      base_damage: 194
      base_damage_variance: 4
      bonus_damage: 0
      attack_damage: 194
      attack_range: 1200
      attack_speed: 1
      attack_anim_point: 0.0
      attack_acquisition_range: 1200
      attack_projectile_speed: 1400
      bounty_xp: 0
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: true
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      modifiers {
        name: "modifier_invulnerable"
        stack_count: 0
      }
      modifiers {
        name: "modifier_fountain_aura"
        stack_count: 0
      }
      modifiers {
        name: "modifier_fountain_truesight_aura"
        stack_count: 0
      }
    }
    units {
      handle: 0
      unit_type: HERO
      name: "npc_dota_hero_zuus"
      team_id: 3
      level: 1
      location {
        x: 6900
        y: 6649
        z: 512
      }
      is_alive: true
      bounding_radius: 24
      facing: 225
      ground_height: 512
      vision_range_daytime: 1800
      vision_range_nighttime: 800
      health: 640
      health_max: 640
      health_regen: 26.919998168945312
      mana: 383
      mana_max: 383
      mana_regen: 0.009999999776482582
      base_movement_speed: 300
      current_movement_speed: 300
      anim_activity: 1500
      anim_cycle: 0.17499947547912598
      base_damage: 53
      base_damage_variance: 4
      bonus_damage: 3
      attack_damage: 56
      attack_range: 350
      attack_speed: 1
      attack_anim_point: 0.6330000162124634
      attack_acquisition_range: 800
      attack_projectile_speed: 1100
      bounty_xp: 100
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: false
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5110
        slot: 0
        caster_handle: 0
        level: 0
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 5111
        slot: 1
        caster_handle: 0
        level: 0
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 5112
        slot: 2
        caster_handle: 0
        level: 0
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 6325
        slot: 3
        caster_handle: 0
        level: 0
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 5113
        slot: 4
        caster_handle: 0
        level: 0
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      items {
        handle: 0
        ability_id: 38
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 250
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
        charges: 1
        secondary_charges: 0
        is_combined_locked: false
      }
      items {
        handle: 0
        ability_id: 77
        slot: 1
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
        charges: 0
        secondary_charges: 0
        is_combined_locked: false
      }
      modifiers {
        name: "modifier_fountain_aura_buff"
        stack_count: 0
      }
      action_type: 1
      primary_attribute: 2
      is_illusion: false
      respawn_time: 7
      buyback_cost: 101
      buyback_cooldown: 0
      spell_amplifiction: 0.019999999552965164
      armor: 2
      magic_resist: 0
      evasion: 0.0
      xp_needed_to_level: 240
      ability_points: 1
      gold: 0
      last_hits: 105
      denies: 0
    }
    units {
      handle: 0
      unit_type: HERO
      name: "npc_dota_hero_crystal_maiden"
      team_id: 3
      level: 1
      location {
        x: 6950
        y: 6499
        z: 518
      }
      is_alive: true
      bounding_radius: 24
      facing: 225
      ground_height: 518
      vision_range_daytime: 1800
      vision_range_nighttime: 800
      health: 520
      health_max: 520
      health_regen: 21.759998321533203
      mana: 251
      mana_max: 251
      mana_regen: 0.009999999776482582
      base_movement_speed: 275
      current_movement_speed: 275
      anim_activity: 1500
      anim_cycle: 0.4622389078140259
      base_damage: 38
      base_damage_variance: 3
      bonus_damage: 0
      attack_damage: 38
      attack_range: 600
      attack_speed: 1
      attack_anim_point: 0.550000011920929
      attack_acquisition_range: 800
      attack_projectile_speed: 900
      bounty_xp: 100
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: false
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5126
        slot: 0
        caster_handle: 0
        level: 0
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 5127
        slot: 1
        caster_handle: 0
        level: 1
        cast_range: 525
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 5128
        slot: 2
        caster_handle: 0
        level: 0
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 5129
        slot: 3
        caster_handle: 0
        level: 0
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 6138
        slot: 9
        caster_handle: 0
        level: 0
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      items {
        handle: 0
        ability_id: 39
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 250
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
        charges: 1
        secondary_charges: 0
        is_combined_locked: false
      }
      items {
        handle: 0
        ability_id: 38
        slot: 1
        caster_handle: 0
        level: 1
        cast_range: 250
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
        charges: 2
        secondary_charges: 0
        is_combined_locked: false
      }
      items {
        handle: 0
        ability_id: 42
        slot: 2
        caster_handle: 0
        level: 1
        cast_range: 500
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
        charges: 1
        secondary_charges: 0
        is_combined_locked: false
      }
      items {
        handle: 0
        ability_id: 44
        slot: 3
        caster_handle: 0
        level: 1
        cast_range: 165
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
        charges: 4
        secondary_charges: 0
        is_combined_locked: false
      }
      items {
        handle: 0
        ability_id: 34
        slot: 4
        caster_handle: 0
        level: 1
        cast_range: 1200
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
        charges: 0
        secondary_charges: 0
        is_combined_locked: false
      }
      modifiers {
        name: "modifier_fountain_aura_buff"
        stack_count: 0
      }
      action_type: 1
      primary_attribute: 2
      is_illusion: false
      respawn_time: 7
      buyback_cost: 101
      buyback_cooldown: 0
      spell_amplifiction: 0.011428571306169033
      armor: 1
      magic_resist: 0
      evasion: 0.0
      xp_needed_to_level: 240
      ability_points: 0
      gold: 0
      last_hits: 30
      denies: 0
    }
    units {
      handle: 0
      unit_type: HERO
      name: "npc_dota_hero_bloodseeker"
      team_id: 3
      level: 1
      location {
        x: 7100
        y: 6375
        z: 514
      }
      is_alive: true
      bounding_radius: 24
      facing: 225
      ground_height: 514
      vision_range_daytime: 1800
      vision_range_nighttime: 800
      health: 660
      health_max: 660
      health_regen: 27.779998779296875
      mana: 273
      mana_max: 273
      mana_regen: 0.009999999776482582
      base_movement_speed: 290
      current_movement_speed: 290
      anim_activity: 1500
      anim_cycle: 0.35859355330467224
      base_damage: 60
      base_damage_variance: 3
      bonus_damage: 0
      attack_damage: 60
      attack_range: 150
      attack_speed: 1
      attack_anim_point: 0.4300000071525574
      attack_acquisition_range: 600
      attack_projectile_speed: 900
      bounty_xp: 100
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: false
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5015
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 800
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 5016
        slot: 1
        caster_handle: 0
        level: 0
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 5017
        slot: 2
        caster_handle: 0
        level: 0
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 5018
        slot: 3
        caster_handle: 0
        level: 0
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 6009
        slot: 9
        caster_handle: 0
        level: 0
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      items {
        handle: 0
        ability_id: 182
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
        charges: 0
        secondary_charges: 0
        is_combined_locked: false
      }
      items {
        handle: 0
        ability_id: 44
        slot: 2
        caster_handle: 0
        level: 1
        cast_range: 165
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
        charges: 4
        secondary_charges: 0
        is_combined_locked: false
      }
      modifiers {
        name: "modifier_fountain_aura_buff"
        stack_count: 0
      }
      action_type: 1
      primary_attribute: 1
      is_illusion: false
      respawn_time: 7
      buyback_cost: 101
      buyback_cooldown: 0
      spell_amplifiction: 0.012857143767178059
      armor: 3
      magic_resist: 0
      evasion: 0.0
      xp_needed_to_level: 240
      ability_points: 0
      gold: 0
      last_hits: 200
      denies: 0
    }
    units {
      handle: 0
      unit_type: HERO
      name: "npc_dota_hero_lina"
      team_id: 3
      level: 1
      location {
        x: 7150
        y: 6224
        z: 512
      }
      is_alive: true
      bounding_radius: 24
      facing: 225
      ground_height: 512
      vision_range_daytime: 1800
      vision_range_nighttime: 800
      health: 600
      health_max: 600
      health_regen: 25.200000762939453
      mana: 394
      mana_max: 394
      mana_regen: 0.009999999776482582
      base_movement_speed: 295
      current_movement_speed: 295
      anim_activity: 1500
      anim_cycle: 0.7333154678344727
      base_damage: 51
      base_damage_variance: 9
      bonus_damage: 0
      attack_damage: 51
      attack_range: 670
      attack_speed: 1
      attack_anim_point: 0.75
      attack_acquisition_range: 800
      attack_projectile_speed: 1000
      bounty_xp: 100
      bounty_gold_min: 0
      bounty_gold_max: 0
      is_channeling: false
      is_attack_immune: false
      is_blind: false
      is_block_disabled: false
      is_disarmed: false
      is_evade_disabled: false
      is_hexed: false
      is_invisible: false
      is_invulnerable: false
      is_magic_immune: false
      is_muted: false
      is_nightmared: false
      is_rooted: false
      is_silenced: false
      is_specially_deniable: false
      is_stunned: false
      is_unable_to_miss: false
      has_scepter: false
      abilities {
        handle: 0
        ability_id: 5040
        slot: 0
        caster_handle: 0
        level: 0
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 5041
        slot: 1
        caster_handle: 0
        level: 1
        cast_range: 625
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 5042
        slot: 2
        caster_handle: 0
        level: 0
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 5043
        slot: 3
        caster_handle: 0
        level: 0
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      abilities {
        handle: 0
        ability_id: 6388
        slot: 9
        caster_handle: 0
        level: 0
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
      }
      items {
        handle: 0
        ability_id: 38
        slot: 0
        caster_handle: 0
        level: 1
        cast_range: 250
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
        charges: 2
        secondary_charges: 0
        is_combined_locked: false
      }
      items {
        handle: 0
        ability_id: 44
        slot: 1
        caster_handle: 0
        level: 1
        cast_range: 165
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
        charges: 8
        secondary_charges: 0
        is_combined_locked: false
      }
      items {
        handle: 0
        ability_id: 16
        slot: 2
        caster_handle: 0
        level: 1
        cast_range: 200
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
        charges: 0
        secondary_charges: 0
        is_combined_locked: false
      }
      items {
        handle: 0
        ability_id: 16
        slot: 3
        caster_handle: 0
        level: 1
        cast_range: 200
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
        charges: 0
        secondary_charges: 0
        is_combined_locked: false
      }
      modifiers {
        name: "modifier_fountain_aura_buff"
        stack_count: 0
      }
      action_type: 1
      primary_attribute: 2
      is_illusion: false
      respawn_time: 7
      buyback_cost: 101
      buyback_cooldown: 0
      spell_amplifiction: 0.02071428671479225
      armor: 1
      magic_resist: 0
      evasion: 0.0
      xp_needed_to_level: 240
      ability_points: 0
      gold: 0
      last_hits: 175
      denies: 0
    }
    rune_infos {
      type: 4294967295
      location {
        x: -1760
        y: 1216
        z: 176
      }
      status: 0
      time_since_seen: 15.566761016845703
    }
    rune_infos {
      type: 4294967295
      location {
        x: 2618
        y: -2002
        z: 248
      }
      status: 0
      time_since_seen: 15.566761016845703
    }
    rune_infos {
      type: 5
      location {
        x: 1295
        y: -4127
        z: 432
      }
      status: 0
      time_since_seen: 15.566761016845703
    }
    rune_infos {
      type: 5
      location {
        x: -4352
        y: 192
        z: 304
      }
      status: 0
      time_since_seen: 15.566761016845703
    }
    rune_infos {
      type: 5
      location {
        x: -2823
        y: 4136
        z: 432
      }
      status: 0
      time_since_seen: 15.566761016845703
    }
    rune_infos {
      type: 5
      location {
        x: 3551
        y: 368
        z: 432
      }
      status: 0
      time_since_seen: 15.566761016845703
    }
    rune_infos {
      type: 4294967295
      location {
        x: -1760
        y: 1216
        z: 176
      }
      status: 0
      time_since_seen: 16.06676483154297
    }
    rune_infos {
      type: 4294967295
      location {
        x: 2618
        y: -2002
        z: 248
      }
      status: 0
      time_since_seen: 16.06676483154297
    }
    rune_infos {
      type: 5
      location {
        x: 1295
        y: -4127
        z: 432
      }
      status: 0
      time_since_seen: 16.06676483154297
    }
    rune_infos {
      type: 5
      location {
        x: -4352
        y: 192
        z: 304
      }
      status: 0
      time_since_seen: 16.06676483154297
    }
    rune_infos {
      type: 5
      location {
        x: -2823
        y: 4136
        z: 432
      }
      status: 0
      time_since_seen: 16.06676483154297
    }
    rune_infos {
      type: 5
      location {
        x: 3551
        y: 368
        z: 432
      }
      status: 0
      time_since_seen: 16.06676483154297
    }

  4. #14
    Basic Member
    Join Date
    Dec 2016
    Posts
    731
    Another thing @ChrisC - for the Ability sub-proto it would be nice to have a "optional string ability_name = <?>" since both Items and Abilities are mapped to the same structure. So when I see something as in the above dumped proto
    Code:
      items {
        handle: 0
        ability_id: 237
        slot: 3
        caster_handle: 0
        level: 1
        cast_range: 0
        channel_time: 0.0
        cooldown_remaining: 0.0
        is_activated: true
        is_toggled: false
        is_in_ability_phase: false
        is_channeling: false
        is_stolen: false
        charges: 1
        secondary_charges: 0
        is_combined_locked: false
      }
    It's not easy to know what that item is... in this case it happens to be faerie_fire but I do not know of a way to find that out without making my own mapping.

  5. #15
    Basic Member
    Join Date
    Mar 2012
    Posts
    2,017
    Create a spell array containing both types of spells: abilities and items. Fill it with npc_items and npc_abilities and map each element to npc_items.item_xxx.id or npc_abilitirs.xxx.id. That way you can use the protobuff items.ability_id on the previously mapped npc_items array. If you mapped each array element using their unique id, you can match them this way.

    The only downside to differentiating between the type of spells is you'd have to check the internal name: if it starts with "item_" then it's an item spell, otherwise it's an ability spell.

    Code:
    	"item_blink"
    	{
    		// General
    		//-------------------------------------------------------------------------------------------------------------
    		"ID"							"1"														// unique ID number for this item.  Do not change this once established or it will invalidate collected stats.
    		"AbilityBehavior"				"DOTA_ABILITY_BEHAVIOR_POINT | DOTA_ABILITY_BEHAVIOR_DIRECTIONAL | DOTA_ABILITY_BEHAVIOR_ROOT_DISABLES"
    
    		// Stats
    		//-------------------------------------------------------------------------------------------------------------
    		"AbilityCastRange"				"0"
    		"AbilityCastPoint"				"0.0"
    		"AbilityCooldown"				"12.0"
    		"AbilityManaCost"				"0"
    		
    		// Item Info
    		//-------------------------------------------------------------------------------------------------------------
    		"ItemCost"						"2250"
    		"ItemShopTags"					"teleport"
    		"ItemQuality"					"component"
    		"ItemAliases"					"blink dagger"
    		"SideShop"						"1"
    		"ItemDeclarations"				"DECLARE_PURCHASES_TO_TEAMMATES | DECLARE_PURCHASES_IN_SPEECH | DECLARE_PURCHASES_TO_SPECTATORS"
    		
    		// Special	
    		//-------------------------------------------------------------------------------------------------------------
    		"AbilitySpecial"
    		{
    			"01"
    			{
    				"var_type"				"FIELD_INTEGER"
    				"blink_range"			"1200"
    			}
    			"02"
    			{
    				"var_type"				"FIELD_FLOAT"
    				"blink_damage_cooldown"	"3.0"
    			}
    			"03"
    			{
    				"var_type"				"FIELD_INTEGER"
    				"blink_range_clamp"		"960"
    			}
    		}
    	}
    
    	"enigma_midnight_pulse"
    	{
    		// General
    		//-------------------------------------------------------------------------------------------------------------
    		"ID"					"5148"														// unique ID number for this ability.  Do not change this once established or it will invalidate collected stats.
    		"AbilityBehavior"				"DOTA_ABILITY_BEHAVIOR_AOE | DOTA_ABILITY_BEHAVIOR_POINT | DOTA_ABILITY_BEHAVIOR_IGNORE_BACKSWING"
    		"AbilityUnitDamageType"			"DAMAGE_TYPE_PURE"	
    		"SpellImmunityType"				"SPELL_IMMUNITY_ENEMIES_YES"
    		"FightRecapLevel"				"1"
    		"AbilitySound"					"Hero_Enigma.Midnight_Pulse"
    
    		// Casting
    		//-------------------------------------------------------------------------------------------------------------
    		"AbilityCastRange"				"700"
    		"AbilityCastPoint"				"0.1"
    
    		// Time		
    		//-------------------------------------------------------------------------------------------------------------
    		"AbilityCooldown"				"35"
    
    		// Cost
    		//-------------------------------------------------------------------------------------------------------------
    		"AbilityManaCost"				"95 110 125 140"
    
    		// Special
    		//-------------------------------------------------------------------------------------------------------------
    		"AbilitySpecial"
    		{
    			"01"
    			{
    				"var_type"					"FIELD_INTEGER"
    				"radius"					"550"
    			}
    			"02"
    			{
    				"var_type"					"FIELD_FLOAT"
    				"damage_percent"			"3 3.75 4.5 5.25"
    			}
    			"03"
    			{
    				"var_type"					"FIELD_FLOAT"
    				"duration"					"11"
    			}
    		}
    	}
    Each spell has a unique id across the item and ability lists (meaning id 1 is either an item or an ability, you won't have 1 on both lists) which is why I recommend using it as an array element indexer (and also because that's what the protobuf throws at you).

    Quote Originally Posted by nostrademous View Post
    It's not easy to know what that item is... in this case it happens to be faerie_fire but I do not know of a way to find that out without making my own mapping.
    The problem is you'd have to always load it, but if you can adapt the lua generator you made it should be easier then writing them each by hand (and that means you don't need to adapt it everytime a new item is added or removed). If you don't want any preloading then yeah, you need the name inside the protobuf (I wasn't sure what you meant my doing your own mapping ).

    I assume one advantage is, for example, comparing cast_range (the default one vs one provided by aether or a talent).
    The only way you could compare statistics on that is by preloading the default values.

    Then again if that is not your main interest right now, ignore my suggestion
    I figured it'd be easy for you to do it since you have that lua generator.
    Last edited by The Nomad; 09-20-2017 at 01:15 PM.
    Explanations on the normal, high and very high brackets in replays: here, here & here
    Why maphacks won't work in D2: here

  6. #16
    Basic Member
    Join Date
    Dec 2016
    Posts
    731
    Oh, I can do it no problem, but my suggestions generally are to make it easier on the community at large, not me specifically. Sure, I have a JSON mapping of all the item IDs and ability IDs to their actual object as represented in files, but it would be just so much easier if they did that for you, but perhaps there is a reason they don't.

    On a different note - I just played a 70 min long game against bots while dumping the protobuf every 15 frames (so approximately 4 per second) and resulting number of dumps was 8144 which take up about 250 Mb of disk. Not too bad at all.

  7. #17
    Valve Developer
    Join Date
    Sep 2011
    Posts
    1,704
    Mostly I'm concerned about keeping the size of the data it's outputting down (it's already pretty big!) so I'd rather you guys use an external table for item/ability name lookups rather than including it every time I reference an ability. Generally I've tried to just include the minimal amount of identifying info and dynamic state in the protobuf output, with the intention that static data (how much damage does spell X do at level Y, etc) can be looked up elsewhere.

    250MB isn't terrible for a long game, but it's not nothing either. :-)

  8. #18
    Basic Member
    Join Date
    Dec 2016
    Posts
    731
    Quote Originally Posted by ChrisC View Post
    Mostly I'm concerned about keeping the size of the data it's outputting down (it's already pretty big!) so I'd rather you guys use an external table for item/ability name lookups rather than including it every time I reference an ability.
    Ok, not a big deal.

    Quote Originally Posted by ChrisC View Post
    250MB isn't terrible for a long game, but it's not nothing either. :-)
    Eh, 250Mb is really nothing with the current capabilities and prices of HDD and SSD. I mean, hell, streaming 4k video I sometimes record 100Gb over 10min.

    @ChrisC - I made a separate CMsgBotWorldState thread to not hi-jack this one HERE. Please check it out when you have time as there are several bugs that need fixing.

  9. #19
    Quote Originally Posted by nostrademous View Post
    It's not easy to know what that item is... in this case it happens to be faerie_fire but I do not know of a way to find that out without making my own mapping.
    Yes, it's item_faerie_fire. I think you can open the file called 'pak01_dir.vpk' in \Steam\steamapps\common\dota 2 beta\game\dota\ , then copy a file called 'items.txt' in the pak01_dir.vpk to your local disk (mine copied to the folder ....\game\dota\ scripts\npc). its dir is root\scripts\npc\items.txt , then you can search '237' in this file, of course 'item_faerie_fire'.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •