local battle_behaviortree_message = {
  [1] = {
    [-1] = -1,
    [-2] = {
      [-3] = -2,
      [-4] = -3
    }
  },
  [2] = {
    [-1] = -4,
    [-2] = {
      [-3] = -2,
      [-4] = -5
    }
  },
  [3] = {
    [-1] = -6,
    [-2] = {
      [-3] = -2,
      [-4] = -7
    }
  },
  [101] = {
    [-1] = -8,
    [-2] = {
      [-3] = -2,
      [-4] = -9
    }
  },
  [102] = {
    [-1] = -10,
    [-2] = {
      [-3] = -2,
      [-4] = -11
    }
  },
  [103] = {
    [-1] = -12,
    [-2] = {
      [-3] = -2,
      [-4] = -13
    }
  },
  [2000199] = {
    [-1] = -14,
    [-2] = {
      [-3] = -2,
      [-4] = -15
    }
  },
  [2000198] = {
    [-1] = -16,
    [-2] = {
      [-3] = -2,
      [-4] = -17
    }
  },
  [2000101] = {
    [-1] = -18,
    [-2] = {
      [-3] = -2,
      [-4] = -19
    }
  },
  [2000102] = {
    [-1] = -20,
    [-2] = {
      [-3] = -2,
      [-4] = -21
    }
  },
  [2000103] = {
    [-1] = -22,
    [-2] = {
      [-3] = -2,
      [-4] = -23
    }
  },
  [2000104] = {
    [-1] = -24,
    [-2] = {
      [-3] = -2,
      [-4] = -25
    }
  },
  [2000105] = {
    [-1] = -26,
    [-2] = {
      [-3] = -2,
      [-4] = -27
    }
  },
  [2000106] = {
    [-1] = -28,
    [-2] = {
      [-3] = -2,
      [-4] = -29
    }
  },
  [2000107] = {
    [-1] = -30,
    [-2] = {
      [-3] = -2,
      [-4] = -31
    }
  },
  [2000111] = {
    [-1] = -32,
    [-2] = {
      [-3] = -2,
      [-4] = -33
    }
  },
  [2000112] = {
    [-1] = -34,
    [-2] = {
      [-3] = -2,
      [-4] = -35
    }
  },
  [2000113] = {
    [-1] = -36,
    [-2] = {
      [-3] = -2,
      [-4] = -37
    }
  },
  [2001101] = {
    [-1] = -38,
    [-2] = {
      [-3] = -2,
      [-4] = -39
    }
  },
  [2001102] = {
    [-1] = -40,
    [-2] = {
      [-3] = -2,
      [-4] = -41
    }
  },
  [2001103] = {
    [-1] = -42,
    [-2] = {
      [-3] = -2,
      [-4] = -43
    }
  },
  [2001104] = {
    [-1] = -44,
    [-2] = {
      [-3] = -2,
      [-4] = -45
    }
  },
  [2001105] = {
    [-1] = -46,
    [-2] = {
      [-3] = -2,
      [-4] = -47
    }
  },
  [2001199] = {
    [-1] = -48,
    [-2] = {
      [-3] = -2,
      [-4] = -49
    }
  },
  [2001198] = {
    [-1] = -50,
    [-2] = {
      [-3] = -2,
      [-4] = -51
    }
  },
  [997001] = {
    [-1] = -52,
    [-2] = {
      [-3] = -2,
      [-4] = -53
    }
  },
  [997002] = {
    [-1] = -54,
    [-2] = {
      [-3] = -2,
      [-4] = -55
    }
  },
  [997003] = {
    [-1] = -56,
    [-2] = {
      [-3] = -2,
      [-4] = -57
    }
  },
  [997004] = {
    [-1] = -58,
    [-2] = {
      [-3] = -2,
      [-4] = -59
    }
  },
  [997005] = {
    [-1] = -60,
    [-2] = {
      [-3] = -2,
      [-4] = -61
    }
  }
}
local key_to_index_map = {
  id = -1,
  message = -2,
  group = -3,
  langKey = -4
}
local index_to_key_map = {}
for k, v in pairs(key_to_index_map) do
  index_to_key_map[v] = k
