/**
 * @file modules/generated/module_dex_generated.h
 * @brief Definition of module_dex written in array. Generated by json_to_array.py
 * @copyright (c) 2021 Avast Software, licensed under the MIT license
 */
 #pragma once

 #include "yaramod/types/modules/module_content.h"

 namespace yaramod {

 namespace modules {

 class Gmodule_dex : public ModuleContent
 {
 public:
    static constexpr std::size_t module_content_size = 12809;
    static constexpr const char* module_content_parts[] = {
"{\"kind\": \"struct\", \"name\": \"dex\", \"attributes\": [{\"kind\": \"value\", \"name\": \"DEX_FILE_MAGIC_035\", \"documentation\": \"\", \"type\": \"s\"}, {\"kind\": \"value\", \"name\": \"DEX_FILE_MAGIC_036\", \"documentation\": \"\", \"type\": \"s\"}, {\"kind\": \"value\", \"name\": \"DEX_FILE_MAGIC_037\", \"documentation\": \"\", \"type\": \"s\"}, {\"kind\": \"value\", \"name\": \"DEX_FILE_MAGIC_038\", \"documentation\": \"\", \"type\": \"s\"}, {\"kind\": \"value\", \"name\": \"DEX_FILE_MAGIC_039\", \"documentation\": \"\", \"type\": \"s\"}, {\"kind\": \"value\", \"name\": \"ENDIAN_CONSTANT\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"REVERSE_ENDIAN_CONSTANT\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"NO_INDEX\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"ACC_PUBLIC\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"ACC_PRIVATE\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"ACC_PROTECTED\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"ACC_STATIC\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value",
"\", \"name\": \"ACC_FINAL\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"ACC_SYNCHRONIZED\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"ACC_VOLATILE\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"ACC_BRIDGE\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"ACC_TRANSIENT\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"ACC_VARARGS\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"ACC_NATIVE\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"ACC_INTERFACE\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"ACC_ABSTRACT\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"ACC_STRICT\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"ACC_SYNTHETIC\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"ACC_ANNOTATION\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"ACC_ENUM\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"ACC_CONSTRUCTOR\"",
", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"ACC_DECLARED_SYNCHRONIZED\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"TYPE_HEADER_ITEM\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"TYPE_STRING_ID_ITEM\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"TYPE_TYPE_ID_ITEM\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"TYPE_PROTO_ID_ITEM\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"TYPE_FIELD_ID_ITEM\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"TYPE_METHOD_ID_ITEM\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"TYPE_CLASS_DEF_ITEM\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"TYPE_CALL_SITE_ID_ITEM\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"TYPE_METHOD_HANDLE_ITEM\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"TYPE_MAP_LIST\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"TYPE_TYPE_LIST\", \"documentation\": \"\"",
", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"TYPE_ANNOTATION_SET_REF_LIST\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"TYPE_ANNOTATION_SET_ITEM\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"TYPE_CLASS_DATA_ITEM\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"TYPE_CODE_ITEM\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"TYPE_STRING_DATA_ITEM\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"TYPE_DEBUG_INFO_ITEM\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"TYPE_ANNOTATION_ITEM\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"TYPE_ENCODED_ARRAY_ITEM\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"TYPE_ANNOTATIONS_DIRECTORY_ITEM\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"struct\", \"name\": \"header\", \"documentation\": \"\", \"attributes\": [{\"kind\": \"value\", \"name\": \"magic\", \"documentation\": \"\", \"type\": \"s\"}, {\"kind\": \"value\", \"name\": \"checksum\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind",
"\": \"value\", \"name\": \"signature\", \"documentation\": \"\", \"type\": \"s\"}, {\"kind\": \"value\", \"name\": \"file_size\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"header_size\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"endian_tag\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"link_size\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"link_offset\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"map_offset\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"string_ids_size\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"string_ids_offset\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"type_ids_size\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"type_ids_offset\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"proto_ids_size\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"proto_ids_offset\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": ",
"\"field_ids_size\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"field_ids_offset\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"method_ids_size\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"method_ids_offset\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"class_defs_size\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"class_defs_offset\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"data_size\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"data_offset\", \"documentation\": \"\", \"type\": \"i\"}]}, {\"kind\": \"array\", \"name\": \"string_ids\", \"documentation\": \"\", \"structure\": {\"kind\": \"struct\", \"name\": \"string_ids\", \"documentation\": \"\", \"attributes\": [{\"kind\": \"value\", \"name\": \"offset\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"size\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"value\", \"documentation\": \"\", \"type\": \"s\"}]}}, {\"kind\": \"array\", \"name\": \"type_ids\", \"documentati",
"on\": \"\", \"structure\": {\"kind\": \"struct\", \"name\": \"type_ids\", \"documentation\": \"\", \"attributes\": [{\"kind\": \"value\", \"name\": \"descriptor_idx\", \"documentation\": \"\", \"type\": \"i\"}]}}, {\"kind\": \"array\", \"name\": \"proto_ids\", \"documentation\": \"\", \"structure\": {\"kind\": \"struct\", \"name\": \"proto_ids\", \"documentation\": \"\", \"attributes\": [{\"kind\": \"value\", \"name\": \"shorty_idx\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"return_type_idx\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"parameters_offset\", \"documentation\": \"\", \"type\": \"i\"}]}}, {\"kind\": \"array\", \"name\": \"field_ids\", \"documentation\": \"\", \"structure\": {\"kind\": \"struct\", \"name\": \"field_ids\", \"documentation\": \"\", \"attributes\": [{\"kind\": \"value\", \"name\": \"class_idx\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"type_idx\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"name_idx\", \"documentation\": \"\", \"type\": \"i\"}]}}, {\"kind\": \"array\", \"name\": \"method_ids\", \"documentation\": \"\", \"structure\": {\"kind\": \"",
"struct\", \"name\": \"method_ids\", \"documentation\": \"\", \"attributes\": [{\"kind\": \"value\", \"name\": \"class_idx\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"proto_idx\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"name_idx\", \"documentation\": \"\", \"type\": \"i\"}]}}, {\"kind\": \"array\", \"name\": \"class_defs\", \"documentation\": \"\", \"structure\": {\"kind\": \"struct\", \"name\": \"class_defs\", \"documentation\": \"\", \"attributes\": [{\"kind\": \"value\", \"name\": \"class_idx\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"access_flags\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"super_class_idx\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"interfaces_offset\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"source_file_idx\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"annotations_offset\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"class_data_offset\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\"",
": \"static_values_offset\", \"documentation\": \"\", \"type\": \"i\"}]}}, {\"kind\": \"array\", \"name\": \"class_data_item\", \"documentation\": \"\", \"structure\": {\"kind\": \"struct\", \"name\": \"class_data_item\", \"documentation\": \"\", \"attributes\": [{\"kind\": \"value\", \"name\": \"static_fields_size\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"instance_fields_size\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"direct_methods_size\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"virtual_methods_size\", \"documentation\": \"\", \"type\": \"i\"}]}}, {\"kind\": \"struct\", \"name\": \"map_list\", \"documentation\": \"\", \"attributes\": [{\"kind\": \"value\", \"name\": \"size\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"array\", \"name\": \"map_item\", \"documentation\": \"\", \"structure\": {\"kind\": \"struct\", \"name\": \"map_item\", \"documentation\": \"\", \"attributes\": [{\"kind\": \"value\", \"name\": \"type\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"unused\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"s",
"ize\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"offset\", \"documentation\": \"\", \"type\": \"i\"}]}}]}, {\"kind\": \"value\", \"name\": \"number_of_fields\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"array\", \"name\": \"field\", \"documentation\": \"\", \"structure\": {\"kind\": \"struct\", \"name\": \"field\", \"documentation\": \"\", \"attributes\": [{\"kind\": \"value\", \"name\": \"class_name\", \"documentation\": \"\", \"type\": \"s\"}, {\"kind\": \"value\", \"name\": \"name\", \"documentation\": \"\", \"type\": \"s\"}, {\"kind\": \"value\", \"name\": \"proto\", \"documentation\": \"\", \"type\": \"s\"}, {\"kind\": \"value\", \"name\": \"field_idx_diff\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"access_flags\", \"documentation\": \"\", \"type\": \"i\"}]}}, {\"kind\": \"value\", \"name\": \"number_of_methods\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"array\", \"name\": \"method\", \"documentation\": \"\", \"structure\": {\"kind\": \"struct\", \"name\": \"method\", \"documentation\": \"\", \"attributes\": [{\"kind\": \"value\", \"name\": \"class_name\", \"documentation\": \"\", \"type\": \"s\"}, {\"kind\": \"va",
"lue\", \"name\": \"name\", \"documentation\": \"\", \"type\": \"s\"}, {\"kind\": \"value\", \"name\": \"proto\", \"documentation\": \"\", \"type\": \"s\"}, {\"kind\": \"value\", \"name\": \"direct\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"virtual\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"method_idx_diff\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"access_flags\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"code_off\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"struct\", \"name\": \"code_item\", \"documentation\": \"\", \"attributes\": [{\"kind\": \"value\", \"name\": \"registers_size\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"ins_size\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"outs_size\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"tries_size\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"debug_info_off\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"value\", \"name\": \"insns_size\", \"documentation\": \"\", \"type\":",
" \"i\"}, {\"kind\": \"value\", \"name\": \"insns\", \"documentation\": \"\", \"type\": \"s\"}, {\"kind\": \"value\", \"name\": \"padding\", \"documentation\": \"\", \"type\": \"i\"}, {\"kind\": \"struct\", \"name\": \"tries\", \"documentation\": \"\", \"attributes\": []}, {\"kind\": \"array\", \"name\": \"handlers\", \"documentation\": \"\", \"structure\": {\"kind\": \"struct\", \"name\": \"handlers\", \"documentation\": \"\", \"attributes\": []}}]}]}}, {\"kind\": \"function\", \"name\": \"has_method\", \"return_type\": \"i\", \"overloads\": [{\"arguments\": [{\"type\": \"s\", \"name\": \"method name\"}], \"documentation\": \"Returns true if any method has the specified method name.\"}, {\"arguments\": [{\"type\": \"s\", \"name\": \"class name\"}, {\"type\": \"s\", \"name\": \"method name\"}], \"documentation\": \"Returns true if any class has the specified class name and at the same time there is a method with the specified metod name\"}, {\"arguments\": [{\"type\": \"r\", \"name\": \"method name\"}], \"documentation\": \"Returns true if any method name matches the regex.\"}, {\"arguments\": [{\"type\": \"r\", \"name\": \"class name\"}, {\"type\": \"r\", \"nam",
"e\": \"method name\"}], \"documentation\": \"Returns true if any class name matching the regex class name and at the same time there is a method with name matching the specified regex metod name\"}]}, {\"kind\": \"function\", \"name\": \"has_class\", \"return_type\": \"i\", \"overloads\": [{\"arguments\": [{\"type\": \"s\", \"name\": \"class name\"}], \"documentation\": \"Returns true if any class has the specified name.\"}, {\"arguments\": [{\"type\": \"r\", \"name\": \"class name\"}], \"documentation\": \"Returns true if any class name matches the regex.\"}]}]}"
    };

    Gmodule_dex() : ModuleContent("dex")
    {
        std::string content;
        content.reserve(module_content_size);
        for (std::size_t i = 0; i < 13; ++i)
            content += module_content_parts[i];
        setContent(std::move(content));
    }
 };

 } // namespace modules

 } // namespace yaramod