end
local value_to_index_map = {
  [1] = -1,
  lang_battle_behaviortree_message = -2,
  ["1_2_0"] = -3,
  [2] = -4,
  ["2_2_0"] = -5,
  [3] = -6,
  ["3_2_0"] = -7,
  [101] = -8,
  ["101_2_0"] = -9,
  [102] = -10,
  ["102_2_0"] = -11,
  [103] = -12,
  ["103_2_0"] = -13,
  [2000199] = -14,
  ["2000199_2_0"] = -15,
  [2000198] = -16,
  ["2000198_2_0"] = -17,
  [2000101] = -18,
  ["2000101_2_0"] = -19,
  [2000102] = -20,
  ["2000102_2_0"] = -21,
  [2000103] = -22,
  ["2000103_2_0"] = -23,
  [2000104] = -24,
  ["2000104_2_0"] = -25,
  [2000105] = -26,
  ["2000105_2_0"] = -27,
  [2000106] = -28,
  ["2000106_2_0"] = -29,
  [2000107] = -30,
  ["2000107_2_0"] = -31,
  [2000111] = -32,
  ["2000111_2_0"] = -33,
  [2000112] = -34,
  ["2000112_2_0"] = -35,
  [2000113] = -36,
  ["2000113_2_0"] = -37,
  [2001101] = -38,
  ["2001101_2_0"] = -39,
  [2001102] = -40,
  ["2001102_2_0"] = -41,
  [2001103] = -42,
  ["2001103_2_0"] = -43,
  [2001104] = -44,
  ["2001104_2_0"] = -45,
  [2001105] = -46,
  ["2001105_2_0"] = -47,
  [2001199] = -48,
  ["2001199_2_0"] = -49,
  [2001198] = -50,
  ["2001198_2_0"] = -51,
  [997001] = -52,
  ["997001_2_0"] = -53,
  [997002] = -54,
  ["997002_2_0"] = -55,
  [997003] = -56,
  ["997003_2_0"] = -57,
  [997004] = -58,
  ["997004_2_0"] = -59,
  [997005] = -60,
  ["997005_2_0"] = -61
}
local index_to_value_map = {}
for k, v in pairs(value_to_index_map) do
  index_to_value_map[v] = k
end

local function SetReadonlyTable(t)
  for k, v in pairs(t) do
    if type(v) == "table" then
      t[k] = SetReadonlyTable(v)
    end
  end
  local mt = {
    __data = t,
    __index_to_key_map = index_to_key_map,
    __key_to_index_map = key_to_index_map,
    __index_to_value_map = index_to_value_map,
    __index = function(t, k)
      local tmt = getmetatable(t)
      local data = tmt.__data
      local value_index
      if tmt.__key_to_index_map[k] ~= nil then
        value_index = data[tmt.__key_to_index_map[k]]
      else
        value_index = data[k]
      end
      if type(value_index) == "table" then
        return value_index
      else
        return tmt.__index_to_value_map[value_index]
      end
    end,
    __newindex = function(t, k, v)
      errorf("attempt to modify a read-only talbe!", 2)
    end,
    __pairs = function(t, k)
      return function(t, k)
        local tmt = getmetatable(t)
        local data = tmt.__data
        local nk, nv
        if tmt.__key_to_index_map[k] ~= nil then
          local iter_key = tmt.__key_to_index_map[k]
          nk, nv = next(data, iter_key)
        else
          nk, nv = next(data, k)
        end
        local key, value
        if tmt.__index_to_key_map[nk] ~= nil then
          key = tmt.__index_to_key_map[nk]
        else
          key = nk
        end
        if type(nv) == "table" then
          value = nv
        else
          value = tmt.__index_to_value_map[nv]
        end
        return key, value
      end, t, nil
    end,
    __len = function(t)
      local tmt = getmetatable(t)
      local data = tmt.__data
      return #data
    end
  }
  t = setmetatable({}, mt)
  return t
end

battle_behaviortree_message = SetReadonlyTable(battle_behaviortree_message)
return battle_behaviortree_message
