diff --git a/apps/rebar/rebar.config b/apps/rebar/rebar.config index 10e92567e..193d71019 100644 --- a/apps/rebar/rebar.config +++ b/apps/rebar/rebar.config @@ -1,9 +1,11 @@ %% -*- mode: erlang;erlang-indent-level: 4;indent-tabs-mode: nil -*- %% ex: ts=4 sw=4 ft=erlang et +%% Upgrade by calling 'rebar3 experimental vendor' and making sure +%% any manual patches (Eg. erlware_commons or relx) are kept. {deps, [{erlware_commons, "1.7.0"}, {ssl_verify_fun, "1.1.6"}, - {certifi, "2.11.0"}, + {certifi, "2.13.0"}, {providers, "1.9.0"}, {getopt, "1.0.2"}, {bbmustache, "1.12.2"}, diff --git a/apps/rebar/src/rebar_packages.erl b/apps/rebar/src/rebar_packages.erl index 445d7a06c..f7444f296 100644 --- a/apps/rebar/src/rebar_packages.erl +++ b/apps/rebar/src/rebar_packages.erl @@ -246,7 +246,8 @@ update_package(Name, RepoConfig=#{name := Repo}, State) -> ?DEBUG("Getting definition for package ~ts from repo ~ts", [Name, rebar_hex_repos:format_repo(RepoConfig)]), try r3_hex_repo:get_package(get_package_repo_config(RepoConfig), Name) of - {ok, {200, _Headers, Releases}} -> + {ok, {200, _Headers, Package}} -> + #{releases := Releases} = Package, _ = insert_releases(Name, Releases, Repo, ?PACKAGE_TABLE), {ok, RegistryDir} = rebar_packages:registry_dir(State), PackageIndex = filename:join(RegistryDir, ?INDEX_FILE), diff --git a/apps/rebar/src/vendored/r3_hex_api.erl b/apps/rebar/src/vendored/r3_hex_api.erl index 51bae96bc..33d4f8b28 100644 --- a/apps/rebar/src/vendored/r3_hex_api.erl +++ b/apps/rebar/src/vendored/r3_hex_api.erl @@ -1,7 +1,7 @@ -%% Vendored from hex_core v0.7.1, do not edit manually - -%% @hidden +%% Vendored from hex_core v0.10.1, do not edit manually +%% @doc +%% Hex HTTP API -module(r3_hex_api). -export([ @@ -16,35 +16,40 @@ ]). -define(ERL_CONTENT_TYPE, <<"application/vnd.hex+erlang">>). --export_type([body/0, response/0]). +-export_type([response/0]). -type response() :: {ok, {r3_hex_http:status(), r3_hex_http:headers(), body() | nil}} | {error, term()}. -type body() :: [body()] | #{binary() => body() | binary()}. +%% @private get(Config, Path) -> request(Config, get, Path, undefined). +%% @private post(Config, Path, Body) -> request(Config, post, Path, encode_body(Body)). +%% @private put(Config, Path, Body) -> request(Config, put, Path, encode_body(Body)). +%% @private delete(Config, Path) -> request(Config, delete, Path, undefined). %% @private encode_query_string(List) -> - Pairs = lists:map(fun ({K, V}) -> {to_list(K), to_list(V)} end, List), + Pairs = lists:map(fun({K, V}) -> {to_list(K), to_list(V)} end, List), list_to_binary(compose_query(Pairs)). %% OTP 21+ --ifdef (OTP_RELEASE). +%% @private +-ifdef(OTP_RELEASE). compose_query(Pairs) -> uri_string:compose_query(Pairs). -else. compose_query(Pairs) -> - String = join("&", lists:map(fun ({K, V}) -> K ++ "=" ++ V end, Pairs)), + String = join("&", lists:map(fun({K, V}) -> K ++ "=" ++ V end, Pairs)), http_uri:encode(String). -endif. @@ -65,7 +70,8 @@ join_path_segments(Segments) -> iolist_to_binary(recompose(Segments)). %% OTP 21+ --ifdef (OTP_RELEASE). +%% @private +-ifdef(OTP_RELEASE). recompose(Segments) -> Concatenated = join(<<"/">>, Segments), %% uri_string:recompose/1 accepts path segments as a list, @@ -75,6 +81,7 @@ recompose(Segments) -> recompose(Segments) -> join(<<"/">>, lists:map(fun encode_segment/1, Segments)). +%% @private encode_segment(Binary) when is_binary(Binary) -> encode_segment(binary_to_list(Binary)); encode_segment(String) when is_list(String) -> @@ -99,43 +106,59 @@ request(Config, Method, Path, Body) when is_binary(Path) and is_map(Config) -> case binary:match(ContentType, ?ERL_CONTENT_TYPE) of {_, _} -> {ok, {Status, RespHeaders, binary_to_term(RespBody)}}; - nomatch -> {ok, {Status, RespHeaders, nil}} end; - Other -> Other end. +%% TODO: not needed after exdoc is fixed +%% @private build_url(Path, #{api_url := URI}) -> <>. +%% TODO: not needed after exdoc is fixed +%% @private encode_body({_ContentType, _Body} = Body) -> Body; encode_body(Body) -> {binary_to_list(?ERL_CONTENT_TYPE), term_to_binary(Body)}. +%% TODO: not needed after exdoc is fixed +%% @private %% TODO: copy-pasted from r3_hex_repo make_headers(Config) -> maps:fold(fun set_header/3, #{}, Config). -set_header(api_key, Token, Headers) when is_binary(Token) -> maps:put(<<"authorization">>, Token, Headers); -set_header(_, _, Headers) -> Headers. +%% TODO: not needed after exdoc is fixed +%% @private +set_header(api_key, Token, Headers) when is_binary(Token) -> + maps:put(<<"authorization">>, Token, Headers); +set_header(_, _, Headers) -> + Headers. +%% TODO: not needed after exdoc is fixed +%% @private put_new(Key, Value, Map) -> case maps:find(Key, Map) of {ok, _} -> Map; error -> maps:put(Key, Value, Map) end. +%% TODO: not needed after exdoc is fixed +%% @private %% https://github.com/erlang/otp/blob/OTP-20.3/lib/stdlib/src/lists.erl#L1449:L1453 join(_Sep, []) -> []; -join(Sep, [H|T]) -> [H|join_prepend(Sep, T)]. +join(Sep, [H | T]) -> [H | join_prepend(Sep, T)]. +%% TODO: not needed after exdoc is fixed +%% @private join_prepend(_Sep, []) -> []; -join_prepend(Sep, [H|T]) -> [Sep,H|join_prepend(Sep,T)]. +join_prepend(Sep, [H | T]) -> [Sep, H | join_prepend(Sep, T)]. +%% TODO: not needed after exdoc is fixed +%% @private to_list(A) when is_atom(A) -> atom_to_list(A); to_list(B) when is_binary(B) -> unicode:characters_to_list(B); to_list(I) when is_integer(I) -> integer_to_list(I); diff --git a/apps/rebar/src/vendored/r3_hex_api_key.erl b/apps/rebar/src/vendored/r3_hex_api_key.erl index 8c93022a6..bd549eda1 100644 --- a/apps/rebar/src/vendored/r3_hex_api_key.erl +++ b/apps/rebar/src/vendored/r3_hex_api_key.erl @@ -1,5 +1,7 @@ -%% Vendored from hex_core v0.7.1, do not edit manually +%% Vendored from hex_core v0.10.1, do not edit manually +%% @doc +%% Hex HTTP API - Keys. -module(r3_hex_api_key). -export([ list/1, @@ -11,16 +13,7 @@ -export_type([permission/0]). --type permission() :: api_permission() | repo_permission() | repos_permission(). --ifdef(OTP_19). --type api_permission() :: #{domain := api, resource => read | write}. --type repo_permission() :: #{domain := repository, resource := binary()}. --type repos_permission() :: #{domain := repositories}. --else. --type api_permission() :: #{domain => api, resource => read | write}. --type repo_permission() :: #{domain => repository, resource => binary()}. --type repos_permission() :: #{domain => repositories}. --endif. +-type permission() :: #{binary() := binary()}. %% @doc %% Lists the user's or organization's API and repository keys. @@ -79,6 +72,12 @@ get(Config, Name) when is_map(Config) and is_binary(Name) -> %% @doc %% Adds a new API or repository key. %% +%% A permission is a map of `#{<<"domain">> => Domain, <<"resource"> => Resource}'. +%% +%% Valid `Domain' values: `<<"api">> | <<"repository">> | <<"repositories">>'. +%% +%% Valid `Resource' values: `<<"read">> | <<"write">>'. +%% %% Examples: %% %% ``` diff --git a/apps/rebar/src/vendored/r3_hex_api_package.erl b/apps/rebar/src/vendored/r3_hex_api_package.erl index 71c1ad10f..7cbbdf472 100644 --- a/apps/rebar/src/vendored/r3_hex_api_package.erl +++ b/apps/rebar/src/vendored/r3_hex_api_package.erl @@ -1,5 +1,7 @@ -%% Vendored from hex_core v0.7.1, do not edit manually +%% Vendored from hex_core v0.10.1, do not edit manually +%% @doc +%% Hex HTTP API - Packages. -module(r3_hex_api_package). -export([get/2, search/3]). @@ -27,7 +29,7 @@ %% ''' %% @end -spec get(r3_hex_core:config(), binary()) -> r3_hex_api:response(). -get(Config, Name) when is_map(Config) and is_binary(Name)-> +get(Config, Name) when is_map(Config) and is_binary(Name) -> Path = r3_hex_api:build_repository_path(Config, ["packages", Name]), r3_hex_api:get(Config, Path). @@ -37,14 +39,16 @@ get(Config, Name) when is_map(Config) and is_binary(Name)-> %% Examples: %% %% ``` -%% > r3_hex_api_package:search(r3_hex_core:default_config(), <<"package">>, []). +%% > r3_hex_api_package:search(r3_hex_core:default_config(), <<"package">>, [{page, 1}]). %% {ok, {200, ..., [ %% #{<<"name">> => <<"package1">>, ...}, %% ... %% ]}} %% ''' --spec search(r3_hex_core:config(), binary(), list(binary())) -> r3_hex_api:response(). -search(Config, Query, SearchParams) when is_map(Config) and is_binary(Query) and is_list(SearchParams) -> +-spec search(r3_hex_core:config(), binary(), [{term(), term()}]) -> r3_hex_api:response(). +search(Config, Query, SearchParams) when + is_map(Config) and is_binary(Query) and is_list(SearchParams) +-> QueryString = r3_hex_api:encode_query_string([{search, Query} | SearchParams]), Path = r3_hex_api:join_path_segments(r3_hex_api:build_repository_path(Config, ["packages"])), PathQuery = <>, diff --git a/apps/rebar/src/vendored/r3_hex_api_package_owner.erl b/apps/rebar/src/vendored/r3_hex_api_package_owner.erl index 396b23087..7bcd0f276 100644 --- a/apps/rebar/src/vendored/r3_hex_api_package_owner.erl +++ b/apps/rebar/src/vendored/r3_hex_api_package_owner.erl @@ -1,5 +1,7 @@ -%% Vendored from hex_core v0.7.1, do not edit manually +%% Vendored from hex_core v0.10.1, do not edit manually +%% @doc +%% Hex HTTP API - Package Owners. -module(r3_hex_api_package_owner). -export([ add/5, @@ -52,8 +54,12 @@ list(Config, PackageName) when is_binary(PackageName) -> %% ''' %% @end -spec get(r3_hex_core:config(), binary(), binary()) -> r3_hex_api:response(). -get(Config, PackageName, UsernameOrEmail) when is_map(Config) and is_binary(PackageName) and is_binary(UsernameOrEmail) -> - Path = r3_hex_api:build_repository_path(Config, ["packages", PackageName, "owners", UsernameOrEmail]), +get(Config, PackageName, UsernameOrEmail) when + is_map(Config) and is_binary(PackageName) and is_binary(UsernameOrEmail) +-> + Path = r3_hex_api:build_repository_path(Config, [ + "packages", PackageName, "owners", UsernameOrEmail + ]), r3_hex_api:get(Config, Path). %% @doc @@ -76,12 +82,15 @@ get(Config, PackageName, UsernameOrEmail) when is_map(Config) and is_binary(Pack %% ''' %% @end -spec add(r3_hex_core:config(), binary(), binary(), binary(), boolean()) -> r3_hex_api:response(). -add(Config, PackageName, UsernameOrEmail, Level, Transfer) -when is_binary(PackageName) and is_binary(UsernameOrEmail) and is_map(Config) and is_binary(Level) and is_boolean(Transfer) -> - Path = r3_hex_api:build_repository_path(Config, ["packages", PackageName, "owners", UsernameOrEmail]), +add(Config, PackageName, UsernameOrEmail, Level, Transfer) when + is_binary(PackageName) and is_binary(UsernameOrEmail) and is_map(Config) and is_binary(Level) and + is_boolean(Transfer) +-> + Path = r3_hex_api:build_repository_path(Config, [ + "packages", PackageName, "owners", UsernameOrEmail + ]), r3_hex_api:put(Config, Path, #{<<"level">> => Level, <<"transfer">> => Transfer}). - %% @doc %% Deletes a packages owner. %% @@ -93,6 +102,10 @@ when is_binary(PackageName) and is_binary(UsernameOrEmail) and is_map(Config) an %% ''' %% @end -spec delete(r3_hex_core:config(), binary(), binary()) -> r3_hex_api:response(). -delete(Config, PackageName, UsernameOrEmail) when is_map(Config) and is_binary(PackageName) and is_binary(UsernameOrEmail) -> - Path = r3_hex_api:build_repository_path(Config, ["packages", PackageName, "owners", UsernameOrEmail]), +delete(Config, PackageName, UsernameOrEmail) when + is_map(Config) and is_binary(PackageName) and is_binary(UsernameOrEmail) +-> + Path = r3_hex_api:build_repository_path(Config, [ + "packages", PackageName, "owners", UsernameOrEmail + ]), r3_hex_api:delete(Config, Path). diff --git a/apps/rebar/src/vendored/r3_hex_api_release.erl b/apps/rebar/src/vendored/r3_hex_api_release.erl index 92d9fdd2f..f10585dc5 100644 --- a/apps/rebar/src/vendored/r3_hex_api_release.erl +++ b/apps/rebar/src/vendored/r3_hex_api_release.erl @@ -1,5 +1,7 @@ -%% Vendored from hex_core v0.7.1, do not edit manually +%% Vendored from hex_core v0.10.1, do not edit manually +%% @doc +%% Hex HTTP API - Releases. -module(r3_hex_api_release). -export([ delete/3, @@ -16,11 +18,7 @@ -type retirement_reason() :: other | invalid | security | deprecated | renamed. --ifdef(OTP_19). -type retirement_params() :: #{reason := retirement_reason(), message => binary()}. --else. --type retirement_params() :: #{reason => retirement_reason(), message => binary()}. --endif. %% @doc %% Gets a package release. %% @@ -79,7 +77,6 @@ get(Config, Name, Version) when is_map(Config) and is_binary(Name) and is_binary -spec publish(r3_hex_core:config(), binary()) -> r3_hex_api:response(). publish(Config, Tarball) -> publish(Config, Tarball, []). - %% @doc %% Publishes a new package release with query parameters. %% @@ -109,8 +106,12 @@ publish(Config, Tarball) -> publish(Config, Tarball, []). %% ''' %% @end -spec publish(r3_hex_core:config(), binary(), publish_params()) -> r3_hex_api:response(). -publish(Config, Tarball, Params) when is_map(Config) andalso is_binary(Tarball) andalso is_list(Params)-> - QueryString = r3_hex_api:encode_query_string([{replace, proplists:get_value(replace, Params, false)}]), +publish(Config, Tarball, Params) when + is_map(Config) andalso is_binary(Tarball) andalso is_list(Params) +-> + QueryString = r3_hex_api:encode_query_string([ + {replace, proplists:get_value(replace, Params, false)} + ]), Path = r3_hex_api:join_path_segments(r3_hex_api:build_repository_path(Config, ["publish"])), PathWithQuery = <>, TarballContentType = "application/octet-stream", @@ -144,7 +145,9 @@ delete(Config, Name, Version) when is_map(Config) and is_binary(Name) and is_bin %% ''' %% @end -spec retire(r3_hex_core:config(), binary(), binary(), retirement_params()) -> r3_hex_api:response(). -retire(Config, Name, Version, Params) when is_map(Config) and is_binary(Name) and is_binary(Version) -> +retire(Config, Name, Version, Params) when + is_map(Config) and is_binary(Name) and is_binary(Version) +-> Path = r3_hex_api:build_repository_path(Config, ["packages", Name, "releases", Version, "retire"]), r3_hex_api:post(Config, Path, Params). @@ -167,6 +170,7 @@ unretire(Config, Name, Version) when is_map(Config) and is_binary(Name) and is_b %% Internal functions %%==================================================================== +%% @private put_header(Name, Value, Config) -> Headers = maps:get(http_headers, Config, #{}), Headers2 = maps:put(Name, Value, Headers), diff --git a/apps/rebar/src/vendored/r3_hex_api_user.erl b/apps/rebar/src/vendored/r3_hex_api_user.erl index 526f62b83..70545c349 100644 --- a/apps/rebar/src/vendored/r3_hex_api_user.erl +++ b/apps/rebar/src/vendored/r3_hex_api_user.erl @@ -1,5 +1,7 @@ -%% Vendored from hex_core v0.7.1, do not edit manually +%% Vendored from hex_core v0.10.1, do not edit manually +%% @doc +%% Hex HTTP API - Users. -module(r3_hex_api_user). -export([ create/4, @@ -51,12 +53,13 @@ me(Config) when is_map(Config) -> %% ''' %% @end -spec create(r3_hex_core:config(), binary(), binary(), binary()) -> r3_hex_api:response(). -create(Config, Username, Password, Email) -when is_map(Config) and is_binary(Username) and is_binary(Password) and is_binary(Email) -> +create(Config, Username, Password, Email) when + is_map(Config) and is_binary(Username) and is_binary(Password) and is_binary(Email) +-> Params = #{ - <<"username">> => Username, - <<"password">> => Password, - <<"email">> => Email + <<"username">> => Username, + <<"password">> => Password, + <<"email">> => Email }, r3_hex_api:post(Config, ["users"], Params). diff --git a/apps/rebar/src/vendored/r3_hex_core.erl b/apps/rebar/src/vendored/r3_hex_core.erl index de7c89343..441d2b50d 100644 --- a/apps/rebar/src/vendored/r3_hex_core.erl +++ b/apps/rebar/src/vendored/r3_hex_core.erl @@ -1,39 +1,65 @@ -%% Vendored from hex_core v0.7.1, do not edit manually +%% Vendored from hex_core v0.10.1, do not edit manually %% @doc -%% hex_core entrypoint module. +%% `hex_core' entrypoint module. %% -%% ### Config +%% === Config === %% -%% Most functions in the hex_core API takes a configuration. The configuration sets things +%% Most functions in the `hex_core' API takes a configuration. The configuration sets things %% like HTTP client to use, and API and repository URL. Some of these configuration options %% will likely be static for your application and some may change depending on the function %% you call. %% -%% ##### Options +%% === Options === %% %% * `api_key' - Authentication key used when accessing the HTTP API. +%% %% * `api_organization' - Name of the organization endpoint in the API, this should %% for example be set when accessing key for a specific organization. +%% %% * `api_repository' - Name of the repository endpoint in the API, this should %% for example be set when accessing packages from a specific repository. +%% %% * `api_url' - URL to the HTTP API (default: `https://hex.pm/api'). -%% * `http_adapter' - A tuple of a callback module used for HTTP requests, see [`r3_hex_http'](r3_hex_http.html) -%% (default: `r3_hex_http_httpc') and the configuration to pass to the HTTP adapter. +%% +%% * `http_adapter' - A tuple of a callback module and its configuration used +%% for HTTP requests (default: `{r3_hex_http_httpc, #{profile => default}}'). See +%% {@link r3_hex_http} and {@link r3_hex_http_httpc} for more information. +%% %% * `http_etag' - Sets the `if-none-match' HTTP header with the given value to do a %% conditional HTTP request. -%% * `http_user_agent_fragment' - Will be appended to the `user-agent` HTTP header (default: `(httpc)'). +%% +%% * `http_user_agent_fragment' - Will be appended to the `user-agent' HTTP header (default: `<<"(httpc)">>'). +%% %% * `repo_key' - Authentication key used when accessing the repository. +%% %% * `repo_name' - Name of the repository, used for verifying the repository signature %% authenticity (default: `hexpm'). +%% %% * `repo_public_key' - Public key used to verify the repository signature %% (defaults to hexpm public key `https://hex.pm/docs/public_keys'). +%% %% * `repo_url' - URL to the repository (default: `https://repo.hex.pm'). +%% %% * `repo_organization' - Name of the organization repository, appends `/repos/:name' %% to the repository URL and overrides the `repo_name' option. +%% %% * `repo_verify' - If `true' will verify the repository signature (default: `true'). +%% %% * `repo_verify_origin' - If `true' will verify the repository signature origin, %% requires protobuf messages as of hex_core v0.4.0 (default: `true'). +%% +%% * `tarball_max_size' - Maximum size of package tarball, defaults to +%% `16_777_216' (16 MiB). Set to `infinity' to not enforce the limit. +%% +%% * `tarball_max_uncompressed_size' - Maximum size of uncompressed package tarball, defaults to +%% `134_217_728' (128 MiB). Set to `infinity' to not enforce the limit. +%% +%% * `docs_tarball_max_size' - Maximum size of docs tarball, defaults to +%% `16_777_216' (16 MiB). Set to `infinity' to not enforce the limit. +%% +%% * `docs_tarball_max_uncompressed_size' - Maximum size of uncompressed docs tarball, defaults to +%% `134_217_728' (128 MiB). Set to `infinity' to not enforce the limit. -module(r3_hex_core). -export([default_config/0]). @@ -41,16 +67,17 @@ -export_type([config/0]). %% https://hex.pm/docs/public_keys --define(HEXPM_PUBLIC_KEY, <<"-----BEGIN PUBLIC KEY----- -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApqREcFDt5vV21JVe2QNB -Edvzk6w36aNFhVGWN5toNJRjRJ6m4hIuG4KaXtDWVLjnvct6MYMfqhC79HAGwyF+ -IqR6Q6a5bbFSsImgBJwz1oadoVKD6ZNetAuCIK84cjMrEFRkELtEIPNHblCzUkkM -3rS9+DPlnfG8hBvGi6tvQIuZmXGCxF/73hU0/MyGhbmEjIKRtG6b0sJYKelRLTPW -XgK7s5pESgiwf2YC/2MGDXjAJfpfCd0RpLdvd4eRiXtVlE9qO9bND94E7PgQ/xqZ -J1i2xWFndWa6nfFnRxZmCStCOZWYYPlaxr+FZceFbpMwzTNs4g3d4tLNUcbKAIH4 -0wIDAQAB ------END PUBLIC KEY-----">>). - +-define(HEXPM_PUBLIC_KEY, << + "-----BEGIN PUBLIC KEY-----\n" + "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApqREcFDt5vV21JVe2QNB\n" + "Edvzk6w36aNFhVGWN5toNJRjRJ6m4hIuG4KaXtDWVLjnvct6MYMfqhC79HAGwyF+\n" + "IqR6Q6a5bbFSsImgBJwz1oadoVKD6ZNetAuCIK84cjMrEFRkELtEIPNHblCzUkkM\n" + "3rS9+DPlnfG8hBvGi6tvQIuZmXGCxF/73hU0/MyGhbmEjIKRtG6b0sJYKelRLTPW\n" + "XgK7s5pESgiwf2YC/2MGDXjAJfpfCd0RpLdvd4eRiXtVlE9qO9bND94E7PgQ/xqZ\n" + "J1i2xWFndWa6nfFnRxZmCStCOZWYYPlaxr+FZceFbpMwzTNs4g3d4tLNUcbKAIH4\n" + "0wIDAQAB\n" + "-----END PUBLIC KEY-----" +>>). -type config() :: #{ api_key => binary() | undefined, @@ -68,8 +95,10 @@ J1i2xWFndWa6nfFnRxZmCStCOZWYYPlaxr+FZceFbpMwzTNs4g3d4tLNUcbKAIH4 repo_organization => binary() | undefined, repo_verify => boolean(), repo_verify_origin => boolean(), - tarball_max_size => pos_integer(), - tarball_max_uncompressed_size => pos_integer() + tarball_max_size => pos_integer() | infinity, + tarball_max_uncompressed_size => pos_integer() | infinity, + docs_tarball_max_size => pos_integer() | infinity, + docs_tarball_max_uncompressed_size => pos_integer() | infinity }. -spec default_config() -> config(). @@ -90,6 +119,8 @@ default_config() -> repo_organization => undefined, repo_verify => true, repo_verify_origin => true, - tarball_max_size => 8 * 1024 * 1024, - tarball_max_uncompressed_size => 64 * 1024 * 1024 + tarball_max_size => 16 * 1024 * 1024, + tarball_max_uncompressed_size => 128 * 1024 * 1024, + docs_tarball_max_size => 16 * 1024 * 1024, + docs_tarball_max_uncompressed_size => 128 * 1024 * 1024 }. diff --git a/apps/rebar/src/vendored/r3_hex_core.hrl b/apps/rebar/src/vendored/r3_hex_core.hrl index e3dacdab1..f0171ced7 100644 --- a/apps/rebar/src/vendored/r3_hex_core.hrl +++ b/apps/rebar/src/vendored/r3_hex_core.hrl @@ -1,3 +1,3 @@ -%% Vendored from hex_core v0.7.1, do not edit manually +%% Vendored from hex_core v0.10.1, do not edit manually --define(HEX_CORE_VERSION, "0.7.1"). +-define(HEX_CORE_VERSION, "0.10.1"). diff --git a/apps/rebar/src/vendored/r3_hex_erl_tar.erl b/apps/rebar/src/vendored/r3_hex_erl_tar.erl index a015d23f1..cfd62bc8b 100644 --- a/apps/rebar/src/vendored/r3_hex_erl_tar.erl +++ b/apps/rebar/src/vendored/r3_hex_erl_tar.erl @@ -1,4 +1,4 @@ -%% Vendored from hex_core v0.7.1, do not edit manually +%% Vendored from hex_core v0.10.1, do not edit manually %% @private %% Copied from https://github.com/erlang/otp/blob/OTP-20.0.1/lib/stdlib/src/erl_tar.erl diff --git a/apps/rebar/src/vendored/r3_hex_erl_tar.hrl b/apps/rebar/src/vendored/r3_hex_erl_tar.hrl index e3f7bab2b..b689c8b79 100644 --- a/apps/rebar/src/vendored/r3_hex_erl_tar.hrl +++ b/apps/rebar/src/vendored/r3_hex_erl_tar.hrl @@ -1,4 +1,4 @@ -%% Vendored from hex_core v0.7.1, do not edit manually +%% Vendored from hex_core v0.10.1, do not edit manually % Copied from https://github.com/erlang/otp/blob/OTP-20.0.1/lib/stdlib/src/erl_tar.hrl @@ -36,7 +36,7 @@ %% Options used when reading a tar archive. -record(read_opts, { cwd :: string(), %% Current working directory. - keep_old_files = false :: boolean(), %% Overwrite or not. + keep_old_files = false :: boolean(), %% Owerwrite or not. files = all, %% Set of files to extract (or all) output = file :: 'file' | 'memory', open_mode = [], %% Open mode options. @@ -202,7 +202,7 @@ %% These constants (except S_IFMT) are %% used to determine what type of device %% a file is. Namely, `S_IFMT band file_info.mode` -%% will equal one of these constants, and tells us +%% will equal one of these contants, and tells us %% which type it is. The stdlib file_info record %% does not differentiate between device types, and %% will not allow us to differentiate between sockets diff --git a/apps/rebar/src/vendored/r3_hex_filename.erl b/apps/rebar/src/vendored/r3_hex_filename.erl index 34ebc0880..d3ff344c1 100644 --- a/apps/rebar/src/vendored/r3_hex_filename.erl +++ b/apps/rebar/src/vendored/r3_hex_filename.erl @@ -1,4 +1,4 @@ -%% Vendored from hex_core v0.7.1, do not edit manually +%% Vendored from hex_core v0.10.1, do not edit manually % @private % Excerpt from https://github.com/erlang/otp/blob/OTP-20.0.1/lib/stdlib/src/filename.erl#L761-L788 @@ -39,16 +39,16 @@ safe_relative_path(Path) -> unsafe end. -safe_relative_path_1(["."|T], Acc) -> +safe_relative_path_1(["." | T], Acc) -> safe_relative_path_1(T, Acc); -safe_relative_path_1([<<".">>|T], Acc) -> +safe_relative_path_1([<<".">> | T], Acc) -> safe_relative_path_1(T, Acc); -safe_relative_path_1([".."|T], Acc) -> +safe_relative_path_1([".." | T], Acc) -> climb(T, Acc); -safe_relative_path_1([<<"..">>|T], Acc) -> +safe_relative_path_1([<<"..">> | T], Acc) -> climb(T, Acc); -safe_relative_path_1([H|T], Acc) -> - safe_relative_path_1(T, [H|Acc]); +safe_relative_path_1([H | T], Acc) -> + safe_relative_path_1(T, [H | Acc]); safe_relative_path_1([], []) -> []; safe_relative_path_1([], Acc) -> @@ -56,5 +56,5 @@ safe_relative_path_1([], Acc) -> climb(_, []) -> unsafe; -climb(T, [_|Acc]) -> +climb(T, [_ | Acc]) -> safe_relative_path_1(T, Acc). diff --git a/apps/rebar/src/vendored/r3_hex_http.erl b/apps/rebar/src/vendored/r3_hex_http.erl index 19ea90b53..5e79a8ae1 100644 --- a/apps/rebar/src/vendored/r3_hex_http.erl +++ b/apps/rebar/src/vendored/r3_hex_http.erl @@ -1,5 +1,7 @@ -%% Vendored from hex_core v0.7.1, do not edit manually +%% Vendored from hex_core v0.10.1, do not edit manually +%% @doc +%% HTTP contract. -module(r3_hex_http). -export([request/5]). -ifdef(TEST). @@ -16,26 +18,30 @@ -type adapter_config() :: map(). -callback request(method(), URI :: binary(), headers(), body(), adapter_config()) -> - {ok, status(), headers(), binary()} | - {error, term()}. + {ok, {status(), headers(), binary()}} + | {error, term()}. -spec request(r3_hex_core:config(), method(), URI :: binary(), headers(), body()) -> {ok, {status(), headers(), binary()}} | {error, term()}. request(Config, Method, URI, Headers, Body) when is_binary(URI) and is_map(Headers) -> - {Adapter, AdapterConfig} = case maps:get(http_adapter, Config, {r3_hex_http_httpc, #{}}) of - {Adapter0, AdapterConfig0} -> - {Adapter0, AdapterConfig0}; - %% TODO: remove in v0.9 - Adapter0 when is_atom(Adapter0) -> - AdapterConfig0 = maps:get(http_adapter_config, Config, #{}), - io:format("[r3_hex_http] setting #{http_adapter => Module, http_adapter_config => Map} " - "is deprecated in favour of #{http_adapter => {Module, Map}}~n"), - {Adapter0, AdapterConfig0} - end, + {Adapter, AdapterConfig} = + case maps:get(http_adapter, Config, {r3_hex_http_httpc, #{}}) of + {Adapter0, AdapterConfig0} -> + {Adapter0, AdapterConfig0}; + %% TODO: remove in v0.9 + Adapter0 when is_atom(Adapter0) -> + AdapterConfig0 = maps:get(http_adapter_config, Config, #{}), + io:format( + "[r3_hex_http] setting #{http_adapter => Module, http_adapter_config => Map} " + "is deprecated in favour of #{http_adapter => {Module, Map}}~n" + ), + {Adapter0, AdapterConfig0} + end, UserAgentFragment = maps:get(http_user_agent_fragment, Config), Headers2 = put_new(<<"user-agent">>, user_agent(UserAgentFragment), Headers), Adapter:request(Method, URI, Headers2, Body, AdapterConfig). +%% @private user_agent(UserAgentFragment) -> OTPRelease = erlang:system_info(otp_release), ERTSVersion = erlang:system_info(version), @@ -46,6 +52,7 @@ user_agent(UserAgentFragment) -> %% Internal functions %%==================================================================== +%% @private put_new(Key, Value, Map) -> case maps:find(Key, Map) of {ok, _} -> Map; diff --git a/apps/rebar/src/vendored/r3_hex_http_httpc.erl b/apps/rebar/src/vendored/r3_hex_http_httpc.erl index 79a354779..3af77e2c1 100644 --- a/apps/rebar/src/vendored/r3_hex_http_httpc.erl +++ b/apps/rebar/src/vendored/r3_hex_http_httpc.erl @@ -1,6 +1,16 @@ -%% Vendored from hex_core v0.7.1, do not edit manually +%% Vendored from hex_core v0.10.1, do not edit manually -%% @hidden +%% @doc +%% httpc-based implementation of {@link r3_hex_http} contract. +%% +%% Configuration keys: +%% +%% * `profile' - the name of the profile, defaults to `default'. See +%% {@link httpc:set_options/2} for more information on setting +%% options on profiles. +%% +%% * `http_options' - a list of HTTP options, defaults to `[]'. See +%% {@link httpc:request/5} for a list of available HTTP options. -module(r3_hex_http_httpc). -behaviour(r3_hex_http). @@ -10,32 +20,67 @@ %% API functions %%==================================================================== -request(Method, URI, ReqHeaders, Body, AdapterConfig) -> +request(Method, URI, ReqHeaders, Body, AdapterConfig) when is_binary(URI) -> Profile = maps:get(profile, AdapterConfig, default), + HTTPOptions = maps:get(http_options, AdapterConfig, []), + + HTTPS = + case URI of + <<"https", _/binary>> -> true; + _ -> false + end, + SSLOpts = proplists:get_value(ssl, HTTPOptions), + + if + HTTPS == true andalso SSLOpts == undefined -> + io:format( + "[r3_hex_http_httpc] using default ssl options which are insecure.~n" + "Configure your adapter with: " + "{r3_hex_http_httpc, #{http_options => [{ssl, SslOpts}]}}~n" + ); + true -> + ok + end, + Request = build_request(URI, ReqHeaders, Body), - case httpc:request(Method, Request, [], [{body_format, binary}], Profile) of + case httpc:request(Method, Request, HTTPOptions, [{body_format, binary}], Profile) of {ok, {{_, StatusCode, _}, RespHeaders, RespBody}} -> RespHeaders2 = load_headers(RespHeaders), {ok, {StatusCode, RespHeaders2, RespBody}}; - {error, Reason} -> {error, Reason} + {error, Reason} -> + {error, Reason} end. %%==================================================================== %% Internal functions %%==================================================================== +%% @private build_request(URI, ReqHeaders, Body) -> build_request2(binary_to_list(URI), dump_headers(ReqHeaders), Body). +%% @private build_request2(URI, ReqHeaders, undefined) -> {URI, ReqHeaders}; build_request2(URI, ReqHeaders, {ContentType, Body}) -> {URI, ReqHeaders, ContentType, Body}. +%% @private dump_headers(Map) -> - maps:fold(fun(K, V, Acc) -> - [{binary_to_list(K), binary_to_list(V)} | Acc] end, [], Map). + maps:fold( + fun(K, V, Acc) -> + [{binary_to_list(K), binary_to_list(V)} | Acc] + end, + [], + Map + ). +%% @private load_headers(List) -> - lists:foldl(fun({K, V}, Acc) -> - maps:put(list_to_binary(K), list_to_binary(V), Acc) end, #{}, List). + lists:foldl( + fun({K, V}, Acc) -> + maps:put(list_to_binary(K), list_to_binary(V), Acc) + end, + #{}, + List + ). diff --git a/apps/rebar/src/vendored/r3_hex_licenses.erl b/apps/rebar/src/vendored/r3_hex_licenses.erl new file mode 100644 index 000000000..ba42b071b --- /dev/null +++ b/apps/rebar/src/vendored/r3_hex_licenses.erl @@ -0,0 +1,670 @@ +%% Vendored from hex_core v0.10.1, do not edit manually + +%% @doc +%% Hex Licenses. +%% File generated by https://github.com/supersimple/spdx. Do not edit manually. + +-module(r3_hex_licenses). + +-export([valid/1]). + +valid(<<"0BSD">>) -> true; +valid(<<"3D-Slicer-1.0">>) -> true; +valid(<<"AAL">>) -> true; +valid(<<"ADSL">>) -> true; +valid(<<"AFL-1.1">>) -> true; +valid(<<"AFL-1.2">>) -> true; +valid(<<"AFL-2.0">>) -> true; +valid(<<"AFL-2.1">>) -> true; +valid(<<"AFL-3.0">>) -> true; +valid(<<"AGPL-1.0">>) -> true; +valid(<<"AGPL-1.0-only">>) -> true; +valid(<<"AGPL-1.0-or-later">>) -> true; +valid(<<"AGPL-3.0">>) -> true; +valid(<<"AGPL-3.0-only">>) -> true; +valid(<<"AGPL-3.0-or-later">>) -> true; +valid(<<"AMD-newlib">>) -> true; +valid(<<"AMDPLPA">>) -> true; +valid(<<"AML">>) -> true; +valid(<<"AML-glslang">>) -> true; +valid(<<"AMPAS">>) -> true; +valid(<<"ANTLR-PD">>) -> true; +valid(<<"ANTLR-PD-fallback">>) -> true; +valid(<<"APAFML">>) -> true; +valid(<<"APL-1.0">>) -> true; +valid(<<"APSL-1.0">>) -> true; +valid(<<"APSL-1.1">>) -> true; +valid(<<"APSL-1.2">>) -> true; +valid(<<"APSL-2.0">>) -> true; +valid(<<"ASWF-Digital-Assets-1.0">>) -> true; +valid(<<"ASWF-Digital-Assets-1.1">>) -> true; +valid(<<"Abstyles">>) -> true; +valid(<<"AdaCore-doc">>) -> true; +valid(<<"Adobe-2006">>) -> true; +valid(<<"Adobe-Display-PostScript">>) -> true; +valid(<<"Adobe-Glyph">>) -> true; +valid(<<"Adobe-Utopia">>) -> true; +valid(<<"Afmparse">>) -> true; +valid(<<"Aladdin">>) -> true; +valid(<<"Apache-1.0">>) -> true; +valid(<<"Apache-1.1">>) -> true; +valid(<<"Apache-2.0">>) -> true; +valid(<<"App-s2p">>) -> true; +valid(<<"Arphic-1999">>) -> true; +valid(<<"Artistic-1.0">>) -> true; +valid(<<"Artistic-1.0-Perl">>) -> true; +valid(<<"Artistic-1.0-cl8">>) -> true; +valid(<<"Artistic-2.0">>) -> true; +valid(<<"BSD-1-Clause">>) -> true; +valid(<<"BSD-2-Clause">>) -> true; +valid(<<"BSD-2-Clause-Darwin">>) -> true; +valid(<<"BSD-2-Clause-FreeBSD">>) -> true; +valid(<<"BSD-2-Clause-NetBSD">>) -> true; +valid(<<"BSD-2-Clause-Patent">>) -> true; +valid(<<"BSD-2-Clause-Views">>) -> true; +valid(<<"BSD-2-Clause-first-lines">>) -> true; +valid(<<"BSD-3-Clause">>) -> true; +valid(<<"BSD-3-Clause-Attribution">>) -> true; +valid(<<"BSD-3-Clause-Clear">>) -> true; +valid(<<"BSD-3-Clause-HP">>) -> true; +valid(<<"BSD-3-Clause-LBNL">>) -> true; +valid(<<"BSD-3-Clause-Modification">>) -> true; +valid(<<"BSD-3-Clause-No-Military-License">>) -> true; +valid(<<"BSD-3-Clause-No-Nuclear-License">>) -> true; +valid(<<"BSD-3-Clause-No-Nuclear-License-2014">>) -> true; +valid(<<"BSD-3-Clause-No-Nuclear-Warranty">>) -> true; +valid(<<"BSD-3-Clause-Open-MPI">>) -> true; +valid(<<"BSD-3-Clause-Sun">>) -> true; +valid(<<"BSD-3-Clause-acpica">>) -> true; +valid(<<"BSD-3-Clause-flex">>) -> true; +valid(<<"BSD-4-Clause">>) -> true; +valid(<<"BSD-4-Clause-Shortened">>) -> true; +valid(<<"BSD-4-Clause-UC">>) -> true; +valid(<<"BSD-4.3RENO">>) -> true; +valid(<<"BSD-4.3TAHOE">>) -> true; +valid(<<"BSD-Advertising-Acknowledgement">>) -> true; +valid(<<"BSD-Attribution-HPND-disclaimer">>) -> true; +valid(<<"BSD-Inferno-Nettverk">>) -> true; +valid(<<"BSD-Protection">>) -> true; +valid(<<"BSD-Source-Code">>) -> true; +valid(<<"BSD-Source-beginning-file">>) -> true; +valid(<<"BSD-Systemics">>) -> true; +valid(<<"BSD-Systemics-W3Works">>) -> true; +valid(<<"BSL-1.0">>) -> true; +valid(<<"BUSL-1.1">>) -> true; +valid(<<"Baekmuk">>) -> true; +valid(<<"Bahyph">>) -> true; +valid(<<"Barr">>) -> true; +valid(<<"Beerware">>) -> true; +valid(<<"BitTorrent-1.0">>) -> true; +valid(<<"BitTorrent-1.1">>) -> true; +valid(<<"Bitstream-Charter">>) -> true; +valid(<<"Bitstream-Vera">>) -> true; +valid(<<"BlueOak-1.0.0">>) -> true; +valid(<<"Boehm-GC">>) -> true; +valid(<<"Borceux">>) -> true; +valid(<<"Brian-Gladman-2-Clause">>) -> true; +valid(<<"Brian-Gladman-3-Clause">>) -> true; +valid(<<"C-UDA-1.0">>) -> true; +valid(<<"CAL-1.0">>) -> true; +valid(<<"CAL-1.0-Combined-Work-Exception">>) -> true; +valid(<<"CATOSL-1.1">>) -> true; +valid(<<"CC-BY-1.0">>) -> true; +valid(<<"CC-BY-2.0">>) -> true; +valid(<<"CC-BY-2.5">>) -> true; +valid(<<"CC-BY-2.5-AU">>) -> true; +valid(<<"CC-BY-3.0">>) -> true; +valid(<<"CC-BY-3.0-AT">>) -> true; +valid(<<"CC-BY-3.0-AU">>) -> true; +valid(<<"CC-BY-3.0-DE">>) -> true; +valid(<<"CC-BY-3.0-IGO">>) -> true; +valid(<<"CC-BY-3.0-NL">>) -> true; +valid(<<"CC-BY-3.0-US">>) -> true; +valid(<<"CC-BY-4.0">>) -> true; +valid(<<"CC-BY-NC-1.0">>) -> true; +valid(<<"CC-BY-NC-2.0">>) -> true; +valid(<<"CC-BY-NC-2.5">>) -> true; +valid(<<"CC-BY-NC-3.0">>) -> true; +valid(<<"CC-BY-NC-3.0-DE">>) -> true; +valid(<<"CC-BY-NC-4.0">>) -> true; +valid(<<"CC-BY-NC-ND-1.0">>) -> true; +valid(<<"CC-BY-NC-ND-2.0">>) -> true; +valid(<<"CC-BY-NC-ND-2.5">>) -> true; +valid(<<"CC-BY-NC-ND-3.0">>) -> true; +valid(<<"CC-BY-NC-ND-3.0-DE">>) -> true; +valid(<<"CC-BY-NC-ND-3.0-IGO">>) -> true; +valid(<<"CC-BY-NC-ND-4.0">>) -> true; +valid(<<"CC-BY-NC-SA-1.0">>) -> true; +valid(<<"CC-BY-NC-SA-2.0">>) -> true; +valid(<<"CC-BY-NC-SA-2.0-DE">>) -> true; +valid(<<"CC-BY-NC-SA-2.0-FR">>) -> true; +valid(<<"CC-BY-NC-SA-2.0-UK">>) -> true; +valid(<<"CC-BY-NC-SA-2.5">>) -> true; +valid(<<"CC-BY-NC-SA-3.0">>) -> true; +valid(<<"CC-BY-NC-SA-3.0-DE">>) -> true; +valid(<<"CC-BY-NC-SA-3.0-IGO">>) -> true; +valid(<<"CC-BY-NC-SA-4.0">>) -> true; +valid(<<"CC-BY-ND-1.0">>) -> true; +valid(<<"CC-BY-ND-2.0">>) -> true; +valid(<<"CC-BY-ND-2.5">>) -> true; +valid(<<"CC-BY-ND-3.0">>) -> true; +valid(<<"CC-BY-ND-3.0-DE">>) -> true; +valid(<<"CC-BY-ND-4.0">>) -> true; +valid(<<"CC-BY-SA-1.0">>) -> true; +valid(<<"CC-BY-SA-2.0">>) -> true; +valid(<<"CC-BY-SA-2.0-UK">>) -> true; +valid(<<"CC-BY-SA-2.1-JP">>) -> true; +valid(<<"CC-BY-SA-2.5">>) -> true; +valid(<<"CC-BY-SA-3.0">>) -> true; +valid(<<"CC-BY-SA-3.0-AT">>) -> true; +valid(<<"CC-BY-SA-3.0-DE">>) -> true; +valid(<<"CC-BY-SA-3.0-IGO">>) -> true; +valid(<<"CC-BY-SA-4.0">>) -> true; +valid(<<"CC-PDDC">>) -> true; +valid(<<"CC0-1.0">>) -> true; +valid(<<"CDDL-1.0">>) -> true; +valid(<<"CDDL-1.1">>) -> true; +valid(<<"CDL-1.0">>) -> true; +valid(<<"CDLA-Permissive-1.0">>) -> true; +valid(<<"CDLA-Permissive-2.0">>) -> true; +valid(<<"CDLA-Sharing-1.0">>) -> true; +valid(<<"CECILL-1.0">>) -> true; +valid(<<"CECILL-1.1">>) -> true; +valid(<<"CECILL-2.0">>) -> true; +valid(<<"CECILL-2.1">>) -> true; +valid(<<"CECILL-B">>) -> true; +valid(<<"CECILL-C">>) -> true; +valid(<<"CERN-OHL-1.1">>) -> true; +valid(<<"CERN-OHL-1.2">>) -> true; +valid(<<"CERN-OHL-P-2.0">>) -> true; +valid(<<"CERN-OHL-S-2.0">>) -> true; +valid(<<"CERN-OHL-W-2.0">>) -> true; +valid(<<"CFITSIO">>) -> true; +valid(<<"CMU-Mach">>) -> true; +valid(<<"CMU-Mach-nodoc">>) -> true; +valid(<<"CNRI-Jython">>) -> true; +valid(<<"CNRI-Python">>) -> true; +valid(<<"CNRI-Python-GPL-Compatible">>) -> true; +valid(<<"COIL-1.0">>) -> true; +valid(<<"CPAL-1.0">>) -> true; +valid(<<"CPL-1.0">>) -> true; +valid(<<"CPOL-1.02">>) -> true; +valid(<<"CUA-OPL-1.0">>) -> true; +valid(<<"Caldera">>) -> true; +valid(<<"Caldera-no-preamble">>) -> true; +valid(<<"Catharon">>) -> true; +valid(<<"ClArtistic">>) -> true; +valid(<<"Clips">>) -> true; +valid(<<"Community-Spec-1.0">>) -> true; +valid(<<"Condor-1.1">>) -> true; +valid(<<"Cornell-Lossless-JPEG">>) -> true; +valid(<<"Cronyx">>) -> true; +valid(<<"Crossword">>) -> true; +valid(<<"CrystalStacker">>) -> true; +valid(<<"Cube">>) -> true; +valid(<<"D-FSL-1.0">>) -> true; +valid(<<"DEC-3-Clause">>) -> true; +valid(<<"DL-DE-BY-2.0">>) -> true; +valid(<<"DL-DE-ZERO-2.0">>) -> true; +valid(<<"DOC">>) -> true; +valid(<<"DRL-1.0">>) -> true; +valid(<<"DRL-1.1">>) -> true; +valid(<<"DSDP">>) -> true; +valid(<<"Dotseqn">>) -> true; +valid(<<"ECL-1.0">>) -> true; +valid(<<"ECL-2.0">>) -> true; +valid(<<"EFL-1.0">>) -> true; +valid(<<"EFL-2.0">>) -> true; +valid(<<"EPICS">>) -> true; +valid(<<"EPL-1.0">>) -> true; +valid(<<"EPL-2.0">>) -> true; +valid(<<"EUDatagrid">>) -> true; +valid(<<"EUPL-1.0">>) -> true; +valid(<<"EUPL-1.1">>) -> true; +valid(<<"EUPL-1.2">>) -> true; +valid(<<"Elastic-2.0">>) -> true; +valid(<<"Entessa">>) -> true; +valid(<<"ErlPL-1.1">>) -> true; +valid(<<"Eurosym">>) -> true; +valid(<<"FBM">>) -> true; +valid(<<"FDK-AAC">>) -> true; +valid(<<"FSFAP">>) -> true; +valid(<<"FSFAP-no-warranty-disclaimer">>) -> true; +valid(<<"FSFUL">>) -> true; +valid(<<"FSFULLR">>) -> true; +valid(<<"FSFULLRWD">>) -> true; +valid(<<"FTL">>) -> true; +valid(<<"Fair">>) -> true; +valid(<<"Ferguson-Twofish">>) -> true; +valid(<<"Frameworx-1.0">>) -> true; +valid(<<"FreeBSD-DOC">>) -> true; +valid(<<"FreeImage">>) -> true; +valid(<<"Furuseth">>) -> true; +valid(<<"GCR-docs">>) -> true; +valid(<<"GD">>) -> true; +valid(<<"GFDL-1.1">>) -> true; +valid(<<"GFDL-1.1-invariants-only">>) -> true; +valid(<<"GFDL-1.1-invariants-or-later">>) -> true; +valid(<<"GFDL-1.1-no-invariants-only">>) -> true; +valid(<<"GFDL-1.1-no-invariants-or-later">>) -> true; +valid(<<"GFDL-1.1-only">>) -> true; +valid(<<"GFDL-1.1-or-later">>) -> true; +valid(<<"GFDL-1.2">>) -> true; +valid(<<"GFDL-1.2-invariants-only">>) -> true; +valid(<<"GFDL-1.2-invariants-or-later">>) -> true; +valid(<<"GFDL-1.2-no-invariants-only">>) -> true; +valid(<<"GFDL-1.2-no-invariants-or-later">>) -> true; +valid(<<"GFDL-1.2-only">>) -> true; +valid(<<"GFDL-1.2-or-later">>) -> true; +valid(<<"GFDL-1.3">>) -> true; +valid(<<"GFDL-1.3-invariants-only">>) -> true; +valid(<<"GFDL-1.3-invariants-or-later">>) -> true; +valid(<<"GFDL-1.3-no-invariants-only">>) -> true; +valid(<<"GFDL-1.3-no-invariants-or-later">>) -> true; +valid(<<"GFDL-1.3-only">>) -> true; +valid(<<"GFDL-1.3-or-later">>) -> true; +valid(<<"GL2PS">>) -> true; +valid(<<"GLWTPL">>) -> true; +valid(<<"GPL-1.0">>) -> true; +valid(<<"GPL-1.0+">>) -> true; +valid(<<"GPL-1.0-only">>) -> true; +valid(<<"GPL-1.0-or-later">>) -> true; +valid(<<"GPL-2.0">>) -> true; +valid(<<"GPL-2.0+">>) -> true; +valid(<<"GPL-2.0-only">>) -> true; +valid(<<"GPL-2.0-or-later">>) -> true; +valid(<<"GPL-2.0-with-GCC-exception">>) -> true; +valid(<<"GPL-2.0-with-autoconf-exception">>) -> true; +valid(<<"GPL-2.0-with-bison-exception">>) -> true; +valid(<<"GPL-2.0-with-classpath-exception">>) -> true; +valid(<<"GPL-2.0-with-font-exception">>) -> true; +valid(<<"GPL-3.0">>) -> true; +valid(<<"GPL-3.0+">>) -> true; +valid(<<"GPL-3.0-only">>) -> true; +valid(<<"GPL-3.0-or-later">>) -> true; +valid(<<"GPL-3.0-with-GCC-exception">>) -> true; +valid(<<"GPL-3.0-with-autoconf-exception">>) -> true; +valid(<<"Giftware">>) -> true; +valid(<<"Glide">>) -> true; +valid(<<"Glulxe">>) -> true; +valid(<<"Graphics-Gems">>) -> true; +valid(<<"Gutmann">>) -> true; +valid(<<"HP-1986">>) -> true; +valid(<<"HP-1989">>) -> true; +valid(<<"HPND">>) -> true; +valid(<<"HPND-DEC">>) -> true; +valid(<<"HPND-Fenneberg-Livingston">>) -> true; +valid(<<"HPND-INRIA-IMAG">>) -> true; +valid(<<"HPND-Intel">>) -> true; +valid(<<"HPND-Kevlin-Henney">>) -> true; +valid(<<"HPND-MIT-disclaimer">>) -> true; +valid(<<"HPND-Markus-Kuhn">>) -> true; +valid(<<"HPND-Pbmplus">>) -> true; +valid(<<"HPND-UC">>) -> true; +valid(<<"HPND-UC-export-US">>) -> true; +valid(<<"HPND-doc">>) -> true; +valid(<<"HPND-doc-sell">>) -> true; +valid(<<"HPND-export-US">>) -> true; +valid(<<"HPND-export-US-acknowledgement">>) -> true; +valid(<<"HPND-export-US-modify">>) -> true; +valid(<<"HPND-export2-US">>) -> true; +valid(<<"HPND-merchantability-variant">>) -> true; +valid(<<"HPND-sell-MIT-disclaimer-xserver">>) -> true; +valid(<<"HPND-sell-regexpr">>) -> true; +valid(<<"HPND-sell-variant">>) -> true; +valid(<<"HPND-sell-variant-MIT-disclaimer">>) -> true; +valid(<<"HPND-sell-variant-MIT-disclaimer-rev">>) -> true; +valid(<<"HTMLTIDY">>) -> true; +valid(<<"HaskellReport">>) -> true; +valid(<<"Hippocratic-2.1">>) -> true; +valid(<<"IBM-pibs">>) -> true; +valid(<<"ICU">>) -> true; +valid(<<"IEC-Code-Components-EULA">>) -> true; +valid(<<"IJG">>) -> true; +valid(<<"IJG-short">>) -> true; +valid(<<"IPA">>) -> true; +valid(<<"IPL-1.0">>) -> true; +valid(<<"ISC">>) -> true; +valid(<<"ISC-Veillard">>) -> true; +valid(<<"ImageMagick">>) -> true; +valid(<<"Imlib2">>) -> true; +valid(<<"Info-ZIP">>) -> true; +valid(<<"Inner-Net-2.0">>) -> true; +valid(<<"Intel">>) -> true; +valid(<<"Intel-ACPI">>) -> true; +valid(<<"Interbase-1.0">>) -> true; +valid(<<"JPL-image">>) -> true; +valid(<<"JPNIC">>) -> true; +valid(<<"JSON">>) -> true; +valid(<<"Jam">>) -> true; +valid(<<"JasPer-2.0">>) -> true; +valid(<<"Kastrup">>) -> true; +valid(<<"Kazlib">>) -> true; +valid(<<"Knuth-CTAN">>) -> true; +valid(<<"LAL-1.2">>) -> true; +valid(<<"LAL-1.3">>) -> true; +valid(<<"LGPL-2.0">>) -> true; +valid(<<"LGPL-2.0+">>) -> true; +valid(<<"LGPL-2.0-only">>) -> true; +valid(<<"LGPL-2.0-or-later">>) -> true; +valid(<<"LGPL-2.1">>) -> true; +valid(<<"LGPL-2.1+">>) -> true; +valid(<<"LGPL-2.1-only">>) -> true; +valid(<<"LGPL-2.1-or-later">>) -> true; +valid(<<"LGPL-3.0">>) -> true; +valid(<<"LGPL-3.0+">>) -> true; +valid(<<"LGPL-3.0-only">>) -> true; +valid(<<"LGPL-3.0-or-later">>) -> true; +valid(<<"LGPLLR">>) -> true; +valid(<<"LOOP">>) -> true; +valid(<<"LPD-document">>) -> true; +valid(<<"LPL-1.0">>) -> true; +valid(<<"LPL-1.02">>) -> true; +valid(<<"LPPL-1.0">>) -> true; +valid(<<"LPPL-1.1">>) -> true; +valid(<<"LPPL-1.2">>) -> true; +valid(<<"LPPL-1.3a">>) -> true; +valid(<<"LPPL-1.3c">>) -> true; +valid(<<"LZMA-SDK-9.11-to-9.20">>) -> true; +valid(<<"LZMA-SDK-9.22">>) -> true; +valid(<<"Latex2e">>) -> true; +valid(<<"Latex2e-translated-notice">>) -> true; +valid(<<"Leptonica">>) -> true; +valid(<<"LiLiQ-P-1.1">>) -> true; +valid(<<"LiLiQ-R-1.1">>) -> true; +valid(<<"LiLiQ-Rplus-1.1">>) -> true; +valid(<<"Libpng">>) -> true; +valid(<<"Linux-OpenIB">>) -> true; +valid(<<"Linux-man-pages-1-para">>) -> true; +valid(<<"Linux-man-pages-copyleft">>) -> true; +valid(<<"Linux-man-pages-copyleft-2-para">>) -> true; +valid(<<"Linux-man-pages-copyleft-var">>) -> true; +valid(<<"Lucida-Bitmap-Fonts">>) -> true; +valid(<<"MIT">>) -> true; +valid(<<"MIT-0">>) -> true; +valid(<<"MIT-CMU">>) -> true; +valid(<<"MIT-Festival">>) -> true; +valid(<<"MIT-Khronos-old">>) -> true; +valid(<<"MIT-Modern-Variant">>) -> true; +valid(<<"MIT-Wu">>) -> true; +valid(<<"MIT-advertising">>) -> true; +valid(<<"MIT-enna">>) -> true; +valid(<<"MIT-feh">>) -> true; +valid(<<"MIT-open-group">>) -> true; +valid(<<"MIT-testregex">>) -> true; +valid(<<"MITNFA">>) -> true; +valid(<<"MMIXware">>) -> true; +valid(<<"MPEG-SSG">>) -> true; +valid(<<"MPL-1.0">>) -> true; +valid(<<"MPL-1.1">>) -> true; +valid(<<"MPL-2.0">>) -> true; +valid(<<"MPL-2.0-no-copyleft-exception">>) -> true; +valid(<<"MS-LPL">>) -> true; +valid(<<"MS-PL">>) -> true; +valid(<<"MS-RL">>) -> true; +valid(<<"MTLL">>) -> true; +valid(<<"Mackerras-3-Clause">>) -> true; +valid(<<"Mackerras-3-Clause-acknowledgment">>) -> true; +valid(<<"MakeIndex">>) -> true; +valid(<<"Martin-Birgmeier">>) -> true; +valid(<<"McPhee-slideshow">>) -> true; +valid(<<"Minpack">>) -> true; +valid(<<"MirOS">>) -> true; +valid(<<"Motosoto">>) -> true; +valid(<<"MulanPSL-1.0">>) -> true; +valid(<<"MulanPSL-2.0">>) -> true; +valid(<<"Multics">>) -> true; +valid(<<"Mup">>) -> true; +valid(<<"NAIST-2003">>) -> true; +valid(<<"NASA-1.3">>) -> true; +valid(<<"NBPL-1.0">>) -> true; +valid(<<"NCBI-PD">>) -> true; +valid(<<"NCGL-UK-2.0">>) -> true; +valid(<<"NCL">>) -> true; +valid(<<"NCSA">>) -> true; +valid(<<"NGPL">>) -> true; +valid(<<"NICTA-1.0">>) -> true; +valid(<<"NIST-PD">>) -> true; +valid(<<"NIST-PD-fallback">>) -> true; +valid(<<"NIST-Software">>) -> true; +valid(<<"NLOD-1.0">>) -> true; +valid(<<"NLOD-2.0">>) -> true; +valid(<<"NLPL">>) -> true; +valid(<<"NOSL">>) -> true; +valid(<<"NPL-1.0">>) -> true; +valid(<<"NPL-1.1">>) -> true; +valid(<<"NPOSL-3.0">>) -> true; +valid(<<"NRL">>) -> true; +valid(<<"NTP">>) -> true; +valid(<<"NTP-0">>) -> true; +valid(<<"Naumen">>) -> true; +valid(<<"Net-SNMP">>) -> true; +valid(<<"NetCDF">>) -> true; +valid(<<"Newsletr">>) -> true; +valid(<<"Nokia">>) -> true; +valid(<<"Noweb">>) -> true; +valid(<<"Nunit">>) -> true; +valid(<<"O-UDA-1.0">>) -> true; +valid(<<"OAR">>) -> true; +valid(<<"OCCT-PL">>) -> true; +valid(<<"OCLC-2.0">>) -> true; +valid(<<"ODC-By-1.0">>) -> true; +valid(<<"ODbL-1.0">>) -> true; +valid(<<"OFFIS">>) -> true; +valid(<<"OFL-1.0">>) -> true; +valid(<<"OFL-1.0-RFN">>) -> true; +valid(<<"OFL-1.0-no-RFN">>) -> true; +valid(<<"OFL-1.1">>) -> true; +valid(<<"OFL-1.1-RFN">>) -> true; +valid(<<"OFL-1.1-no-RFN">>) -> true; +valid(<<"OGC-1.0">>) -> true; +valid(<<"OGDL-Taiwan-1.0">>) -> true; +valid(<<"OGL-Canada-2.0">>) -> true; +valid(<<"OGL-UK-1.0">>) -> true; +valid(<<"OGL-UK-2.0">>) -> true; +valid(<<"OGL-UK-3.0">>) -> true; +valid(<<"OGTSL">>) -> true; +valid(<<"OLDAP-1.1">>) -> true; +valid(<<"OLDAP-1.2">>) -> true; +valid(<<"OLDAP-1.3">>) -> true; +valid(<<"OLDAP-1.4">>) -> true; +valid(<<"OLDAP-2.0">>) -> true; +valid(<<"OLDAP-2.0.1">>) -> true; +valid(<<"OLDAP-2.1">>) -> true; +valid(<<"OLDAP-2.2">>) -> true; +valid(<<"OLDAP-2.2.1">>) -> true; +valid(<<"OLDAP-2.2.2">>) -> true; +valid(<<"OLDAP-2.3">>) -> true; +valid(<<"OLDAP-2.4">>) -> true; +valid(<<"OLDAP-2.5">>) -> true; +valid(<<"OLDAP-2.6">>) -> true; +valid(<<"OLDAP-2.7">>) -> true; +valid(<<"OLDAP-2.8">>) -> true; +valid(<<"OLFL-1.3">>) -> true; +valid(<<"OML">>) -> true; +valid(<<"OPL-1.0">>) -> true; +valid(<<"OPL-UK-3.0">>) -> true; +valid(<<"OPUBL-1.0">>) -> true; +valid(<<"OSET-PL-2.1">>) -> true; +valid(<<"OSL-1.0">>) -> true; +valid(<<"OSL-1.1">>) -> true; +valid(<<"OSL-2.0">>) -> true; +valid(<<"OSL-2.1">>) -> true; +valid(<<"OSL-3.0">>) -> true; +valid(<<"OpenPBS-2.3">>) -> true; +valid(<<"OpenSSL">>) -> true; +valid(<<"OpenSSL-standalone">>) -> true; +valid(<<"OpenVision">>) -> true; +valid(<<"PADL">>) -> true; +valid(<<"PDDL-1.0">>) -> true; +valid(<<"PHP-3.0">>) -> true; +valid(<<"PHP-3.01">>) -> true; +valid(<<"PPL">>) -> true; +valid(<<"PSF-2.0">>) -> true; +valid(<<"Parity-6.0.0">>) -> true; +valid(<<"Parity-7.0.0">>) -> true; +valid(<<"Pixar">>) -> true; +valid(<<"Plexus">>) -> true; +valid(<<"PolyForm-Noncommercial-1.0.0">>) -> true; +valid(<<"PolyForm-Small-Business-1.0.0">>) -> true; +valid(<<"PostgreSQL">>) -> true; +valid(<<"Python-2.0">>) -> true; +valid(<<"Python-2.0.1">>) -> true; +valid(<<"QPL-1.0">>) -> true; +valid(<<"QPL-1.0-INRIA-2004">>) -> true; +valid(<<"Qhull">>) -> true; +valid(<<"RHeCos-1.1">>) -> true; +valid(<<"RPL-1.1">>) -> true; +valid(<<"RPL-1.5">>) -> true; +valid(<<"RPSL-1.0">>) -> true; +valid(<<"RSA-MD">>) -> true; +valid(<<"RSCPL">>) -> true; +valid(<<"Rdisc">>) -> true; +valid(<<"Ruby">>) -> true; +valid(<<"SAX-PD">>) -> true; +valid(<<"SAX-PD-2.0">>) -> true; +valid(<<"SCEA">>) -> true; +valid(<<"SGI-B-1.0">>) -> true; +valid(<<"SGI-B-1.1">>) -> true; +valid(<<"SGI-B-2.0">>) -> true; +valid(<<"SGI-OpenGL">>) -> true; +valid(<<"SGP4">>) -> true; +valid(<<"SHL-0.5">>) -> true; +valid(<<"SHL-0.51">>) -> true; +valid(<<"SISSL">>) -> true; +valid(<<"SISSL-1.2">>) -> true; +valid(<<"SL">>) -> true; +valid(<<"SMLNJ">>) -> true; +valid(<<"SMPPL">>) -> true; +valid(<<"SNIA">>) -> true; +valid(<<"SPL-1.0">>) -> true; +valid(<<"SSH-OpenSSH">>) -> true; +valid(<<"SSH-short">>) -> true; +valid(<<"SSLeay-standalone">>) -> true; +valid(<<"SSPL-1.0">>) -> true; +valid(<<"SWL">>) -> true; +valid(<<"Saxpath">>) -> true; +valid(<<"SchemeReport">>) -> true; +valid(<<"Sendmail">>) -> true; +valid(<<"Sendmail-8.23">>) -> true; +valid(<<"SimPL-2.0">>) -> true; +valid(<<"Sleepycat">>) -> true; +valid(<<"Soundex">>) -> true; +valid(<<"Spencer-86">>) -> true; +valid(<<"Spencer-94">>) -> true; +valid(<<"Spencer-99">>) -> true; +valid(<<"StandardML-NJ">>) -> true; +valid(<<"SugarCRM-1.1.3">>) -> true; +valid(<<"Sun-PPP">>) -> true; +valid(<<"Sun-PPP-2000">>) -> true; +valid(<<"SunPro">>) -> true; +valid(<<"Symlinks">>) -> true; +valid(<<"TAPR-OHL-1.0">>) -> true; +valid(<<"TCL">>) -> true; +valid(<<"TCP-wrappers">>) -> true; +valid(<<"TGPPL-1.0">>) -> true; +valid(<<"TMate">>) -> true; +valid(<<"TORQUE-1.1">>) -> true; +valid(<<"TOSL">>) -> true; +valid(<<"TPDL">>) -> true; +valid(<<"TPL-1.0">>) -> true; +valid(<<"TTWL">>) -> true; +valid(<<"TTYP0">>) -> true; +valid(<<"TU-Berlin-1.0">>) -> true; +valid(<<"TU-Berlin-2.0">>) -> true; +valid(<<"TermReadKey">>) -> true; +valid(<<"UCAR">>) -> true; +valid(<<"UCL-1.0">>) -> true; +valid(<<"UMich-Merit">>) -> true; +valid(<<"UPL-1.0">>) -> true; +valid(<<"URT-RLE">>) -> true; +valid(<<"Unicode-3.0">>) -> true; +valid(<<"Unicode-DFS-2015">>) -> true; +valid(<<"Unicode-DFS-2016">>) -> true; +valid(<<"Unicode-TOU">>) -> true; +valid(<<"UnixCrypt">>) -> true; +valid(<<"Unlicense">>) -> true; +valid(<<"VOSTROM">>) -> true; +valid(<<"VSL-1.0">>) -> true; +valid(<<"Vim">>) -> true; +valid(<<"W3C">>) -> true; +valid(<<"W3C-19980720">>) -> true; +valid(<<"W3C-20150513">>) -> true; +valid(<<"WTFPL">>) -> true; +valid(<<"Watcom-1.0">>) -> true; +valid(<<"Widget-Workshop">>) -> true; +valid(<<"Wsuipa">>) -> true; +valid(<<"X11">>) -> true; +valid(<<"X11-distribute-modifications-variant">>) -> true; +valid(<<"XFree86-1.1">>) -> true; +valid(<<"XSkat">>) -> true; +valid(<<"Xdebug-1.03">>) -> true; +valid(<<"Xerox">>) -> true; +valid(<<"Xfig">>) -> true; +valid(<<"Xnet">>) -> true; +valid(<<"YPL-1.0">>) -> true; +valid(<<"YPL-1.1">>) -> true; +valid(<<"ZPL-1.1">>) -> true; +valid(<<"ZPL-2.0">>) -> true; +valid(<<"ZPL-2.1">>) -> true; +valid(<<"Zed">>) -> true; +valid(<<"Zeeff">>) -> true; +valid(<<"Zend-2.0">>) -> true; +valid(<<"Zimbra-1.3">>) -> true; +valid(<<"Zimbra-1.4">>) -> true; +valid(<<"Zlib">>) -> true; +valid(<<"any-OSI">>) -> true; +valid(<<"bcrypt-Solar-Designer">>) -> true; +valid(<<"blessing">>) -> true; +valid(<<"bzip2-1.0.5">>) -> true; +valid(<<"bzip2-1.0.6">>) -> true; +valid(<<"check-cvs">>) -> true; +valid(<<"checkmk">>) -> true; +valid(<<"copyleft-next-0.3.0">>) -> true; +valid(<<"copyleft-next-0.3.1">>) -> true; +valid(<<"curl">>) -> true; +valid(<<"cve-tou">>) -> true; +valid(<<"diffmark">>) -> true; +valid(<<"dtoa">>) -> true; +valid(<<"dvipdfm">>) -> true; +valid(<<"eCos-2.0">>) -> true; +valid(<<"eGenix">>) -> true; +valid(<<"etalab-2.0">>) -> true; +valid(<<"fwlw">>) -> true; +valid(<<"gSOAP-1.3b">>) -> true; +valid(<<"gnuplot">>) -> true; +valid(<<"gtkbook">>) -> true; +valid(<<"hdparm">>) -> true; +valid(<<"iMatix">>) -> true; +valid(<<"libpng-2.0">>) -> true; +valid(<<"libselinux-1.0">>) -> true; +valid(<<"libtiff">>) -> true; +valid(<<"libutil-David-Nugent">>) -> true; +valid(<<"lsof">>) -> true; +valid(<<"magaz">>) -> true; +valid(<<"mailprio">>) -> true; +valid(<<"metamail">>) -> true; +valid(<<"mpi-permissive">>) -> true; +valid(<<"mpich2">>) -> true; +valid(<<"mplus">>) -> true; +valid(<<"pkgconf">>) -> true; +valid(<<"pnmstitch">>) -> true; +valid(<<"psfrag">>) -> true; +valid(<<"psutils">>) -> true; +valid(<<"python-ldap">>) -> true; +valid(<<"radvd">>) -> true; +valid(<<"snprintf">>) -> true; +valid(<<"softSurfer">>) -> true; +valid(<<"ssh-keyscan">>) -> true; +valid(<<"swrule">>) -> true; +valid(<<"threeparttable">>) -> true; +valid(<<"ulem">>) -> true; +valid(<<"w3m">>) -> true; +valid(<<"wxWindows">>) -> true; +valid(<<"xinetd">>) -> true; +valid(<<"xkeyboard-config-Zinoviev">>) -> true; +valid(<<"xlock">>) -> true; +valid(<<"xpp">>) -> true; +valid(<<"xzoom">>) -> true; +valid(<<"zlib-acknowledgement">>) -> true; +valid(_) -> false. diff --git a/apps/rebar/src/vendored/r3_hex_pb_names.erl b/apps/rebar/src/vendored/r3_hex_pb_names.erl index 420058e89..e05ed1ce2 100644 --- a/apps/rebar/src/vendored/r3_hex_pb_names.erl +++ b/apps/rebar/src/vendored/r3_hex_pb_names.erl @@ -1,9 +1,11 @@ -%% Vendored from hex_core v0.7.1, do not edit manually +%% Vendored from hex_core v0.10.1, do not edit manually %% -*- coding: utf-8 -*- +%% % this file is @generated %% @private %% Automatically generated, do not edit -%% Generated by gpb_compile version 4.10.0 +%% Generated by gpb_compile version 4.21.1 +%% Version source: file -module(r3_hex_pb_names). -export([encode_msg/2, encode_msg/3]). @@ -45,6 +47,7 @@ -export([get_proto_by_enum_name_as_fqbin/1]). -export([get_protos_by_pkg_name_as_fqbin/1]). -export([gpb_version_as_string/0, gpb_version_as_list/0]). +-export([gpb_version_source/0]). %% enumerated types @@ -53,101 +56,111 @@ %% message types -type 'Names'() :: - #{packages => ['Package'()], % = 1 - repository := iodata() % = 2 + #{packages => ['Package'()], % = 1, repeated + repository => unicode:chardata() % = 2, required }. -type 'Package'() :: - #{name := iodata() % = 1 + #{name => unicode:chardata(), % = 1, required + updated_at => 'Timestamp'() % = 3, optional }. --export_type(['Names'/0, 'Package'/0]). +-type 'Timestamp'() :: + #{seconds => integer(), % = 1, required, 64 bits + nanos => integer() % = 2, required, 32 bits + }. + +-export_type(['Names'/0, 'Package'/0, 'Timestamp'/0]). +-type '$msg_name'() :: 'Names' | 'Package' | 'Timestamp'. +-type '$msg'() :: 'Names'() | 'Package'() | 'Timestamp'(). +-export_type(['$msg_name'/0, '$msg'/0]). --spec encode_msg('Names'() | 'Package'(), atom()) -> binary(). -encode_msg(Msg, MsgName) when is_atom(MsgName) -> - encode_msg(Msg, MsgName, []). +-if(?OTP_RELEASE >= 24). +-dialyzer({no_underspecs, encode_msg/2}). +-endif. +-spec encode_msg('$msg'(), '$msg_name'()) -> binary(). +encode_msg(Msg, MsgName) when is_atom(MsgName) -> encode_msg(Msg, MsgName, []). --spec encode_msg('Names'() | 'Package'(), atom(), list()) -> binary(). +-if(?OTP_RELEASE >= 24). +-dialyzer({no_underspecs, encode_msg/3}). +-endif. +-spec encode_msg('$msg'(), '$msg_name'(), list()) -> binary(). encode_msg(Msg, MsgName, Opts) -> verify_msg(Msg, MsgName, Opts), TrUserData = proplists:get_value(user_data, Opts), case MsgName of - 'Names' -> - encode_msg_Names(id(Msg, TrUserData), TrUserData); - 'Package' -> - encode_msg_Package(id(Msg, TrUserData), TrUserData) + 'Names' -> encode_msg_Names(id(Msg, TrUserData), TrUserData); + 'Package' -> encode_msg_Package(id(Msg, TrUserData), TrUserData); + 'Timestamp' -> encode_msg_Timestamp(id(Msg, TrUserData), TrUserData) end. -encode_msg_Names(Msg, TrUserData) -> - encode_msg_Names(Msg, <<>>, TrUserData). +encode_msg_Names(Msg, TrUserData) -> encode_msg_Names(Msg, <<>>, TrUserData). -encode_msg_Names(#{repository := F2} = M, Bin, - TrUserData) -> +encode_msg_Names(#{repository := F2} = M, Bin, TrUserData) -> B1 = case M of - #{packages := F1} -> - TrF1 = id(F1, TrUserData), - if TrF1 == [] -> Bin; - true -> e_field_Names_packages(TrF1, Bin, TrUserData) - end; - _ -> Bin - end, - begin - TrF2 = id(F2, TrUserData), - e_type_string(TrF2, <>, TrUserData) - end. + #{packages := F1} -> + TrF1 = id(F1, TrUserData), + if TrF1 == [] -> Bin; + true -> e_field_Names_packages(TrF1, Bin, TrUserData) + end; + _ -> Bin + end, + begin TrF2 = id(F2, TrUserData), e_type_string(TrF2, <>, TrUserData) end. -encode_msg_Package(Msg, TrUserData) -> - encode_msg_Package(Msg, <<>>, TrUserData). +encode_msg_Package(Msg, TrUserData) -> encode_msg_Package(Msg, <<>>, TrUserData). -encode_msg_Package(#{name := F1}, Bin, TrUserData) -> - begin - TrF1 = id(F1, TrUserData), - e_type_string(TrF1, <>, TrUserData) +encode_msg_Package(#{name := F1} = M, Bin, TrUserData) -> + B1 = begin TrF1 = id(F1, TrUserData), e_type_string(TrF1, <>, TrUserData) end, + case M of + #{updated_at := F2} -> begin TrF2 = id(F2, TrUserData), e_mfield_Package_updated_at(TrF2, <>, TrUserData) end; + _ -> B1 end. +encode_msg_Timestamp(Msg, TrUserData) -> encode_msg_Timestamp(Msg, <<>>, TrUserData). + + +encode_msg_Timestamp(#{seconds := F1, nanos := F2}, Bin, TrUserData) -> + B1 = begin TrF1 = id(F1, TrUserData), e_type_int64(TrF1, <>, TrUserData) end, + begin TrF2 = id(F2, TrUserData), e_type_int32(TrF2, <>, TrUserData) end. + e_mfield_Names_packages(Msg, Bin, TrUserData) -> SubBin = encode_msg_Package(Msg, <<>>, TrUserData), Bin2 = e_varint(byte_size(SubBin), Bin), <>. -e_field_Names_packages([Elem | Rest], Bin, - TrUserData) -> +e_field_Names_packages([Elem | Rest], Bin, TrUserData) -> Bin2 = <>, - Bin3 = e_mfield_Names_packages(id(Elem, TrUserData), - Bin2, TrUserData), + Bin3 = e_mfield_Names_packages(id(Elem, TrUserData), Bin2, TrUserData), e_field_Names_packages(Rest, Bin3, TrUserData); e_field_Names_packages([], Bin, _TrUserData) -> Bin. +e_mfield_Package_updated_at(Msg, Bin, TrUserData) -> + SubBin = encode_msg_Timestamp(Msg, <<>>, TrUserData), + Bin2 = e_varint(byte_size(SubBin), Bin), + <>. + -compile({nowarn_unused_function,e_type_sint/3}). -e_type_sint(Value, Bin, _TrUserData) when Value >= 0 -> - e_varint(Value * 2, Bin); -e_type_sint(Value, Bin, _TrUserData) -> - e_varint(Value * -2 - 1, Bin). +e_type_sint(Value, Bin, _TrUserData) when Value >= 0 -> e_varint(Value * 2, Bin); +e_type_sint(Value, Bin, _TrUserData) -> e_varint(Value * -2 - 1, Bin). -compile({nowarn_unused_function,e_type_int32/3}). -e_type_int32(Value, Bin, _TrUserData) - when 0 =< Value, Value =< 127 -> - <>; +e_type_int32(Value, Bin, _TrUserData) when 0 =< Value, Value =< 127 -> <>; e_type_int32(Value, Bin, _TrUserData) -> <> = <>, e_varint(N, Bin). -compile({nowarn_unused_function,e_type_int64/3}). -e_type_int64(Value, Bin, _TrUserData) - when 0 =< Value, Value =< 127 -> - <>; +e_type_int64(Value, Bin, _TrUserData) when 0 =< Value, Value =< 127 -> <>; e_type_int64(Value, Bin, _TrUserData) -> <> = <>, e_varint(N, Bin). -compile({nowarn_unused_function,e_type_bool/3}). -e_type_bool(true, Bin, _TrUserData) -> - <>; -e_type_bool(false, Bin, _TrUserData) -> - <>; +e_type_bool(true, Bin, _TrUserData) -> <>; +e_type_bool(false, Bin, _TrUserData) -> <>; e_type_bool(1, Bin, _TrUserData) -> <>; e_type_bool(0, Bin, _TrUserData) -> <>. @@ -158,51 +171,61 @@ e_type_string(S, Bin, _TrUserData) -> <>. -compile({nowarn_unused_function,e_type_bytes/3}). -e_type_bytes(Bytes, Bin, _TrUserData) - when is_binary(Bytes) -> +e_type_bytes(Bytes, Bin, _TrUserData) when is_binary(Bytes) -> Bin2 = e_varint(byte_size(Bytes), Bin), <>; -e_type_bytes(Bytes, Bin, _TrUserData) - when is_list(Bytes) -> +e_type_bytes(Bytes, Bin, _TrUserData) when is_list(Bytes) -> BytesBin = iolist_to_binary(Bytes), Bin2 = e_varint(byte_size(BytesBin), Bin), <>. -compile({nowarn_unused_function,e_type_fixed32/3}). -e_type_fixed32(Value, Bin, _TrUserData) -> - <>. +e_type_fixed32(Value, Bin, _TrUserData) -> <>. -compile({nowarn_unused_function,e_type_sfixed32/3}). -e_type_sfixed32(Value, Bin, _TrUserData) -> - <>. +e_type_sfixed32(Value, Bin, _TrUserData) -> <>. -compile({nowarn_unused_function,e_type_fixed64/3}). -e_type_fixed64(Value, Bin, _TrUserData) -> - <>. +e_type_fixed64(Value, Bin, _TrUserData) -> <>. -compile({nowarn_unused_function,e_type_sfixed64/3}). -e_type_sfixed64(Value, Bin, _TrUserData) -> - <>. +e_type_sfixed64(Value, Bin, _TrUserData) -> <>. -compile({nowarn_unused_function,e_type_float/3}). -e_type_float(V, Bin, _) when is_number(V) -> - <>; -e_type_float(infinity, Bin, _) -> - <>; -e_type_float('-infinity', Bin, _) -> - <>; -e_type_float(nan, Bin, _) -> - <>. +e_type_float(V, Bin, _) when is_number(V) -> <>; +e_type_float(infinity, Bin, _) -> <>; +e_type_float('-infinity', Bin, _) -> <>; +e_type_float(nan, Bin, _) -> <>. -compile({nowarn_unused_function,e_type_double/3}). -e_type_double(V, Bin, _) when is_number(V) -> - <>; -e_type_double(infinity, Bin, _) -> - <>; -e_type_double('-infinity', Bin, _) -> - <>; -e_type_double(nan, Bin, _) -> - <>. +e_type_double(V, Bin, _) when is_number(V) -> <>; +e_type_double(infinity, Bin, _) -> <>; +e_type_double('-infinity', Bin, _) -> <>; +e_type_double(nan, Bin, _) -> <>. + +-compile({nowarn_unused_function,e_unknown_elems/2}). +e_unknown_elems([Elem | Rest], Bin) -> + BinR = case Elem of + {varint, FNum, N} -> + BinF = e_varint(FNum bsl 3, Bin), + e_varint(N, BinF); + {length_delimited, FNum, Data} -> + BinF = e_varint(FNum bsl 3 bor 2, Bin), + BinL = e_varint(byte_size(Data), BinF), + <>; + {group, FNum, GroupFields} -> + Bin1 = e_varint(FNum bsl 3 bor 3, Bin), + Bin2 = e_unknown_elems(GroupFields, Bin1), + e_varint(FNum bsl 3 bor 4, Bin2); + {fixed32, FNum, V} -> + BinF = e_varint(FNum bsl 3 bor 5, Bin), + <>; + {fixed64, FNum, V} -> + BinF = e_varint(FNum bsl 3 bor 1, Bin), + <> + end, + e_unknown_elems(Rest, BinR); +e_unknown_elems([], Bin) -> Bin. -compile({nowarn_unused_function,e_varint/3}). e_varint(N, Bin, _TrUserData) -> e_varint(N, Bin). @@ -214,8 +237,7 @@ e_varint(N, Bin) -> e_varint(N bsr 7, Bin2). -decode_msg(Bin, MsgName) when is_binary(Bin) -> - decode_msg(Bin, MsgName, []). +decode_msg(Bin, MsgName) when is_binary(Bin) -> decode_msg(Bin, MsgName, []). decode_msg(Bin, MsgName, Opts) when is_binary(Bin) -> TrUserData = proplists:get_value(user_data, Opts), @@ -224,241 +246,206 @@ decode_msg(Bin, MsgName, Opts) when is_binary(Bin) -> -ifdef('OTP_RELEASE'). decode_msg_1_catch(Bin, MsgName, TrUserData) -> try decode_msg_2_doit(MsgName, Bin, TrUserData) - catch Class:Reason:StackTrace -> error({gpb_error,{decoding_failure, {Bin, MsgName, {Class, Reason, StackTrace}}}}) + catch + error:{gpb_error,_}=Reason:StackTrace -> + erlang:raise(error, Reason, StackTrace); + Class:Reason:StackTrace -> error({gpb_error,{decoding_failure, {Bin, MsgName, {Class, Reason, StackTrace}}}}) end. -else. decode_msg_1_catch(Bin, MsgName, TrUserData) -> try decode_msg_2_doit(MsgName, Bin, TrUserData) - catch Class:Reason -> - StackTrace = erlang:get_stacktrace(), - error({gpb_error,{decoding_failure, {Bin, MsgName, {Class, Reason, StackTrace}}}}) + catch + error:{gpb_error,_}=Reason -> + erlang:raise(error, Reason, + erlang:get_stacktrace()); + Class:Reason -> + StackTrace = erlang:get_stacktrace(), + error({gpb_error,{decoding_failure, {Bin, MsgName, {Class, Reason, StackTrace}}}}) end. -endif. -decode_msg_2_doit('Names', Bin, TrUserData) -> - id(decode_msg_Names(Bin, TrUserData), TrUserData); -decode_msg_2_doit('Package', Bin, TrUserData) -> - id(decode_msg_Package(Bin, TrUserData), TrUserData). +decode_msg_2_doit('Names', Bin, TrUserData) -> id(decode_msg_Names(Bin, TrUserData), TrUserData); +decode_msg_2_doit('Package', Bin, TrUserData) -> id(decode_msg_Package(Bin, TrUserData), TrUserData); +decode_msg_2_doit('Timestamp', Bin, TrUserData) -> id(decode_msg_Timestamp(Bin, TrUserData), TrUserData). -decode_msg_Names(Bin, TrUserData) -> - dfp_read_field_def_Names(Bin, 0, 0, id([], TrUserData), - id('$undef', TrUserData), TrUserData). +decode_msg_Names(Bin, TrUserData) -> dfp_read_field_def_Names(Bin, 0, 0, 0, id([], TrUserData), id('$undef', TrUserData), TrUserData). -dfp_read_field_def_Names(<<10, Rest/binary>>, Z1, Z2, - F@_1, F@_2, TrUserData) -> - d_field_Names_packages(Rest, Z1, Z2, F@_1, F@_2, - TrUserData); -dfp_read_field_def_Names(<<18, Rest/binary>>, Z1, Z2, - F@_1, F@_2, TrUserData) -> - d_field_Names_repository(Rest, Z1, Z2, F@_1, F@_2, - TrUserData); -dfp_read_field_def_Names(<<>>, 0, 0, R1, F@_2, - TrUserData) -> +dfp_read_field_def_Names(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_Names_packages(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +dfp_read_field_def_Names(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_Names_repository(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +dfp_read_field_def_Names(<<>>, 0, 0, _, R1, F@_2, TrUserData) -> S1 = #{repository => F@_2}, if R1 == '$undef' -> S1; true -> S1#{packages => lists_reverse(R1, TrUserData)} end; -dfp_read_field_def_Names(Other, Z1, Z2, F@_1, F@_2, - TrUserData) -> - dg_read_field_def_Names(Other, Z1, Z2, F@_1, F@_2, - TrUserData). - -dg_read_field_def_Names(<<1:1, X:7, Rest/binary>>, N, - Acc, F@_1, F@_2, TrUserData) - when N < 32 - 7 -> - dg_read_field_def_Names(Rest, N + 7, X bsl N + Acc, - F@_1, F@_2, TrUserData); -dg_read_field_def_Names(<<0:1, X:7, Rest/binary>>, N, - Acc, F@_1, F@_2, TrUserData) -> +dfp_read_field_def_Names(Other, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dg_read_field_def_Names(Other, Z1, Z2, F, F@_1, F@_2, TrUserData). + +dg_read_field_def_Names(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 32 - 7 -> dg_read_field_def_Names(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +dg_read_field_def_Names(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, TrUserData) -> Key = X bsl N + Acc, case Key of - 10 -> - d_field_Names_packages(Rest, 0, 0, F@_1, F@_2, - TrUserData); - 18 -> - d_field_Names_repository(Rest, 0, 0, F@_1, F@_2, - TrUserData); - _ -> - case Key band 7 of - 0 -> - skip_varint_Names(Rest, 0, 0, F@_1, F@_2, TrUserData); - 1 -> skip_64_Names(Rest, 0, 0, F@_1, F@_2, TrUserData); - 2 -> - skip_length_delimited_Names(Rest, 0, 0, F@_1, F@_2, - TrUserData); - 3 -> - skip_group_Names(Rest, Key bsr 3, 0, F@_1, F@_2, - TrUserData); - 5 -> skip_32_Names(Rest, 0, 0, F@_1, F@_2, TrUserData) - end + 10 -> d_field_Names_packages(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + 18 -> d_field_Names_repository(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + _ -> + case Key band 7 of + 0 -> skip_varint_Names(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 1 -> skip_64_Names(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 2 -> skip_length_delimited_Names(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 3 -> skip_group_Names(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 5 -> skip_32_Names(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData) + end end; -dg_read_field_def_Names(<<>>, 0, 0, R1, F@_2, - TrUserData) -> +dg_read_field_def_Names(<<>>, 0, 0, _, R1, F@_2, TrUserData) -> S1 = #{repository => F@_2}, if R1 == '$undef' -> S1; true -> S1#{packages => lists_reverse(R1, TrUserData)} end. -d_field_Names_packages(<<1:1, X:7, Rest/binary>>, N, - Acc, F@_1, F@_2, TrUserData) - when N < 57 -> - d_field_Names_packages(Rest, N + 7, X bsl N + Acc, F@_1, - F@_2, TrUserData); -d_field_Names_packages(<<0:1, X:7, Rest/binary>>, N, - Acc, Prev, F@_2, TrUserData) -> - {NewFValue, RestF} = begin - Len = X bsl N + Acc, - <> = Rest, - {id(decode_msg_Package(Bs, TrUserData), TrUserData), - Rest2} - end, - dfp_read_field_def_Names(RestF, 0, 0, - cons(NewFValue, Prev, TrUserData), F@_2, - TrUserData). - -d_field_Names_repository(<<1:1, X:7, Rest/binary>>, N, - Acc, F@_1, F@_2, TrUserData) - when N < 57 -> - d_field_Names_repository(Rest, N + 7, X bsl N + Acc, - F@_1, F@_2, TrUserData); -d_field_Names_repository(<<0:1, X:7, Rest/binary>>, N, - Acc, F@_1, _, TrUserData) -> - {NewFValue, RestF} = begin - Len = X bsl N + Acc, - <> = Rest, - {id(binary:copy(Bytes), TrUserData), Rest2} - end, - dfp_read_field_def_Names(RestF, 0, 0, F@_1, NewFValue, - TrUserData). - -skip_varint_Names(<<1:1, _:7, Rest/binary>>, Z1, Z2, - F@_1, F@_2, TrUserData) -> - skip_varint_Names(Rest, Z1, Z2, F@_1, F@_2, TrUserData); -skip_varint_Names(<<0:1, _:7, Rest/binary>>, Z1, Z2, - F@_1, F@_2, TrUserData) -> - dfp_read_field_def_Names(Rest, Z1, Z2, F@_1, F@_2, - TrUserData). - -skip_length_delimited_Names(<<1:1, X:7, Rest/binary>>, - N, Acc, F@_1, F@_2, TrUserData) - when N < 57 -> - skip_length_delimited_Names(Rest, N + 7, X bsl N + Acc, - F@_1, F@_2, TrUserData); -skip_length_delimited_Names(<<0:1, X:7, Rest/binary>>, - N, Acc, F@_1, F@_2, TrUserData) -> +d_field_Names_packages(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_Names_packages(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +d_field_Names_packages(<<0:1, X:7, Rest/binary>>, N, Acc, F, Prev, F@_2, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id(decode_msg_Package(Bs, TrUserData), TrUserData), Rest2} end, + dfp_read_field_def_Names(RestF, 0, 0, F, cons(NewFValue, Prev, TrUserData), F@_2, TrUserData). + +d_field_Names_repository(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_Names_repository(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +d_field_Names_repository(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_Names(RestF, 0, 0, F, F@_1, NewFValue, TrUserData). + +skip_varint_Names(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> skip_varint_Names(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +skip_varint_Names(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_Names(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +skip_length_delimited_Names(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> skip_length_delimited_Names(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +skip_length_delimited_Names(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) -> + Length = X bsl N + Acc, + <<_:Length/binary, Rest2/binary>> = Rest, + dfp_read_field_def_Names(Rest2, 0, 0, F, F@_1, F@_2, TrUserData). + +skip_group_Names(Bin, _, Z2, FNum, F@_1, F@_2, TrUserData) -> + {_, Rest} = read_group(Bin, FNum), + dfp_read_field_def_Names(Rest, 0, Z2, FNum, F@_1, F@_2, TrUserData). + +skip_32_Names(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_Names(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +skip_64_Names(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_Names(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +decode_msg_Package(Bin, TrUserData) -> dfp_read_field_def_Package(Bin, 0, 0, 0, id('$undef', TrUserData), id('$undef', TrUserData), TrUserData). + +dfp_read_field_def_Package(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_Package_name(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +dfp_read_field_def_Package(<<26, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_Package_updated_at(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +dfp_read_field_def_Package(<<>>, 0, 0, _, F@_1, F@_2, _) -> + S1 = #{name => F@_1}, + if F@_2 == '$undef' -> S1; + true -> S1#{updated_at => F@_2} + end; +dfp_read_field_def_Package(Other, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dg_read_field_def_Package(Other, Z1, Z2, F, F@_1, F@_2, TrUserData). + +dg_read_field_def_Package(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 32 - 7 -> dg_read_field_def_Package(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +dg_read_field_def_Package(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, TrUserData) -> + Key = X bsl N + Acc, + case Key of + 10 -> d_field_Package_name(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + 26 -> d_field_Package_updated_at(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + _ -> + case Key band 7 of + 0 -> skip_varint_Package(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 1 -> skip_64_Package(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 2 -> skip_length_delimited_Package(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 3 -> skip_group_Package(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 5 -> skip_32_Package(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData) + end + end; +dg_read_field_def_Package(<<>>, 0, 0, _, F@_1, F@_2, _) -> + S1 = #{name => F@_1}, + if F@_2 == '$undef' -> S1; + true -> S1#{updated_at => F@_2} + end. + +d_field_Package_name(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_Package_name(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +d_field_Package_name(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_Package(RestF, 0, 0, F, NewFValue, F@_2, TrUserData). + +d_field_Package_updated_at(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_Package_updated_at(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +d_field_Package_updated_at(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, Prev, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id(decode_msg_Timestamp(Bs, TrUserData), TrUserData), Rest2} end, + dfp_read_field_def_Package(RestF, + 0, + 0, + F, + F@_1, + if Prev == '$undef' -> NewFValue; + true -> merge_msg_Timestamp(Prev, NewFValue, TrUserData) + end, + TrUserData). + +skip_varint_Package(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> skip_varint_Package(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +skip_varint_Package(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_Package(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +skip_length_delimited_Package(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> skip_length_delimited_Package(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +skip_length_delimited_Package(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) -> Length = X bsl N + Acc, <<_:Length/binary, Rest2/binary>> = Rest, - dfp_read_field_def_Names(Rest2, 0, 0, F@_1, F@_2, - TrUserData). + dfp_read_field_def_Package(Rest2, 0, 0, F, F@_1, F@_2, TrUserData). -skip_group_Names(Bin, FNum, Z2, F@_1, F@_2, - TrUserData) -> +skip_group_Package(Bin, _, Z2, FNum, F@_1, F@_2, TrUserData) -> {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_Names(Rest, 0, Z2, F@_1, F@_2, - TrUserData). - -skip_32_Names(<<_:32, Rest/binary>>, Z1, Z2, F@_1, F@_2, - TrUserData) -> - dfp_read_field_def_Names(Rest, Z1, Z2, F@_1, F@_2, - TrUserData). - -skip_64_Names(<<_:64, Rest/binary>>, Z1, Z2, F@_1, F@_2, - TrUserData) -> - dfp_read_field_def_Names(Rest, Z1, Z2, F@_1, F@_2, - TrUserData). - -decode_msg_Package(Bin, TrUserData) -> - dfp_read_field_def_Package(Bin, 0, 0, - id('$undef', TrUserData), TrUserData). - -dfp_read_field_def_Package(<<10, Rest/binary>>, Z1, Z2, - F@_1, TrUserData) -> - d_field_Package_name(Rest, Z1, Z2, F@_1, TrUserData); -dfp_read_field_def_Package(<<>>, 0, 0, F@_1, _) -> - #{name => F@_1}; -dfp_read_field_def_Package(Other, Z1, Z2, F@_1, - TrUserData) -> - dg_read_field_def_Package(Other, Z1, Z2, F@_1, - TrUserData). - -dg_read_field_def_Package(<<1:1, X:7, Rest/binary>>, N, - Acc, F@_1, TrUserData) - when N < 32 - 7 -> - dg_read_field_def_Package(Rest, N + 7, X bsl N + Acc, - F@_1, TrUserData); -dg_read_field_def_Package(<<0:1, X:7, Rest/binary>>, N, - Acc, F@_1, TrUserData) -> + dfp_read_field_def_Package(Rest, 0, Z2, FNum, F@_1, F@_2, TrUserData). + +skip_32_Package(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_Package(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +skip_64_Package(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_Package(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +decode_msg_Timestamp(Bin, TrUserData) -> dfp_read_field_def_Timestamp(Bin, 0, 0, 0, id('$undef', TrUserData), id('$undef', TrUserData), TrUserData). + +dfp_read_field_def_Timestamp(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_Timestamp_seconds(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +dfp_read_field_def_Timestamp(<<16, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_Timestamp_nanos(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +dfp_read_field_def_Timestamp(<<>>, 0, 0, _, F@_1, F@_2, _) -> #{seconds => F@_1, nanos => F@_2}; +dfp_read_field_def_Timestamp(Other, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dg_read_field_def_Timestamp(Other, Z1, Z2, F, F@_1, F@_2, TrUserData). + +dg_read_field_def_Timestamp(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 32 - 7 -> dg_read_field_def_Timestamp(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +dg_read_field_def_Timestamp(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, TrUserData) -> Key = X bsl N + Acc, case Key of - 10 -> - d_field_Package_name(Rest, 0, 0, F@_1, TrUserData); - _ -> - case Key band 7 of - 0 -> skip_varint_Package(Rest, 0, 0, F@_1, TrUserData); - 1 -> skip_64_Package(Rest, 0, 0, F@_1, TrUserData); - 2 -> - skip_length_delimited_Package(Rest, 0, 0, F@_1, - TrUserData); - 3 -> - skip_group_Package(Rest, Key bsr 3, 0, F@_1, - TrUserData); - 5 -> skip_32_Package(Rest, 0, 0, F@_1, TrUserData) - end + 8 -> d_field_Timestamp_seconds(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + 16 -> d_field_Timestamp_nanos(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + _ -> + case Key band 7 of + 0 -> skip_varint_Timestamp(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 1 -> skip_64_Timestamp(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 2 -> skip_length_delimited_Timestamp(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 3 -> skip_group_Timestamp(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 5 -> skip_32_Timestamp(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData) + end end; -dg_read_field_def_Package(<<>>, 0, 0, F@_1, _) -> - #{name => F@_1}. - -d_field_Package_name(<<1:1, X:7, Rest/binary>>, N, Acc, - F@_1, TrUserData) - when N < 57 -> - d_field_Package_name(Rest, N + 7, X bsl N + Acc, F@_1, - TrUserData); -d_field_Package_name(<<0:1, X:7, Rest/binary>>, N, Acc, - _, TrUserData) -> - {NewFValue, RestF} = begin - Len = X bsl N + Acc, - <> = Rest, - {id(binary:copy(Bytes), TrUserData), Rest2} - end, - dfp_read_field_def_Package(RestF, 0, 0, NewFValue, - TrUserData). - -skip_varint_Package(<<1:1, _:7, Rest/binary>>, Z1, Z2, - F@_1, TrUserData) -> - skip_varint_Package(Rest, Z1, Z2, F@_1, TrUserData); -skip_varint_Package(<<0:1, _:7, Rest/binary>>, Z1, Z2, - F@_1, TrUserData) -> - dfp_read_field_def_Package(Rest, Z1, Z2, F@_1, - TrUserData). - -skip_length_delimited_Package(<<1:1, X:7, Rest/binary>>, - N, Acc, F@_1, TrUserData) - when N < 57 -> - skip_length_delimited_Package(Rest, N + 7, - X bsl N + Acc, F@_1, TrUserData); -skip_length_delimited_Package(<<0:1, X:7, Rest/binary>>, - N, Acc, F@_1, TrUserData) -> +dg_read_field_def_Timestamp(<<>>, 0, 0, _, F@_1, F@_2, _) -> #{seconds => F@_1, nanos => F@_2}. + +d_field_Timestamp_seconds(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_Timestamp_seconds(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +d_field_Timestamp_seconds(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, TrUserData) -> + {NewFValue, RestF} = {begin <> = <<(X bsl N + Acc):64/unsigned-native>>, id(Res, TrUserData) end, Rest}, + dfp_read_field_def_Timestamp(RestF, 0, 0, F, NewFValue, F@_2, TrUserData). + +d_field_Timestamp_nanos(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_Timestamp_nanos(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +d_field_Timestamp_nanos(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, TrUserData) -> + {NewFValue, RestF} = {begin <> = <<(X bsl N + Acc):32/unsigned-native>>, id(Res, TrUserData) end, Rest}, + dfp_read_field_def_Timestamp(RestF, 0, 0, F, F@_1, NewFValue, TrUserData). + +skip_varint_Timestamp(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> skip_varint_Timestamp(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +skip_varint_Timestamp(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_Timestamp(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +skip_length_delimited_Timestamp(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> skip_length_delimited_Timestamp(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +skip_length_delimited_Timestamp(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) -> Length = X bsl N + Acc, <<_:Length/binary, Rest2/binary>> = Rest, - dfp_read_field_def_Package(Rest2, 0, 0, F@_1, - TrUserData). + dfp_read_field_def_Timestamp(Rest2, 0, 0, F, F@_1, F@_2, TrUserData). -skip_group_Package(Bin, FNum, Z2, F@_1, TrUserData) -> +skip_group_Timestamp(Bin, _, Z2, FNum, F@_1, F@_2, TrUserData) -> {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_Package(Rest, 0, Z2, F@_1, - TrUserData). + dfp_read_field_def_Timestamp(Rest, 0, Z2, FNum, F@_1, F@_2, TrUserData). -skip_32_Package(<<_:32, Rest/binary>>, Z1, Z2, F@_1, - TrUserData) -> - dfp_read_field_def_Package(Rest, Z1, Z2, F@_1, - TrUserData). +skip_32_Timestamp(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_Timestamp(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). -skip_64_Package(<<_:64, Rest/binary>>, Z1, Z2, F@_1, - TrUserData) -> - dfp_read_field_def_Package(Rest, Z1, Z2, F@_1, - TrUserData). +skip_64_Timestamp(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_Timestamp(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). read_group(Bin, FieldNum) -> {NumBytes, EndTagLen} = read_gr_b(Bin, 0, 0, 0, 0, FieldNum), @@ -518,127 +505,147 @@ read_gr_ld(<<0:1, X:7, Tl/binary>>, N, Acc, NumBytes, FieldNum) -> <<_:Len/binary, Tl2/binary>> = Tl, read_gr_b(Tl2, 0, 0, NumBytes1 + Len, 0, FieldNum). -merge_msgs(Prev, New, MsgName) when is_atom(MsgName) -> - merge_msgs(Prev, New, MsgName, []). +merge_msgs(Prev, New, MsgName) when is_atom(MsgName) -> merge_msgs(Prev, New, MsgName, []). merge_msgs(Prev, New, MsgName, Opts) -> TrUserData = proplists:get_value(user_data, Opts), case MsgName of - 'Names' -> merge_msg_Names(Prev, New, TrUserData); - 'Package' -> merge_msg_Package(Prev, New, TrUserData) + 'Names' -> merge_msg_Names(Prev, New, TrUserData); + 'Package' -> merge_msg_Package(Prev, New, TrUserData); + 'Timestamp' -> merge_msg_Timestamp(Prev, New, TrUserData) end. -compile({nowarn_unused_function,merge_msg_Names/3}). -merge_msg_Names(#{} = PMsg, - #{repository := NFrepository} = NMsg, TrUserData) -> +merge_msg_Names(#{} = PMsg, #{repository := NFrepository} = NMsg, TrUserData) -> S1 = #{repository => NFrepository}, case {PMsg, NMsg} of - {#{packages := PFpackages}, - #{packages := NFpackages}} -> - S1#{packages => - 'erlang_++'(PFpackages, NFpackages, TrUserData)}; - {_, #{packages := NFpackages}} -> - S1#{packages => NFpackages}; - {#{packages := PFpackages}, _} -> - S1#{packages => PFpackages}; - {_, _} -> S1 + {#{packages := PFpackages}, #{packages := NFpackages}} -> S1#{packages => 'erlang_++'(PFpackages, NFpackages, TrUserData)}; + {_, #{packages := NFpackages}} -> S1#{packages => NFpackages}; + {#{packages := PFpackages}, _} -> S1#{packages => PFpackages}; + {_, _} -> S1 end. -compile({nowarn_unused_function,merge_msg_Package/3}). -merge_msg_Package(#{}, #{name := NFname}, _) -> - #{name => NFname}. +merge_msg_Package(#{} = PMsg, #{name := NFname} = NMsg, TrUserData) -> + S1 = #{name => NFname}, + case {PMsg, NMsg} of + {#{updated_at := PFupdated_at}, #{updated_at := NFupdated_at}} -> S1#{updated_at => merge_msg_Timestamp(PFupdated_at, NFupdated_at, TrUserData)}; + {_, #{updated_at := NFupdated_at}} -> S1#{updated_at => NFupdated_at}; + {#{updated_at := PFupdated_at}, _} -> S1#{updated_at => PFupdated_at}; + {_, _} -> S1 + end. + +-compile({nowarn_unused_function,merge_msg_Timestamp/3}). +merge_msg_Timestamp(#{}, #{seconds := NFseconds, nanos := NFnanos}, _) -> #{seconds => NFseconds, nanos => NFnanos}. -verify_msg(Msg, MsgName) when is_atom(MsgName) -> - verify_msg(Msg, MsgName, []). +verify_msg(Msg, MsgName) when is_atom(MsgName) -> verify_msg(Msg, MsgName, []). verify_msg(Msg, MsgName, Opts) -> TrUserData = proplists:get_value(user_data, Opts), case MsgName of - 'Names' -> v_msg_Names(Msg, [MsgName], TrUserData); - 'Package' -> v_msg_Package(Msg, [MsgName], TrUserData); - _ -> mk_type_error(not_a_known_message, Msg, []) + 'Names' -> v_msg_Names(Msg, [MsgName], TrUserData); + 'Package' -> v_msg_Package(Msg, [MsgName], TrUserData); + 'Timestamp' -> v_msg_Timestamp(Msg, [MsgName], TrUserData); + _ -> mk_type_error(not_a_known_message, Msg, []) end. -compile({nowarn_unused_function,v_msg_Names/3}). -dialyzer({nowarn_function,v_msg_Names/3}). -v_msg_Names(#{repository := F2} = M, Path, - TrUserData) -> +v_msg_Names(#{repository := F2} = M, Path, TrUserData) -> case M of - #{packages := F1} -> - if is_list(F1) -> - _ = [v_msg_Package(Elem, [packages | Path], TrUserData) - || Elem <- F1], - ok; - true -> - mk_type_error({invalid_list_of, {msg, 'Package'}}, F1, - [packages | Path]) - end; - _ -> ok + #{packages := F1} -> + if is_list(F1) -> + _ = [v_submsg_Package(Elem, [packages | Path], TrUserData) || Elem <- F1], + ok; + true -> mk_type_error({invalid_list_of, {msg, 'Package'}}, F1, [packages | Path]) + end; + _ -> ok end, v_type_string(F2, [repository | Path], TrUserData), lists:foreach(fun (packages) -> ok; - (repository) -> ok; - (OtherKey) -> - mk_type_error({extraneous_key, OtherKey}, M, Path) - end, - maps:keys(M)), + (repository) -> ok; + (OtherKey) -> mk_type_error({extraneous_key, OtherKey}, M, Path) + end, + maps:keys(M)), ok; -v_msg_Names(M, Path, _TrUserData) when is_map(M) -> - mk_type_error({missing_fields, - [repository] -- maps:keys(M), 'Names'}, - M, Path); -v_msg_Names(X, Path, _TrUserData) -> - mk_type_error({expected_msg, 'Names'}, X, Path). +v_msg_Names(M, Path, _TrUserData) when is_map(M) -> mk_type_error({missing_fields, [repository] -- maps:keys(M), 'Names'}, M, Path); +v_msg_Names(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'Names'}, X, Path). + +-compile({nowarn_unused_function,v_submsg_Package/3}). +-dialyzer({nowarn_function,v_submsg_Package/3}). +v_submsg_Package(Msg, Path, TrUserData) -> v_msg_Package(Msg, Path, TrUserData). -compile({nowarn_unused_function,v_msg_Package/3}). -dialyzer({nowarn_function,v_msg_Package/3}). v_msg_Package(#{name := F1} = M, Path, TrUserData) -> v_type_string(F1, [name | Path], TrUserData), + case M of + #{updated_at := F2} -> v_submsg_Timestamp(F2, [updated_at | Path], TrUserData); + _ -> ok + end, lists:foreach(fun (name) -> ok; - (OtherKey) -> - mk_type_error({extraneous_key, OtherKey}, M, Path) - end, - maps:keys(M)), + (updated_at) -> ok; + (OtherKey) -> mk_type_error({extraneous_key, OtherKey}, M, Path) + end, + maps:keys(M)), ok; -v_msg_Package(M, Path, _TrUserData) when is_map(M) -> - mk_type_error({missing_fields, [name] -- maps:keys(M), - 'Package'}, - M, Path); -v_msg_Package(X, Path, _TrUserData) -> - mk_type_error({expected_msg, 'Package'}, X, Path). +v_msg_Package(M, Path, _TrUserData) when is_map(M) -> mk_type_error({missing_fields, [name] -- maps:keys(M), 'Package'}, M, Path); +v_msg_Package(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'Package'}, X, Path). + +-compile({nowarn_unused_function,v_submsg_Timestamp/3}). +-dialyzer({nowarn_function,v_submsg_Timestamp/3}). +v_submsg_Timestamp(Msg, Path, TrUserData) -> v_msg_Timestamp(Msg, Path, TrUserData). + +-compile({nowarn_unused_function,v_msg_Timestamp/3}). +-dialyzer({nowarn_function,v_msg_Timestamp/3}). +v_msg_Timestamp(#{seconds := F1, nanos := F2} = M, Path, TrUserData) -> + v_type_int64(F1, [seconds | Path], TrUserData), + v_type_int32(F2, [nanos | Path], TrUserData), + lists:foreach(fun (seconds) -> ok; + (nanos) -> ok; + (OtherKey) -> mk_type_error({extraneous_key, OtherKey}, M, Path) + end, + maps:keys(M)), + ok; +v_msg_Timestamp(M, Path, _TrUserData) when is_map(M) -> mk_type_error({missing_fields, [seconds, nanos] -- maps:keys(M), 'Timestamp'}, M, Path); +v_msg_Timestamp(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'Timestamp'}, X, Path). + +-compile({nowarn_unused_function,v_type_int32/3}). +-dialyzer({nowarn_function,v_type_int32/3}). +v_type_int32(N, _Path, _TrUserData) when is_integer(N), -2147483648 =< N, N =< 2147483647 -> ok; +v_type_int32(N, Path, _TrUserData) when is_integer(N) -> mk_type_error({value_out_of_range, int32, signed, 32}, N, Path); +v_type_int32(X, Path, _TrUserData) -> mk_type_error({bad_integer, int32, signed, 32}, X, Path). + +-compile({nowarn_unused_function,v_type_int64/3}). +-dialyzer({nowarn_function,v_type_int64/3}). +v_type_int64(N, _Path, _TrUserData) when is_integer(N), -9223372036854775808 =< N, N =< 9223372036854775807 -> ok; +v_type_int64(N, Path, _TrUserData) when is_integer(N) -> mk_type_error({value_out_of_range, int64, signed, 64}, N, Path); +v_type_int64(X, Path, _TrUserData) -> mk_type_error({bad_integer, int64, signed, 64}, X, Path). -compile({nowarn_unused_function,v_type_string/3}). -dialyzer({nowarn_function,v_type_string/3}). -v_type_string(S, Path, _TrUserData) - when is_list(S); is_binary(S) -> +v_type_string(S, Path, _TrUserData) when is_list(S); is_binary(S) -> try unicode:characters_to_binary(S) of - B when is_binary(B) -> ok; - {error, _, _} -> - mk_type_error(bad_unicode_string, S, Path) + B when is_binary(B) -> ok; + {error, _, _} -> mk_type_error(bad_unicode_string, S, Path) catch - error:badarg -> - mk_type_error(bad_unicode_string, S, Path) + error:badarg -> mk_type_error(bad_unicode_string, S, Path) end; -v_type_string(X, Path, _TrUserData) -> - mk_type_error(bad_unicode_string, X, Path). +v_type_string(X, Path, _TrUserData) -> mk_type_error(bad_unicode_string, X, Path). -compile({nowarn_unused_function,mk_type_error/3}). -spec mk_type_error(_, _, list()) -> no_return(). mk_type_error(Error, ValueSeen, Path) -> Path2 = prettify_path(Path), - erlang:error({gpb_type_error, - {Error, [{value, ValueSeen}, {path, Path2}]}}). + erlang:error({gpb_type_error, {Error, [{value, ValueSeen}, {path, Path2}]}}). -compile({nowarn_unused_function,prettify_path/1}). -dialyzer({nowarn_function,prettify_path/1}). prettify_path([]) -> top_level; -prettify_path(PathR) -> - list_to_atom(lists:append(lists:join(".", - lists:map(fun atom_to_list/1, - lists:reverse(PathR))))). +prettify_path(PathR) -> lists:append(lists:join(".", lists:map(fun atom_to_list/1, lists:reverse(PathR)))). -compile({nowarn_unused_function,id/2}). @@ -666,24 +673,18 @@ cons(Elem, Acc, _TrUserData) -> [Elem | Acc]. get_msg_defs() -> - [{{msg, 'Names'}, - [#{name => packages, fnum => 1, rnum => 2, - type => {msg, 'Package'}, occurrence => repeated, - opts => []}, - #{name => repository, fnum => 2, rnum => 3, - type => string, occurrence => required, opts => []}]}, - {{msg, 'Package'}, - [#{name => name, fnum => 1, rnum => 2, type => string, - occurrence => required, opts => []}]}]. + [{{msg, 'Names'}, [#{name => packages, fnum => 1, rnum => 2, type => {msg, 'Package'}, occurrence => repeated, opts => []}, #{name => repository, fnum => 2, rnum => 3, type => string, occurrence => required, opts => []}]}, + {{msg, 'Package'}, [#{name => name, fnum => 1, rnum => 2, type => string, occurrence => required, opts => []}, #{name => updated_at, fnum => 3, rnum => 3, type => {msg, 'Timestamp'}, occurrence => optional, opts => []}]}, + {{msg, 'Timestamp'}, [#{name => seconds, fnum => 1, rnum => 2, type => int64, occurrence => required, opts => []}, #{name => nanos, fnum => 2, rnum => 3, type => int32, occurrence => required, opts => []}]}]. -get_msg_names() -> ['Names', 'Package']. +get_msg_names() -> ['Names', 'Package', 'Timestamp']. get_group_names() -> []. -get_msg_or_group_names() -> ['Names', 'Package']. +get_msg_or_group_names() -> ['Names', 'Package', 'Timestamp']. get_enum_names() -> []. @@ -691,25 +692,18 @@ get_enum_names() -> []. fetch_msg_def(MsgName) -> case find_msg_def(MsgName) of - Fs when is_list(Fs) -> Fs; - error -> erlang:error({no_such_msg, MsgName}) + Fs when is_list(Fs) -> Fs; + error -> erlang:error({no_such_msg, MsgName}) end. -spec fetch_enum_def(_) -> no_return(). -fetch_enum_def(EnumName) -> - erlang:error({no_such_enum, EnumName}). - - -find_msg_def('Names') -> - [#{name => packages, fnum => 1, rnum => 2, - type => {msg, 'Package'}, occurrence => repeated, - opts => []}, - #{name => repository, fnum => 2, rnum => 3, - type => string, occurrence => required, opts => []}]; -find_msg_def('Package') -> - [#{name => name, fnum => 1, rnum => 2, type => string, - occurrence => required, opts => []}]; +fetch_enum_def(EnumName) -> erlang:error({no_such_enum, EnumName}). + + +find_msg_def('Names') -> [#{name => packages, fnum => 1, rnum => 2, type => {msg, 'Package'}, occurrence => repeated, opts => []}, #{name => repository, fnum => 2, rnum => 3, type => string, occurrence => required, opts => []}]; +find_msg_def('Package') -> [#{name => name, fnum => 1, rnum => 2, type => string, occurrence => required, opts => []}, #{name => updated_at, fnum => 3, rnum => 3, type => {msg, 'Timestamp'}, occurrence => optional, opts => []}]; +find_msg_def('Timestamp') -> [#{name => seconds, fnum => 1, rnum => 2, type => int64, occurrence => required, opts => []}, #{name => nanos, fnum => 2, rnum => 3, type => int32, occurrence => required, opts => []}]; find_msg_def(_) -> error. @@ -717,13 +711,11 @@ find_enum_def(_) -> error. -spec enum_symbol_by_value(_, _) -> no_return(). -enum_symbol_by_value(E, V) -> - erlang:error({no_enum_defs, E, V}). +enum_symbol_by_value(E, V) -> erlang:error({no_enum_defs, E, V}). -spec enum_value_by_symbol(_, _) -> no_return(). -enum_value_by_symbol(E, V) -> - erlang:error({no_enum_defs, E, V}). +enum_value_by_symbol(E, V) -> erlang:error({no_enum_defs, E, V}). @@ -741,58 +733,53 @@ find_rpc_def(_, _) -> error. -spec fetch_rpc_def(_, _) -> no_return(). -fetch_rpc_def(ServiceName, RpcName) -> - erlang:error({no_such_rpc, ServiceName, RpcName}). +fetch_rpc_def(ServiceName, RpcName) -> erlang:error({no_such_rpc, ServiceName, RpcName}). %% Convert a a fully qualified (ie with package name) service name %% as a binary to a service name as an atom. -spec fqbin_to_service_name(_) -> no_return(). -fqbin_to_service_name(X) -> - error({gpb_error, {badservice, X}}). +fqbin_to_service_name(X) -> error({gpb_error, {badservice, X}}). %% Convert a service name as an atom to a fully qualified %% (ie with package name) name as a binary. -spec service_name_to_fqbin(_) -> no_return(). -service_name_to_fqbin(X) -> - error({gpb_error, {badservice, X}}). +service_name_to_fqbin(X) -> error({gpb_error, {badservice, X}}). %% Convert a a fully qualified (ie with package name) service name %% and an rpc name, both as binaries to a service name and an rpc %% name, as atoms. -spec fqbins_to_service_and_rpc_name(_, _) -> no_return(). -fqbins_to_service_and_rpc_name(S, R) -> - error({gpb_error, {badservice_or_rpc, {S, R}}}). +fqbins_to_service_and_rpc_name(S, R) -> error({gpb_error, {badservice_or_rpc, {S, R}}}). %% Convert a service name and an rpc name, both as atoms, %% to a fully qualified (ie with package name) service name and %% an rpc name as binaries. -spec service_and_rpc_name_to_fqbins(_, _) -> no_return(). -service_and_rpc_name_to_fqbins(S, R) -> - error({gpb_error, {badservice_or_rpc, {S, R}}}). +service_and_rpc_name_to_fqbins(S, R) -> error({gpb_error, {badservice_or_rpc, {S, R}}}). fqbin_to_msg_name(<<"Names">>) -> 'Names'; fqbin_to_msg_name(<<"Package">>) -> 'Package'; +fqbin_to_msg_name(<<"Timestamp">>) -> 'Timestamp'; fqbin_to_msg_name(E) -> error({gpb_error, {badmsg, E}}). msg_name_to_fqbin('Names') -> <<"Names">>; msg_name_to_fqbin('Package') -> <<"Package">>; +msg_name_to_fqbin('Timestamp') -> <<"Timestamp">>; msg_name_to_fqbin(E) -> error({gpb_error, {badmsg, E}}). -spec fqbin_to_enum_name(_) -> no_return(). -fqbin_to_enum_name(E) -> - error({gpb_error, {badenum, E}}). +fqbin_to_enum_name(E) -> error({gpb_error, {badenum, E}}). -spec enum_name_to_fqbin(_) -> no_return(). -enum_name_to_fqbin(E) -> - error({gpb_error, {badenum, E}}). +enum_name_to_fqbin(E) -> error({gpb_error, {badenum, E}}). get_package_name() -> undefined. @@ -822,58 +809,50 @@ get_all_source_basenames() -> ["r3_hex_pb_names.proto"]. get_all_proto_names() -> ["r3_hex_pb_names"]. -get_msg_containment("r3_hex_pb_names") -> - ['Names', 'Package']; -get_msg_containment(P) -> - error({gpb_error, {badproto, P}}). +get_msg_containment("r3_hex_pb_names") -> ['Names', 'Package', 'Timestamp']; +get_msg_containment(P) -> error({gpb_error, {badproto, P}}). get_pkg_containment("r3_hex_pb_names") -> undefined; -get_pkg_containment(P) -> - error({gpb_error, {badproto, P}}). +get_pkg_containment(P) -> error({gpb_error, {badproto, P}}). get_service_containment("r3_hex_pb_names") -> []; -get_service_containment(P) -> - error({gpb_error, {badproto, P}}). +get_service_containment(P) -> error({gpb_error, {badproto, P}}). get_rpc_containment("r3_hex_pb_names") -> []; -get_rpc_containment(P) -> - error({gpb_error, {badproto, P}}). +get_rpc_containment(P) -> error({gpb_error, {badproto, P}}). get_enum_containment("r3_hex_pb_names") -> []; -get_enum_containment(P) -> - error({gpb_error, {badproto, P}}). +get_enum_containment(P) -> error({gpb_error, {badproto, P}}). -get_proto_by_msg_name_as_fqbin(<<"Names">>) -> - "r3_hex_pb_names"; -get_proto_by_msg_name_as_fqbin(<<"Package">>) -> - "r3_hex_pb_names"; -get_proto_by_msg_name_as_fqbin(E) -> - error({gpb_error, {badmsg, E}}). +get_proto_by_msg_name_as_fqbin(<<"Timestamp">>) -> "r3_hex_pb_names"; +get_proto_by_msg_name_as_fqbin(<<"Names">>) -> "r3_hex_pb_names"; +get_proto_by_msg_name_as_fqbin(<<"Package">>) -> "r3_hex_pb_names"; +get_proto_by_msg_name_as_fqbin(E) -> error({gpb_error, {badmsg, E}}). -spec get_proto_by_service_name_as_fqbin(_) -> no_return(). -get_proto_by_service_name_as_fqbin(E) -> - error({gpb_error, {badservice, E}}). +get_proto_by_service_name_as_fqbin(E) -> error({gpb_error, {badservice, E}}). -spec get_proto_by_enum_name_as_fqbin(_) -> no_return(). -get_proto_by_enum_name_as_fqbin(E) -> - error({gpb_error, {badenum, E}}). +get_proto_by_enum_name_as_fqbin(E) -> error({gpb_error, {badenum, E}}). -spec get_protos_by_pkg_name_as_fqbin(_) -> no_return(). -get_protos_by_pkg_name_as_fqbin(E) -> - error({gpb_error, {badpkg, E}}). +get_protos_by_pkg_name_as_fqbin(E) -> error({gpb_error, {badpkg, E}}). gpb_version_as_string() -> - "4.10.0". + "4.21.1". gpb_version_as_list() -> - [4,10,0]. + [4,21,1]. + +gpb_version_source() -> + "file". diff --git a/apps/rebar/src/vendored/r3_hex_pb_package.erl b/apps/rebar/src/vendored/r3_hex_pb_package.erl index 7d3c72ad6..03eeae97a 100644 --- a/apps/rebar/src/vendored/r3_hex_pb_package.erl +++ b/apps/rebar/src/vendored/r3_hex_pb_package.erl @@ -1,9 +1,11 @@ -%% Vendored from hex_core v0.7.1, do not edit manually +%% Vendored from hex_core v0.10.1, do not edit manually %% -*- coding: utf-8 -*- +%% % this file is @generated %% @private %% Automatically generated, do not edit -%% Generated by gpb_compile version 4.10.0 +%% Generated by gpb_compile version 4.21.1 +%% Version source: file -module(r3_hex_pb_package). -export([encode_msg/2, encode_msg/3]). @@ -46,6 +48,7 @@ -export([get_proto_by_enum_name_as_fqbin/1]). -export([get_protos_by_pkg_name_as_fqbin/1]). -export([gpb_version_as_string/0, gpb_version_as_list/0]). +-export([gpb_version_source/0]). %% enumerated types @@ -54,180 +57,123 @@ %% message types -type 'Package'() :: - #{releases => ['Release'()], % = 1 - name := iodata(), % = 2 - repository := iodata() % = 3 + #{releases => ['Release'()], % = 1, repeated + name => unicode:chardata(), % = 2, required + repository => unicode:chardata() % = 3, required }. -type 'Release'() :: - #{version := iodata(), % = 1 - inner_checksum := iodata(), % = 2 - dependencies => ['Dependency'()], % = 3 - retired => 'RetirementStatus'(), % = 4 - outer_checksum => iodata() % = 5 + #{version => unicode:chardata(), % = 1, required + inner_checksum => iodata(), % = 2, required + dependencies => ['Dependency'()], % = 3, repeated + retired => 'RetirementStatus'(), % = 4, optional + outer_checksum => iodata() % = 5, optional }. -type 'RetirementStatus'() :: - #{reason := 'RETIRED_OTHER' | 'RETIRED_INVALID' | 'RETIRED_SECURITY' | 'RETIRED_DEPRECATED' | 'RETIRED_RENAMED' | integer(), % = 1, enum RetirementReason - message => iodata() % = 2 + #{reason => 'RETIRED_OTHER' | 'RETIRED_INVALID' | 'RETIRED_SECURITY' | 'RETIRED_DEPRECATED' | 'RETIRED_RENAMED' | integer(), % = 1, required, enum RetirementReason + message => unicode:chardata() % = 2, optional }. -type 'Dependency'() :: - #{package := iodata(), % = 1 - requirement := iodata(), % = 2 - optional => boolean() | 0 | 1, % = 3 - app => iodata(), % = 4 - repository => iodata() % = 5 + #{package => unicode:chardata(), % = 1, required + requirement => unicode:chardata(), % = 2, required + optional => boolean() | 0 | 1, % = 3, optional + app => unicode:chardata(), % = 4, optional + repository => unicode:chardata() % = 5, optional }. -export_type(['Package'/0, 'Release'/0, 'RetirementStatus'/0, 'Dependency'/0]). +-type '$msg_name'() :: 'Package' | 'Release' | 'RetirementStatus' | 'Dependency'. +-type '$msg'() :: 'Package'() | 'Release'() | 'RetirementStatus'() | 'Dependency'(). +-export_type(['$msg_name'/0, '$msg'/0]). --spec encode_msg('Package'() | 'Release'() | 'RetirementStatus'() | 'Dependency'(), atom()) -> binary(). -encode_msg(Msg, MsgName) when is_atom(MsgName) -> - encode_msg(Msg, MsgName, []). +-if(?OTP_RELEASE >= 24). +-dialyzer({no_underspecs, encode_msg/2}). +-endif. +-spec encode_msg('$msg'(), '$msg_name'()) -> binary(). +encode_msg(Msg, MsgName) when is_atom(MsgName) -> encode_msg(Msg, MsgName, []). --spec encode_msg('Package'() | 'Release'() | 'RetirementStatus'() | 'Dependency'(), atom(), list()) -> binary(). +-if(?OTP_RELEASE >= 24). +-dialyzer({no_underspecs, encode_msg/3}). +-endif. +-spec encode_msg('$msg'(), '$msg_name'(), list()) -> binary(). encode_msg(Msg, MsgName, Opts) -> verify_msg(Msg, MsgName, Opts), TrUserData = proplists:get_value(user_data, Opts), case MsgName of - 'Package' -> - encode_msg_Package(id(Msg, TrUserData), TrUserData); - 'Release' -> - encode_msg_Release(id(Msg, TrUserData), TrUserData); - 'RetirementStatus' -> - encode_msg_RetirementStatus(id(Msg, TrUserData), - TrUserData); - 'Dependency' -> - encode_msg_Dependency(id(Msg, TrUserData), TrUserData) + 'Package' -> encode_msg_Package(id(Msg, TrUserData), TrUserData); + 'Release' -> encode_msg_Release(id(Msg, TrUserData), TrUserData); + 'RetirementStatus' -> encode_msg_RetirementStatus(id(Msg, TrUserData), TrUserData); + 'Dependency' -> encode_msg_Dependency(id(Msg, TrUserData), TrUserData) end. -encode_msg_Package(Msg, TrUserData) -> - encode_msg_Package(Msg, <<>>, TrUserData). +encode_msg_Package(Msg, TrUserData) -> encode_msg_Package(Msg, <<>>, TrUserData). -encode_msg_Package(#{name := F2, repository := F3} = M, - Bin, TrUserData) -> +encode_msg_Package(#{name := F2, repository := F3} = M, Bin, TrUserData) -> B1 = case M of - #{releases := F1} -> - TrF1 = id(F1, TrUserData), - if TrF1 == [] -> Bin; - true -> e_field_Package_releases(TrF1, Bin, TrUserData) - end; - _ -> Bin - end, - B2 = begin - TrF2 = id(F2, TrUserData), - e_type_string(TrF2, <>, TrUserData) - end, - begin - TrF3 = id(F3, TrUserData), - e_type_string(TrF3, <>, TrUserData) - end. - -encode_msg_Release(Msg, TrUserData) -> - encode_msg_Release(Msg, <<>>, TrUserData). - - -encode_msg_Release(#{version := F1, - inner_checksum := F2} = - M, - Bin, TrUserData) -> - B1 = begin - TrF1 = id(F1, TrUserData), - e_type_string(TrF1, <>, TrUserData) - end, - B2 = begin - TrF2 = id(F2, TrUserData), - e_type_bytes(TrF2, <>, TrUserData) - end, + #{releases := F1} -> + TrF1 = id(F1, TrUserData), + if TrF1 == [] -> Bin; + true -> e_field_Package_releases(TrF1, Bin, TrUserData) + end; + _ -> Bin + end, + B2 = begin TrF2 = id(F2, TrUserData), e_type_string(TrF2, <>, TrUserData) end, + begin TrF3 = id(F3, TrUserData), e_type_string(TrF3, <>, TrUserData) end. + +encode_msg_Release(Msg, TrUserData) -> encode_msg_Release(Msg, <<>>, TrUserData). + + +encode_msg_Release(#{version := F1, inner_checksum := F2} = M, Bin, TrUserData) -> + B1 = begin TrF1 = id(F1, TrUserData), e_type_string(TrF1, <>, TrUserData) end, + B2 = begin TrF2 = id(F2, TrUserData), e_type_bytes(TrF2, <>, TrUserData) end, B3 = case M of - #{dependencies := F3} -> - TrF3 = id(F3, TrUserData), - if TrF3 == [] -> B2; - true -> - e_field_Release_dependencies(TrF3, B2, TrUserData) - end; - _ -> B2 - end, + #{dependencies := F3} -> + TrF3 = id(F3, TrUserData), + if TrF3 == [] -> B2; + true -> e_field_Release_dependencies(TrF3, B2, TrUserData) + end; + _ -> B2 + end, B4 = case M of - #{retired := F4} -> - begin - TrF4 = id(F4, TrUserData), - e_mfield_Release_retired(TrF4, <>, - TrUserData) - end; - _ -> B3 - end, + #{retired := F4} -> begin TrF4 = id(F4, TrUserData), e_mfield_Release_retired(TrF4, <>, TrUserData) end; + _ -> B3 + end, case M of - #{outer_checksum := F5} -> - begin - TrF5 = id(F5, TrUserData), - e_type_bytes(TrF5, <>, TrUserData) - end; - _ -> B4 + #{outer_checksum := F5} -> begin TrF5 = id(F5, TrUserData), e_type_bytes(TrF5, <>, TrUserData) end; + _ -> B4 end. -encode_msg_RetirementStatus(Msg, TrUserData) -> - encode_msg_RetirementStatus(Msg, <<>>, TrUserData). +encode_msg_RetirementStatus(Msg, TrUserData) -> encode_msg_RetirementStatus(Msg, <<>>, TrUserData). -encode_msg_RetirementStatus(#{reason := F1} = M, Bin, - TrUserData) -> - B1 = begin - TrF1 = id(F1, TrUserData), - e_enum_RetirementReason(TrF1, <>, - TrUserData) - end, +encode_msg_RetirementStatus(#{reason := F1} = M, Bin, TrUserData) -> + B1 = begin TrF1 = id(F1, TrUserData), e_enum_RetirementReason(TrF1, <>, TrUserData) end, case M of - #{message := F2} -> - begin - TrF2 = id(F2, TrUserData), - e_type_string(TrF2, <>, TrUserData) - end; - _ -> B1 + #{message := F2} -> begin TrF2 = id(F2, TrUserData), e_type_string(TrF2, <>, TrUserData) end; + _ -> B1 end. -encode_msg_Dependency(Msg, TrUserData) -> - encode_msg_Dependency(Msg, <<>>, TrUserData). - - -encode_msg_Dependency(#{package := F1, - requirement := F2} = - M, - Bin, TrUserData) -> - B1 = begin - TrF1 = id(F1, TrUserData), - e_type_string(TrF1, <>, TrUserData) - end, - B2 = begin - TrF2 = id(F2, TrUserData), - e_type_string(TrF2, <>, TrUserData) - end, +encode_msg_Dependency(Msg, TrUserData) -> encode_msg_Dependency(Msg, <<>>, TrUserData). + + +encode_msg_Dependency(#{package := F1, requirement := F2} = M, Bin, TrUserData) -> + B1 = begin TrF1 = id(F1, TrUserData), e_type_string(TrF1, <>, TrUserData) end, + B2 = begin TrF2 = id(F2, TrUserData), e_type_string(TrF2, <>, TrUserData) end, B3 = case M of - #{optional := F3} -> - begin - TrF3 = id(F3, TrUserData), - e_type_bool(TrF3, <>, TrUserData) - end; - _ -> B2 - end, + #{optional := F3} -> begin TrF3 = id(F3, TrUserData), e_type_bool(TrF3, <>, TrUserData) end; + _ -> B2 + end, B4 = case M of - #{app := F4} -> - begin - TrF4 = id(F4, TrUserData), - e_type_string(TrF4, <>, TrUserData) - end; - _ -> B3 - end, + #{app := F4} -> begin TrF4 = id(F4, TrUserData), e_type_string(TrF4, <>, TrUserData) end; + _ -> B3 + end, case M of - #{repository := F5} -> - begin - TrF5 = id(F5, TrUserData), - e_type_string(TrF5, <>, TrUserData) - end; - _ -> B4 + #{repository := F5} -> begin TrF5 = id(F5, TrUserData), e_type_string(TrF5, <>, TrUserData) end; + _ -> B4 end. e_mfield_Package_releases(Msg, Bin, TrUserData) -> @@ -235,11 +181,9 @@ e_mfield_Package_releases(Msg, Bin, TrUserData) -> Bin2 = e_varint(byte_size(SubBin), Bin), <>. -e_field_Package_releases([Elem | Rest], Bin, - TrUserData) -> +e_field_Package_releases([Elem | Rest], Bin, TrUserData) -> Bin2 = <>, - Bin3 = e_mfield_Package_releases(id(Elem, TrUserData), - Bin2, TrUserData), + Bin3 = e_mfield_Package_releases(id(Elem, TrUserData), Bin2, TrUserData), e_field_Package_releases(Rest, Bin3, TrUserData); e_field_Package_releases([], Bin, _TrUserData) -> Bin. @@ -248,67 +192,43 @@ e_mfield_Release_dependencies(Msg, Bin, TrUserData) -> Bin2 = e_varint(byte_size(SubBin), Bin), <>. -e_field_Release_dependencies([Elem | Rest], Bin, - TrUserData) -> +e_field_Release_dependencies([Elem | Rest], Bin, TrUserData) -> Bin2 = <>, - Bin3 = e_mfield_Release_dependencies(id(Elem, - TrUserData), - Bin2, TrUserData), + Bin3 = e_mfield_Release_dependencies(id(Elem, TrUserData), Bin2, TrUserData), e_field_Release_dependencies(Rest, Bin3, TrUserData); -e_field_Release_dependencies([], Bin, _TrUserData) -> - Bin. +e_field_Release_dependencies([], Bin, _TrUserData) -> Bin. e_mfield_Release_retired(Msg, Bin, TrUserData) -> - SubBin = encode_msg_RetirementStatus(Msg, <<>>, - TrUserData), + SubBin = encode_msg_RetirementStatus(Msg, <<>>, TrUserData), Bin2 = e_varint(byte_size(SubBin), Bin), <>. -e_enum_RetirementReason('RETIRED_OTHER', Bin, - _TrUserData) -> - <>; -e_enum_RetirementReason('RETIRED_INVALID', Bin, - _TrUserData) -> - <>; -e_enum_RetirementReason('RETIRED_SECURITY', Bin, - _TrUserData) -> - <>; -e_enum_RetirementReason('RETIRED_DEPRECATED', Bin, - _TrUserData) -> - <>; -e_enum_RetirementReason('RETIRED_RENAMED', Bin, - _TrUserData) -> - <>; -e_enum_RetirementReason(V, Bin, _TrUserData) -> - e_varint(V, Bin). +e_enum_RetirementReason('RETIRED_OTHER', Bin, _TrUserData) -> <>; +e_enum_RetirementReason('RETIRED_INVALID', Bin, _TrUserData) -> <>; +e_enum_RetirementReason('RETIRED_SECURITY', Bin, _TrUserData) -> <>; +e_enum_RetirementReason('RETIRED_DEPRECATED', Bin, _TrUserData) -> <>; +e_enum_RetirementReason('RETIRED_RENAMED', Bin, _TrUserData) -> <>; +e_enum_RetirementReason(V, Bin, _TrUserData) -> e_varint(V, Bin). -compile({nowarn_unused_function,e_type_sint/3}). -e_type_sint(Value, Bin, _TrUserData) when Value >= 0 -> - e_varint(Value * 2, Bin); -e_type_sint(Value, Bin, _TrUserData) -> - e_varint(Value * -2 - 1, Bin). +e_type_sint(Value, Bin, _TrUserData) when Value >= 0 -> e_varint(Value * 2, Bin); +e_type_sint(Value, Bin, _TrUserData) -> e_varint(Value * -2 - 1, Bin). -compile({nowarn_unused_function,e_type_int32/3}). -e_type_int32(Value, Bin, _TrUserData) - when 0 =< Value, Value =< 127 -> - <>; +e_type_int32(Value, Bin, _TrUserData) when 0 =< Value, Value =< 127 -> <>; e_type_int32(Value, Bin, _TrUserData) -> <> = <>, e_varint(N, Bin). -compile({nowarn_unused_function,e_type_int64/3}). -e_type_int64(Value, Bin, _TrUserData) - when 0 =< Value, Value =< 127 -> - <>; +e_type_int64(Value, Bin, _TrUserData) when 0 =< Value, Value =< 127 -> <>; e_type_int64(Value, Bin, _TrUserData) -> <> = <>, e_varint(N, Bin). -compile({nowarn_unused_function,e_type_bool/3}). -e_type_bool(true, Bin, _TrUserData) -> - <>; -e_type_bool(false, Bin, _TrUserData) -> - <>; +e_type_bool(true, Bin, _TrUserData) -> <>; +e_type_bool(false, Bin, _TrUserData) -> <>; e_type_bool(1, Bin, _TrUserData) -> <>; e_type_bool(0, Bin, _TrUserData) -> <>. @@ -319,51 +239,61 @@ e_type_string(S, Bin, _TrUserData) -> <>. -compile({nowarn_unused_function,e_type_bytes/3}). -e_type_bytes(Bytes, Bin, _TrUserData) - when is_binary(Bytes) -> +e_type_bytes(Bytes, Bin, _TrUserData) when is_binary(Bytes) -> Bin2 = e_varint(byte_size(Bytes), Bin), <>; -e_type_bytes(Bytes, Bin, _TrUserData) - when is_list(Bytes) -> +e_type_bytes(Bytes, Bin, _TrUserData) when is_list(Bytes) -> BytesBin = iolist_to_binary(Bytes), Bin2 = e_varint(byte_size(BytesBin), Bin), <>. -compile({nowarn_unused_function,e_type_fixed32/3}). -e_type_fixed32(Value, Bin, _TrUserData) -> - <>. +e_type_fixed32(Value, Bin, _TrUserData) -> <>. -compile({nowarn_unused_function,e_type_sfixed32/3}). -e_type_sfixed32(Value, Bin, _TrUserData) -> - <>. +e_type_sfixed32(Value, Bin, _TrUserData) -> <>. -compile({nowarn_unused_function,e_type_fixed64/3}). -e_type_fixed64(Value, Bin, _TrUserData) -> - <>. +e_type_fixed64(Value, Bin, _TrUserData) -> <>. -compile({nowarn_unused_function,e_type_sfixed64/3}). -e_type_sfixed64(Value, Bin, _TrUserData) -> - <>. +e_type_sfixed64(Value, Bin, _TrUserData) -> <>. -compile({nowarn_unused_function,e_type_float/3}). -e_type_float(V, Bin, _) when is_number(V) -> - <>; -e_type_float(infinity, Bin, _) -> - <>; -e_type_float('-infinity', Bin, _) -> - <>; -e_type_float(nan, Bin, _) -> - <>. +e_type_float(V, Bin, _) when is_number(V) -> <>; +e_type_float(infinity, Bin, _) -> <>; +e_type_float('-infinity', Bin, _) -> <>; +e_type_float(nan, Bin, _) -> <>. -compile({nowarn_unused_function,e_type_double/3}). -e_type_double(V, Bin, _) when is_number(V) -> - <>; -e_type_double(infinity, Bin, _) -> - <>; -e_type_double('-infinity', Bin, _) -> - <>; -e_type_double(nan, Bin, _) -> - <>. +e_type_double(V, Bin, _) when is_number(V) -> <>; +e_type_double(infinity, Bin, _) -> <>; +e_type_double('-infinity', Bin, _) -> <>; +e_type_double(nan, Bin, _) -> <>. + +-compile({nowarn_unused_function,e_unknown_elems/2}). +e_unknown_elems([Elem | Rest], Bin) -> + BinR = case Elem of + {varint, FNum, N} -> + BinF = e_varint(FNum bsl 3, Bin), + e_varint(N, BinF); + {length_delimited, FNum, Data} -> + BinF = e_varint(FNum bsl 3 bor 2, Bin), + BinL = e_varint(byte_size(Data), BinF), + <>; + {group, FNum, GroupFields} -> + Bin1 = e_varint(FNum bsl 3 bor 3, Bin), + Bin2 = e_unknown_elems(GroupFields, Bin1), + e_varint(FNum bsl 3 bor 4, Bin2); + {fixed32, FNum, V} -> + BinF = e_varint(FNum bsl 3 bor 5, Bin), + <>; + {fixed64, FNum, V} -> + BinF = e_varint(FNum bsl 3 bor 1, Bin), + <> + end, + e_unknown_elems(Rest, BinR); +e_unknown_elems([], Bin) -> Bin. -compile({nowarn_unused_function,e_varint/3}). e_varint(N, Bin, _TrUserData) -> e_varint(N, Bin). @@ -375,8 +305,7 @@ e_varint(N, Bin) -> e_varint(N bsr 7, Bin2). -decode_msg(Bin, MsgName) when is_binary(Bin) -> - decode_msg(Bin, MsgName, []). +decode_msg(Bin, MsgName) when is_binary(Bin) -> decode_msg(Bin, MsgName, []). decode_msg(Bin, MsgName, Opts) when is_binary(Bin) -> TrUserData = proplists:get_value(user_data, Opts), @@ -385,785 +314,350 @@ decode_msg(Bin, MsgName, Opts) when is_binary(Bin) -> -ifdef('OTP_RELEASE'). decode_msg_1_catch(Bin, MsgName, TrUserData) -> try decode_msg_2_doit(MsgName, Bin, TrUserData) - catch Class:Reason:StackTrace -> error({gpb_error,{decoding_failure, {Bin, MsgName, {Class, Reason, StackTrace}}}}) + catch + error:{gpb_error,_}=Reason:StackTrace -> + erlang:raise(error, Reason, StackTrace); + Class:Reason:StackTrace -> error({gpb_error,{decoding_failure, {Bin, MsgName, {Class, Reason, StackTrace}}}}) end. -else. decode_msg_1_catch(Bin, MsgName, TrUserData) -> try decode_msg_2_doit(MsgName, Bin, TrUserData) - catch Class:Reason -> - StackTrace = erlang:get_stacktrace(), - error({gpb_error,{decoding_failure, {Bin, MsgName, {Class, Reason, StackTrace}}}}) + catch + error:{gpb_error,_}=Reason -> + erlang:raise(error, Reason, + erlang:get_stacktrace()); + Class:Reason -> + StackTrace = erlang:get_stacktrace(), + error({gpb_error,{decoding_failure, {Bin, MsgName, {Class, Reason, StackTrace}}}}) end. -endif. -decode_msg_2_doit('Package', Bin, TrUserData) -> - id(decode_msg_Package(Bin, TrUserData), TrUserData); -decode_msg_2_doit('Release', Bin, TrUserData) -> - id(decode_msg_Release(Bin, TrUserData), TrUserData); -decode_msg_2_doit('RetirementStatus', Bin, - TrUserData) -> - id(decode_msg_RetirementStatus(Bin, TrUserData), - TrUserData); -decode_msg_2_doit('Dependency', Bin, TrUserData) -> - id(decode_msg_Dependency(Bin, TrUserData), TrUserData). - - - -decode_msg_Package(Bin, TrUserData) -> - dfp_read_field_def_Package(Bin, 0, 0, - id([], TrUserData), id('$undef', TrUserData), - id('$undef', TrUserData), TrUserData). - -dfp_read_field_def_Package(<<10, Rest/binary>>, Z1, Z2, - F@_1, F@_2, F@_3, TrUserData) -> - d_field_Package_releases(Rest, Z1, Z2, F@_1, F@_2, F@_3, - TrUserData); -dfp_read_field_def_Package(<<18, Rest/binary>>, Z1, Z2, - F@_1, F@_2, F@_3, TrUserData) -> - d_field_Package_name(Rest, Z1, Z2, F@_1, F@_2, F@_3, - TrUserData); -dfp_read_field_def_Package(<<26, Rest/binary>>, Z1, Z2, - F@_1, F@_2, F@_3, TrUserData) -> - d_field_Package_repository(Rest, Z1, Z2, F@_1, F@_2, - F@_3, TrUserData); -dfp_read_field_def_Package(<<>>, 0, 0, R1, F@_2, F@_3, - TrUserData) -> +decode_msg_2_doit('Package', Bin, TrUserData) -> id(decode_msg_Package(Bin, TrUserData), TrUserData); +decode_msg_2_doit('Release', Bin, TrUserData) -> id(decode_msg_Release(Bin, TrUserData), TrUserData); +decode_msg_2_doit('RetirementStatus', Bin, TrUserData) -> id(decode_msg_RetirementStatus(Bin, TrUserData), TrUserData); +decode_msg_2_doit('Dependency', Bin, TrUserData) -> id(decode_msg_Dependency(Bin, TrUserData), TrUserData). + + + +decode_msg_Package(Bin, TrUserData) -> dfp_read_field_def_Package(Bin, 0, 0, 0, id([], TrUserData), id('$undef', TrUserData), id('$undef', TrUserData), TrUserData). + +dfp_read_field_def_Package(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_Package_releases(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_Package(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_Package_name(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_Package(<<26, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_Package_repository(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_Package(<<>>, 0, 0, _, R1, F@_2, F@_3, TrUserData) -> S1 = #{name => F@_2, repository => F@_3}, if R1 == '$undef' -> S1; true -> S1#{releases => lists_reverse(R1, TrUserData)} end; -dfp_read_field_def_Package(Other, Z1, Z2, F@_1, F@_2, - F@_3, TrUserData) -> - dg_read_field_def_Package(Other, Z1, Z2, F@_1, F@_2, - F@_3, TrUserData). - -dg_read_field_def_Package(<<1:1, X:7, Rest/binary>>, N, - Acc, F@_1, F@_2, F@_3, TrUserData) - when N < 32 - 7 -> - dg_read_field_def_Package(Rest, N + 7, X bsl N + Acc, - F@_1, F@_2, F@_3, TrUserData); -dg_read_field_def_Package(<<0:1, X:7, Rest/binary>>, N, - Acc, F@_1, F@_2, F@_3, TrUserData) -> +dfp_read_field_def_Package(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dg_read_field_def_Package(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +dg_read_field_def_Package(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 32 - 7 -> dg_read_field_def_Package(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +dg_read_field_def_Package(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, TrUserData) -> Key = X bsl N + Acc, case Key of - 10 -> - d_field_Package_releases(Rest, 0, 0, F@_1, F@_2, F@_3, - TrUserData); - 18 -> - d_field_Package_name(Rest, 0, 0, F@_1, F@_2, F@_3, - TrUserData); - 26 -> - d_field_Package_repository(Rest, 0, 0, F@_1, F@_2, F@_3, - TrUserData); - _ -> - case Key band 7 of - 0 -> - skip_varint_Package(Rest, 0, 0, F@_1, F@_2, F@_3, - TrUserData); - 1 -> - skip_64_Package(Rest, 0, 0, F@_1, F@_2, F@_3, - TrUserData); - 2 -> - skip_length_delimited_Package(Rest, 0, 0, F@_1, F@_2, - F@_3, TrUserData); - 3 -> - skip_group_Package(Rest, Key bsr 3, 0, F@_1, F@_2, F@_3, - TrUserData); - 5 -> - skip_32_Package(Rest, 0, 0, F@_1, F@_2, F@_3, - TrUserData) - end + 10 -> d_field_Package_releases(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + 18 -> d_field_Package_name(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + 26 -> d_field_Package_repository(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + _ -> + case Key band 7 of + 0 -> skip_varint_Package(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 1 -> skip_64_Package(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 2 -> skip_length_delimited_Package(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 3 -> skip_group_Package(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 5 -> skip_32_Package(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData) + end end; -dg_read_field_def_Package(<<>>, 0, 0, R1, F@_2, F@_3, - TrUserData) -> +dg_read_field_def_Package(<<>>, 0, 0, _, R1, F@_2, F@_3, TrUserData) -> S1 = #{name => F@_2, repository => F@_3}, if R1 == '$undef' -> S1; true -> S1#{releases => lists_reverse(R1, TrUserData)} end. -d_field_Package_releases(<<1:1, X:7, Rest/binary>>, N, - Acc, F@_1, F@_2, F@_3, TrUserData) - when N < 57 -> - d_field_Package_releases(Rest, N + 7, X bsl N + Acc, - F@_1, F@_2, F@_3, TrUserData); -d_field_Package_releases(<<0:1, X:7, Rest/binary>>, N, - Acc, Prev, F@_2, F@_3, TrUserData) -> - {NewFValue, RestF} = begin - Len = X bsl N + Acc, - <> = Rest, - {id(decode_msg_Release(Bs, TrUserData), TrUserData), - Rest2} - end, - dfp_read_field_def_Package(RestF, 0, 0, - cons(NewFValue, Prev, TrUserData), F@_2, F@_3, - TrUserData). - -d_field_Package_name(<<1:1, X:7, Rest/binary>>, N, Acc, - F@_1, F@_2, F@_3, TrUserData) - when N < 57 -> - d_field_Package_name(Rest, N + 7, X bsl N + Acc, F@_1, - F@_2, F@_3, TrUserData); -d_field_Package_name(<<0:1, X:7, Rest/binary>>, N, Acc, - F@_1, _, F@_3, TrUserData) -> - {NewFValue, RestF} = begin - Len = X bsl N + Acc, - <> = Rest, - {id(binary:copy(Bytes), TrUserData), Rest2} - end, - dfp_read_field_def_Package(RestF, 0, 0, F@_1, NewFValue, - F@_3, TrUserData). - -d_field_Package_repository(<<1:1, X:7, Rest/binary>>, N, - Acc, F@_1, F@_2, F@_3, TrUserData) - when N < 57 -> - d_field_Package_repository(Rest, N + 7, X bsl N + Acc, - F@_1, F@_2, F@_3, TrUserData); -d_field_Package_repository(<<0:1, X:7, Rest/binary>>, N, - Acc, F@_1, F@_2, _, TrUserData) -> - {NewFValue, RestF} = begin - Len = X bsl N + Acc, - <> = Rest, - {id(binary:copy(Bytes), TrUserData), Rest2} - end, - dfp_read_field_def_Package(RestF, 0, 0, F@_1, F@_2, - NewFValue, TrUserData). - -skip_varint_Package(<<1:1, _:7, Rest/binary>>, Z1, Z2, - F@_1, F@_2, F@_3, TrUserData) -> - skip_varint_Package(Rest, Z1, Z2, F@_1, F@_2, F@_3, - TrUserData); -skip_varint_Package(<<0:1, _:7, Rest/binary>>, Z1, Z2, - F@_1, F@_2, F@_3, TrUserData) -> - dfp_read_field_def_Package(Rest, Z1, Z2, F@_1, F@_2, - F@_3, TrUserData). - -skip_length_delimited_Package(<<1:1, X:7, Rest/binary>>, - N, Acc, F@_1, F@_2, F@_3, TrUserData) - when N < 57 -> - skip_length_delimited_Package(Rest, N + 7, - X bsl N + Acc, F@_1, F@_2, F@_3, TrUserData); -skip_length_delimited_Package(<<0:1, X:7, Rest/binary>>, - N, Acc, F@_1, F@_2, F@_3, TrUserData) -> +d_field_Package_releases(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_Package_releases(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_Package_releases(<<0:1, X:7, Rest/binary>>, N, Acc, F, Prev, F@_2, F@_3, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id(decode_msg_Release(Bs, TrUserData), TrUserData), Rest2} end, + dfp_read_field_def_Package(RestF, 0, 0, F, cons(NewFValue, Prev, TrUserData), F@_2, F@_3, TrUserData). + +d_field_Package_name(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_Package_name(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_Package_name(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_Package(RestF, 0, 0, F, F@_1, NewFValue, F@_3, TrUserData). + +d_field_Package_repository(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_Package_repository(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_Package_repository(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_Package(RestF, 0, 0, F, F@_1, F@_2, NewFValue, TrUserData). + +skip_varint_Package(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> skip_varint_Package(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +skip_varint_Package(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_Package(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +skip_length_delimited_Package(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> skip_length_delimited_Package(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +skip_length_delimited_Package(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) -> Length = X bsl N + Acc, <<_:Length/binary, Rest2/binary>> = Rest, - dfp_read_field_def_Package(Rest2, 0, 0, F@_1, F@_2, - F@_3, TrUserData). + dfp_read_field_def_Package(Rest2, 0, 0, F, F@_1, F@_2, F@_3, TrUserData). -skip_group_Package(Bin, FNum, Z2, F@_1, F@_2, F@_3, - TrUserData) -> +skip_group_Package(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, TrUserData) -> {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_Package(Rest, 0, Z2, F@_1, F@_2, - F@_3, TrUserData). - -skip_32_Package(<<_:32, Rest/binary>>, Z1, Z2, F@_1, - F@_2, F@_3, TrUserData) -> - dfp_read_field_def_Package(Rest, Z1, Z2, F@_1, F@_2, - F@_3, TrUserData). - -skip_64_Package(<<_:64, Rest/binary>>, Z1, Z2, F@_1, - F@_2, F@_3, TrUserData) -> - dfp_read_field_def_Package(Rest, Z1, Z2, F@_1, F@_2, - F@_3, TrUserData). - -decode_msg_Release(Bin, TrUserData) -> - dfp_read_field_def_Release(Bin, 0, 0, - id('$undef', TrUserData), - id('$undef', TrUserData), id([], TrUserData), - id('$undef', TrUserData), - id('$undef', TrUserData), TrUserData). - -dfp_read_field_def_Release(<<10, Rest/binary>>, Z1, Z2, - F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> - d_field_Release_version(Rest, Z1, Z2, F@_1, F@_2, F@_3, - F@_4, F@_5, TrUserData); -dfp_read_field_def_Release(<<18, Rest/binary>>, Z1, Z2, - F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> - d_field_Release_inner_checksum(Rest, Z1, Z2, F@_1, F@_2, - F@_3, F@_4, F@_5, TrUserData); -dfp_read_field_def_Release(<<26, Rest/binary>>, Z1, Z2, - F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> - d_field_Release_dependencies(Rest, Z1, Z2, F@_1, F@_2, - F@_3, F@_4, F@_5, TrUserData); -dfp_read_field_def_Release(<<34, Rest/binary>>, Z1, Z2, - F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> - d_field_Release_retired(Rest, Z1, Z2, F@_1, F@_2, F@_3, - F@_4, F@_5, TrUserData); -dfp_read_field_def_Release(<<42, Rest/binary>>, Z1, Z2, - F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> - d_field_Release_outer_checksum(Rest, Z1, Z2, F@_1, F@_2, - F@_3, F@_4, F@_5, TrUserData); -dfp_read_field_def_Release(<<>>, 0, 0, F@_1, F@_2, R1, - F@_4, F@_5, TrUserData) -> + dfp_read_field_def_Package(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, TrUserData). + +skip_32_Package(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_Package(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +skip_64_Package(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_Package(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +decode_msg_Release(Bin, TrUserData) -> dfp_read_field_def_Release(Bin, 0, 0, 0, id('$undef', TrUserData), id('$undef', TrUserData), id([], TrUserData), id('$undef', TrUserData), id('$undef', TrUserData), TrUserData). + +dfp_read_field_def_Release(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> d_field_Release_version(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); +dfp_read_field_def_Release(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> d_field_Release_inner_checksum(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); +dfp_read_field_def_Release(<<26, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> d_field_Release_dependencies(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); +dfp_read_field_def_Release(<<34, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> d_field_Release_retired(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); +dfp_read_field_def_Release(<<42, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> d_field_Release_outer_checksum(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); +dfp_read_field_def_Release(<<>>, 0, 0, _, F@_1, F@_2, R1, F@_4, F@_5, TrUserData) -> S1 = #{version => F@_1, inner_checksum => F@_2}, S2 = if R1 == '$undef' -> S1; - true -> - S1#{dependencies => lists_reverse(R1, TrUserData)} - end, + true -> S1#{dependencies => lists_reverse(R1, TrUserData)} + end, S3 = if F@_4 == '$undef' -> S2; - true -> S2#{retired => F@_4} - end, + true -> S2#{retired => F@_4} + end, if F@_5 == '$undef' -> S3; true -> S3#{outer_checksum => F@_5} end; -dfp_read_field_def_Release(Other, Z1, Z2, F@_1, F@_2, - F@_3, F@_4, F@_5, TrUserData) -> - dg_read_field_def_Release(Other, Z1, Z2, F@_1, F@_2, - F@_3, F@_4, F@_5, TrUserData). - -dg_read_field_def_Release(<<1:1, X:7, Rest/binary>>, N, - Acc, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) - when N < 32 - 7 -> - dg_read_field_def_Release(Rest, N + 7, X bsl N + Acc, - F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); -dg_read_field_def_Release(<<0:1, X:7, Rest/binary>>, N, - Acc, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> +dfp_read_field_def_Release(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> dg_read_field_def_Release(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData). + +dg_read_field_def_Release(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 32 - 7 -> dg_read_field_def_Release(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); +dg_read_field_def_Release(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> Key = X bsl N + Acc, case Key of - 10 -> - d_field_Release_version(Rest, 0, 0, F@_1, F@_2, F@_3, - F@_4, F@_5, TrUserData); - 18 -> - d_field_Release_inner_checksum(Rest, 0, 0, F@_1, F@_2, - F@_3, F@_4, F@_5, TrUserData); - 26 -> - d_field_Release_dependencies(Rest, 0, 0, F@_1, F@_2, - F@_3, F@_4, F@_5, TrUserData); - 34 -> - d_field_Release_retired(Rest, 0, 0, F@_1, F@_2, F@_3, - F@_4, F@_5, TrUserData); - 42 -> - d_field_Release_outer_checksum(Rest, 0, 0, F@_1, F@_2, - F@_3, F@_4, F@_5, TrUserData); - _ -> - case Key band 7 of - 0 -> - skip_varint_Release(Rest, 0, 0, F@_1, F@_2, F@_3, F@_4, - F@_5, TrUserData); - 1 -> - skip_64_Release(Rest, 0, 0, F@_1, F@_2, F@_3, F@_4, - F@_5, TrUserData); - 2 -> - skip_length_delimited_Release(Rest, 0, 0, F@_1, F@_2, - F@_3, F@_4, F@_5, TrUserData); - 3 -> - skip_group_Release(Rest, Key bsr 3, 0, F@_1, F@_2, F@_3, - F@_4, F@_5, TrUserData); - 5 -> - skip_32_Release(Rest, 0, 0, F@_1, F@_2, F@_3, F@_4, - F@_5, TrUserData) - end + 10 -> d_field_Release_version(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); + 18 -> d_field_Release_inner_checksum(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); + 26 -> d_field_Release_dependencies(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); + 34 -> d_field_Release_retired(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); + 42 -> d_field_Release_outer_checksum(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); + _ -> + case Key band 7 of + 0 -> skip_varint_Release(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); + 1 -> skip_64_Release(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); + 2 -> skip_length_delimited_Release(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); + 3 -> skip_group_Release(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); + 5 -> skip_32_Release(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) + end end; -dg_read_field_def_Release(<<>>, 0, 0, F@_1, F@_2, R1, - F@_4, F@_5, TrUserData) -> +dg_read_field_def_Release(<<>>, 0, 0, _, F@_1, F@_2, R1, F@_4, F@_5, TrUserData) -> S1 = #{version => F@_1, inner_checksum => F@_2}, S2 = if R1 == '$undef' -> S1; - true -> - S1#{dependencies => lists_reverse(R1, TrUserData)} - end, + true -> S1#{dependencies => lists_reverse(R1, TrUserData)} + end, S3 = if F@_4 == '$undef' -> S2; - true -> S2#{retired => F@_4} - end, + true -> S2#{retired => F@_4} + end, if F@_5 == '$undef' -> S3; true -> S3#{outer_checksum => F@_5} end. -d_field_Release_version(<<1:1, X:7, Rest/binary>>, N, - Acc, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) - when N < 57 -> - d_field_Release_version(Rest, N + 7, X bsl N + Acc, - F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); -d_field_Release_version(<<0:1, X:7, Rest/binary>>, N, - Acc, _, F@_2, F@_3, F@_4, F@_5, TrUserData) -> - {NewFValue, RestF} = begin - Len = X bsl N + Acc, - <> = Rest, - {id(binary:copy(Bytes), TrUserData), Rest2} - end, - dfp_read_field_def_Release(RestF, 0, 0, NewFValue, F@_2, - F@_3, F@_4, F@_5, TrUserData). - -d_field_Release_inner_checksum(<<1:1, X:7, - Rest/binary>>, - N, Acc, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) - when N < 57 -> - d_field_Release_inner_checksum(Rest, N + 7, - X bsl N + Acc, F@_1, F@_2, F@_3, F@_4, F@_5, - TrUserData); -d_field_Release_inner_checksum(<<0:1, X:7, - Rest/binary>>, - N, Acc, F@_1, _, F@_3, F@_4, F@_5, TrUserData) -> - {NewFValue, RestF} = begin - Len = X bsl N + Acc, - <> = Rest, - {id(binary:copy(Bytes), TrUserData), Rest2} - end, - dfp_read_field_def_Release(RestF, 0, 0, F@_1, NewFValue, - F@_3, F@_4, F@_5, TrUserData). - -d_field_Release_dependencies(<<1:1, X:7, Rest/binary>>, - N, Acc, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) - when N < 57 -> - d_field_Release_dependencies(Rest, N + 7, X bsl N + Acc, - F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); -d_field_Release_dependencies(<<0:1, X:7, Rest/binary>>, - N, Acc, F@_1, F@_2, Prev, F@_4, F@_5, - TrUserData) -> - {NewFValue, RestF} = begin - Len = X bsl N + Acc, - <> = Rest, - {id(decode_msg_Dependency(Bs, TrUserData), - TrUserData), - Rest2} - end, - dfp_read_field_def_Release(RestF, 0, 0, F@_1, F@_2, - cons(NewFValue, Prev, TrUserData), F@_4, F@_5, - TrUserData). - -d_field_Release_retired(<<1:1, X:7, Rest/binary>>, N, - Acc, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) - when N < 57 -> - d_field_Release_retired(Rest, N + 7, X bsl N + Acc, - F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); -d_field_Release_retired(<<0:1, X:7, Rest/binary>>, N, - Acc, F@_1, F@_2, F@_3, Prev, F@_5, TrUserData) -> - {NewFValue, RestF} = begin - Len = X bsl N + Acc, - <> = Rest, - {id(decode_msg_RetirementStatus(Bs, TrUserData), - TrUserData), - Rest2} - end, - dfp_read_field_def_Release(RestF, 0, 0, F@_1, F@_2, - F@_3, - if Prev == '$undef' -> NewFValue; - true -> - merge_msg_RetirementStatus(Prev, - NewFValue, - TrUserData) - end, - F@_5, TrUserData). - -d_field_Release_outer_checksum(<<1:1, X:7, - Rest/binary>>, - N, Acc, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) - when N < 57 -> - d_field_Release_outer_checksum(Rest, N + 7, - X bsl N + Acc, F@_1, F@_2, F@_3, F@_4, F@_5, - TrUserData); -d_field_Release_outer_checksum(<<0:1, X:7, - Rest/binary>>, - N, Acc, F@_1, F@_2, F@_3, F@_4, _, TrUserData) -> - {NewFValue, RestF} = begin - Len = X bsl N + Acc, - <> = Rest, - {id(binary:copy(Bytes), TrUserData), Rest2} - end, - dfp_read_field_def_Release(RestF, 0, 0, F@_1, F@_2, - F@_3, F@_4, NewFValue, TrUserData). - -skip_varint_Release(<<1:1, _:7, Rest/binary>>, Z1, Z2, - F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> - skip_varint_Release(Rest, Z1, Z2, F@_1, F@_2, F@_3, - F@_4, F@_5, TrUserData); -skip_varint_Release(<<0:1, _:7, Rest/binary>>, Z1, Z2, - F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> - dfp_read_field_def_Release(Rest, Z1, Z2, F@_1, F@_2, - F@_3, F@_4, F@_5, TrUserData). - -skip_length_delimited_Release(<<1:1, X:7, Rest/binary>>, - N, Acc, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) - when N < 57 -> - skip_length_delimited_Release(Rest, N + 7, - X bsl N + Acc, F@_1, F@_2, F@_3, F@_4, F@_5, - TrUserData); -skip_length_delimited_Release(<<0:1, X:7, Rest/binary>>, - N, Acc, F@_1, F@_2, F@_3, F@_4, F@_5, - TrUserData) -> +d_field_Release_version(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 57 -> d_field_Release_version(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); +d_field_Release_version(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, F@_4, F@_5, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_Release(RestF, 0, 0, F, NewFValue, F@_2, F@_3, F@_4, F@_5, TrUserData). + +d_field_Release_inner_checksum(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 57 -> d_field_Release_inner_checksum(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); +d_field_Release_inner_checksum(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, F@_4, F@_5, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_Release(RestF, 0, 0, F, F@_1, NewFValue, F@_3, F@_4, F@_5, TrUserData). + +d_field_Release_dependencies(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 57 -> d_field_Release_dependencies(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); +d_field_Release_dependencies(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, Prev, F@_4, F@_5, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id(decode_msg_Dependency(Bs, TrUserData), TrUserData), Rest2} end, + dfp_read_field_def_Release(RestF, 0, 0, F, F@_1, F@_2, cons(NewFValue, Prev, TrUserData), F@_4, F@_5, TrUserData). + +d_field_Release_retired(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 57 -> d_field_Release_retired(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); +d_field_Release_retired(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, Prev, F@_5, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id(decode_msg_RetirementStatus(Bs, TrUserData), TrUserData), Rest2} end, + dfp_read_field_def_Release(RestF, + 0, + 0, + F, + F@_1, + F@_2, + F@_3, + if Prev == '$undef' -> NewFValue; + true -> merge_msg_RetirementStatus(Prev, NewFValue, TrUserData) + end, + F@_5, + TrUserData). + +d_field_Release_outer_checksum(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 57 -> d_field_Release_outer_checksum(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); +d_field_Release_outer_checksum(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, _, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_Release(RestF, 0, 0, F, F@_1, F@_2, F@_3, F@_4, NewFValue, TrUserData). + +skip_varint_Release(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> skip_varint_Release(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); +skip_varint_Release(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> dfp_read_field_def_Release(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData). + +skip_length_delimited_Release(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 57 -> skip_length_delimited_Release(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); +skip_length_delimited_Release(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> Length = X bsl N + Acc, <<_:Length/binary, Rest2/binary>> = Rest, - dfp_read_field_def_Release(Rest2, 0, 0, F@_1, F@_2, - F@_3, F@_4, F@_5, TrUserData). + dfp_read_field_def_Release(Rest2, 0, 0, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData). -skip_group_Release(Bin, FNum, Z2, F@_1, F@_2, F@_3, - F@_4, F@_5, TrUserData) -> +skip_group_Release(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_Release(Rest, 0, Z2, F@_1, F@_2, - F@_3, F@_4, F@_5, TrUserData). - -skip_32_Release(<<_:32, Rest/binary>>, Z1, Z2, F@_1, - F@_2, F@_3, F@_4, F@_5, TrUserData) -> - dfp_read_field_def_Release(Rest, Z1, Z2, F@_1, F@_2, - F@_3, F@_4, F@_5, TrUserData). - -skip_64_Release(<<_:64, Rest/binary>>, Z1, Z2, F@_1, - F@_2, F@_3, F@_4, F@_5, TrUserData) -> - dfp_read_field_def_Release(Rest, Z1, Z2, F@_1, F@_2, - F@_3, F@_4, F@_5, TrUserData). - -decode_msg_RetirementStatus(Bin, TrUserData) -> - dfp_read_field_def_RetirementStatus(Bin, 0, 0, - id('$undef', TrUserData), - id('$undef', TrUserData), TrUserData). - -dfp_read_field_def_RetirementStatus(<<8, Rest/binary>>, - Z1, Z2, F@_1, F@_2, TrUserData) -> - d_field_RetirementStatus_reason(Rest, Z1, Z2, F@_1, - F@_2, TrUserData); -dfp_read_field_def_RetirementStatus(<<18, Rest/binary>>, - Z1, Z2, F@_1, F@_2, TrUserData) -> - d_field_RetirementStatus_message(Rest, Z1, Z2, F@_1, - F@_2, TrUserData); -dfp_read_field_def_RetirementStatus(<<>>, 0, 0, F@_1, - F@_2, _) -> + dfp_read_field_def_Release(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData). + +skip_32_Release(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> dfp_read_field_def_Release(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData). + +skip_64_Release(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> dfp_read_field_def_Release(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData). + +decode_msg_RetirementStatus(Bin, TrUserData) -> dfp_read_field_def_RetirementStatus(Bin, 0, 0, 0, id('$undef', TrUserData), id('$undef', TrUserData), TrUserData). + +dfp_read_field_def_RetirementStatus(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_RetirementStatus_reason(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +dfp_read_field_def_RetirementStatus(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_RetirementStatus_message(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +dfp_read_field_def_RetirementStatus(<<>>, 0, 0, _, F@_1, F@_2, _) -> S1 = #{reason => F@_1}, if F@_2 == '$undef' -> S1; true -> S1#{message => F@_2} end; -dfp_read_field_def_RetirementStatus(Other, Z1, Z2, F@_1, - F@_2, TrUserData) -> - dg_read_field_def_RetirementStatus(Other, Z1, Z2, F@_1, - F@_2, TrUserData). - -dg_read_field_def_RetirementStatus(<<1:1, X:7, - Rest/binary>>, - N, Acc, F@_1, F@_2, TrUserData) - when N < 32 - 7 -> - dg_read_field_def_RetirementStatus(Rest, N + 7, - X bsl N + Acc, F@_1, F@_2, TrUserData); -dg_read_field_def_RetirementStatus(<<0:1, X:7, - Rest/binary>>, - N, Acc, F@_1, F@_2, TrUserData) -> +dfp_read_field_def_RetirementStatus(Other, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dg_read_field_def_RetirementStatus(Other, Z1, Z2, F, F@_1, F@_2, TrUserData). + +dg_read_field_def_RetirementStatus(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 32 - 7 -> dg_read_field_def_RetirementStatus(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +dg_read_field_def_RetirementStatus(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, TrUserData) -> Key = X bsl N + Acc, case Key of - 8 -> - d_field_RetirementStatus_reason(Rest, 0, 0, F@_1, F@_2, - TrUserData); - 18 -> - d_field_RetirementStatus_message(Rest, 0, 0, F@_1, F@_2, - TrUserData); - _ -> - case Key band 7 of - 0 -> - skip_varint_RetirementStatus(Rest, 0, 0, F@_1, F@_2, - TrUserData); - 1 -> - skip_64_RetirementStatus(Rest, 0, 0, F@_1, F@_2, - TrUserData); - 2 -> - skip_length_delimited_RetirementStatus(Rest, 0, 0, F@_1, - F@_2, TrUserData); - 3 -> - skip_group_RetirementStatus(Rest, Key bsr 3, 0, F@_1, - F@_2, TrUserData); - 5 -> - skip_32_RetirementStatus(Rest, 0, 0, F@_1, F@_2, - TrUserData) - end + 8 -> d_field_RetirementStatus_reason(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + 18 -> d_field_RetirementStatus_message(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + _ -> + case Key band 7 of + 0 -> skip_varint_RetirementStatus(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 1 -> skip_64_RetirementStatus(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 2 -> skip_length_delimited_RetirementStatus(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 3 -> skip_group_RetirementStatus(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 5 -> skip_32_RetirementStatus(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData) + end end; -dg_read_field_def_RetirementStatus(<<>>, 0, 0, F@_1, - F@_2, _) -> +dg_read_field_def_RetirementStatus(<<>>, 0, 0, _, F@_1, F@_2, _) -> S1 = #{reason => F@_1}, if F@_2 == '$undef' -> S1; true -> S1#{message => F@_2} end. -d_field_RetirementStatus_reason(<<1:1, X:7, - Rest/binary>>, - N, Acc, F@_1, F@_2, TrUserData) - when N < 57 -> - d_field_RetirementStatus_reason(Rest, N + 7, - X bsl N + Acc, F@_1, F@_2, TrUserData); -d_field_RetirementStatus_reason(<<0:1, X:7, - Rest/binary>>, - N, Acc, _, F@_2, TrUserData) -> - {NewFValue, RestF} = {id(d_enum_RetirementReason(begin - <> = - <<(X bsl N + - Acc):32/unsigned-native>>, - id(Res, TrUserData) - end), - TrUserData), - Rest}, - dfp_read_field_def_RetirementStatus(RestF, 0, 0, - NewFValue, F@_2, TrUserData). - -d_field_RetirementStatus_message(<<1:1, X:7, - Rest/binary>>, - N, Acc, F@_1, F@_2, TrUserData) - when N < 57 -> - d_field_RetirementStatus_message(Rest, N + 7, - X bsl N + Acc, F@_1, F@_2, TrUserData); -d_field_RetirementStatus_message(<<0:1, X:7, - Rest/binary>>, - N, Acc, F@_1, _, TrUserData) -> - {NewFValue, RestF} = begin - Len = X bsl N + Acc, - <> = Rest, - {id(binary:copy(Bytes), TrUserData), Rest2} - end, - dfp_read_field_def_RetirementStatus(RestF, 0, 0, F@_1, - NewFValue, TrUserData). - -skip_varint_RetirementStatus(<<1:1, _:7, Rest/binary>>, - Z1, Z2, F@_1, F@_2, TrUserData) -> - skip_varint_RetirementStatus(Rest, Z1, Z2, F@_1, F@_2, - TrUserData); -skip_varint_RetirementStatus(<<0:1, _:7, Rest/binary>>, - Z1, Z2, F@_1, F@_2, TrUserData) -> - dfp_read_field_def_RetirementStatus(Rest, Z1, Z2, F@_1, - F@_2, TrUserData). - -skip_length_delimited_RetirementStatus(<<1:1, X:7, - Rest/binary>>, - N, Acc, F@_1, F@_2, TrUserData) - when N < 57 -> - skip_length_delimited_RetirementStatus(Rest, N + 7, - X bsl N + Acc, F@_1, F@_2, - TrUserData); -skip_length_delimited_RetirementStatus(<<0:1, X:7, - Rest/binary>>, - N, Acc, F@_1, F@_2, TrUserData) -> +d_field_RetirementStatus_reason(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_RetirementStatus_reason(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +d_field_RetirementStatus_reason(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, TrUserData) -> + {NewFValue, RestF} = {id(d_enum_RetirementReason(begin <> = <<(X bsl N + Acc):32/unsigned-native>>, id(Res, TrUserData) end), TrUserData), Rest}, + dfp_read_field_def_RetirementStatus(RestF, 0, 0, F, NewFValue, F@_2, TrUserData). + +d_field_RetirementStatus_message(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_RetirementStatus_message(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +d_field_RetirementStatus_message(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_RetirementStatus(RestF, 0, 0, F, F@_1, NewFValue, TrUserData). + +skip_varint_RetirementStatus(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> skip_varint_RetirementStatus(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +skip_varint_RetirementStatus(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_RetirementStatus(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +skip_length_delimited_RetirementStatus(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> skip_length_delimited_RetirementStatus(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +skip_length_delimited_RetirementStatus(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) -> Length = X bsl N + Acc, <<_:Length/binary, Rest2/binary>> = Rest, - dfp_read_field_def_RetirementStatus(Rest2, 0, 0, F@_1, - F@_2, TrUserData). + dfp_read_field_def_RetirementStatus(Rest2, 0, 0, F, F@_1, F@_2, TrUserData). -skip_group_RetirementStatus(Bin, FNum, Z2, F@_1, F@_2, - TrUserData) -> +skip_group_RetirementStatus(Bin, _, Z2, FNum, F@_1, F@_2, TrUserData) -> {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_RetirementStatus(Rest, 0, Z2, F@_1, - F@_2, TrUserData). - -skip_32_RetirementStatus(<<_:32, Rest/binary>>, Z1, Z2, - F@_1, F@_2, TrUserData) -> - dfp_read_field_def_RetirementStatus(Rest, Z1, Z2, F@_1, - F@_2, TrUserData). - -skip_64_RetirementStatus(<<_:64, Rest/binary>>, Z1, Z2, - F@_1, F@_2, TrUserData) -> - dfp_read_field_def_RetirementStatus(Rest, Z1, Z2, F@_1, - F@_2, TrUserData). - -decode_msg_Dependency(Bin, TrUserData) -> - dfp_read_field_def_Dependency(Bin, 0, 0, - id('$undef', TrUserData), - id('$undef', TrUserData), - id('$undef', TrUserData), - id('$undef', TrUserData), - id('$undef', TrUserData), TrUserData). - -dfp_read_field_def_Dependency(<<10, Rest/binary>>, Z1, - Z2, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> - d_field_Dependency_package(Rest, Z1, Z2, F@_1, F@_2, - F@_3, F@_4, F@_5, TrUserData); -dfp_read_field_def_Dependency(<<18, Rest/binary>>, Z1, - Z2, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> - d_field_Dependency_requirement(Rest, Z1, Z2, F@_1, F@_2, - F@_3, F@_4, F@_5, TrUserData); -dfp_read_field_def_Dependency(<<24, Rest/binary>>, Z1, - Z2, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> - d_field_Dependency_optional(Rest, Z1, Z2, F@_1, F@_2, - F@_3, F@_4, F@_5, TrUserData); -dfp_read_field_def_Dependency(<<34, Rest/binary>>, Z1, - Z2, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> - d_field_Dependency_app(Rest, Z1, Z2, F@_1, F@_2, F@_3, - F@_4, F@_5, TrUserData); -dfp_read_field_def_Dependency(<<42, Rest/binary>>, Z1, - Z2, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> - d_field_Dependency_repository(Rest, Z1, Z2, F@_1, F@_2, - F@_3, F@_4, F@_5, TrUserData); -dfp_read_field_def_Dependency(<<>>, 0, 0, F@_1, F@_2, - F@_3, F@_4, F@_5, _) -> + dfp_read_field_def_RetirementStatus(Rest, 0, Z2, FNum, F@_1, F@_2, TrUserData). + +skip_32_RetirementStatus(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_RetirementStatus(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +skip_64_RetirementStatus(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_RetirementStatus(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +decode_msg_Dependency(Bin, TrUserData) -> dfp_read_field_def_Dependency(Bin, 0, 0, 0, id('$undef', TrUserData), id('$undef', TrUserData), id('$undef', TrUserData), id('$undef', TrUserData), id('$undef', TrUserData), TrUserData). + +dfp_read_field_def_Dependency(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> d_field_Dependency_package(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); +dfp_read_field_def_Dependency(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> d_field_Dependency_requirement(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); +dfp_read_field_def_Dependency(<<24, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> d_field_Dependency_optional(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); +dfp_read_field_def_Dependency(<<34, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> d_field_Dependency_app(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); +dfp_read_field_def_Dependency(<<42, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> d_field_Dependency_repository(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); +dfp_read_field_def_Dependency(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, F@_5, _) -> S1 = #{package => F@_1, requirement => F@_2}, S2 = if F@_3 == '$undef' -> S1; - true -> S1#{optional => F@_3} - end, + true -> S1#{optional => F@_3} + end, S3 = if F@_4 == '$undef' -> S2; - true -> S2#{app => F@_4} - end, + true -> S2#{app => F@_4} + end, if F@_5 == '$undef' -> S3; true -> S3#{repository => F@_5} end; -dfp_read_field_def_Dependency(Other, Z1, Z2, F@_1, F@_2, - F@_3, F@_4, F@_5, TrUserData) -> - dg_read_field_def_Dependency(Other, Z1, Z2, F@_1, F@_2, - F@_3, F@_4, F@_5, TrUserData). - -dg_read_field_def_Dependency(<<1:1, X:7, Rest/binary>>, - N, Acc, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) - when N < 32 - 7 -> - dg_read_field_def_Dependency(Rest, N + 7, X bsl N + Acc, - F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); -dg_read_field_def_Dependency(<<0:1, X:7, Rest/binary>>, - N, Acc, F@_1, F@_2, F@_3, F@_4, F@_5, - TrUserData) -> +dfp_read_field_def_Dependency(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> dg_read_field_def_Dependency(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData). + +dg_read_field_def_Dependency(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 32 - 7 -> dg_read_field_def_Dependency(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); +dg_read_field_def_Dependency(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> Key = X bsl N + Acc, case Key of - 10 -> - d_field_Dependency_package(Rest, 0, 0, F@_1, F@_2, F@_3, - F@_4, F@_5, TrUserData); - 18 -> - d_field_Dependency_requirement(Rest, 0, 0, F@_1, F@_2, - F@_3, F@_4, F@_5, TrUserData); - 24 -> - d_field_Dependency_optional(Rest, 0, 0, F@_1, F@_2, - F@_3, F@_4, F@_5, TrUserData); - 34 -> - d_field_Dependency_app(Rest, 0, 0, F@_1, F@_2, F@_3, - F@_4, F@_5, TrUserData); - 42 -> - d_field_Dependency_repository(Rest, 0, 0, F@_1, F@_2, - F@_3, F@_4, F@_5, TrUserData); - _ -> - case Key band 7 of - 0 -> - skip_varint_Dependency(Rest, 0, 0, F@_1, F@_2, F@_3, - F@_4, F@_5, TrUserData); - 1 -> - skip_64_Dependency(Rest, 0, 0, F@_1, F@_2, F@_3, F@_4, - F@_5, TrUserData); - 2 -> - skip_length_delimited_Dependency(Rest, 0, 0, F@_1, F@_2, - F@_3, F@_4, F@_5, TrUserData); - 3 -> - skip_group_Dependency(Rest, Key bsr 3, 0, F@_1, F@_2, - F@_3, F@_4, F@_5, TrUserData); - 5 -> - skip_32_Dependency(Rest, 0, 0, F@_1, F@_2, F@_3, F@_4, - F@_5, TrUserData) - end + 10 -> d_field_Dependency_package(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); + 18 -> d_field_Dependency_requirement(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); + 24 -> d_field_Dependency_optional(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); + 34 -> d_field_Dependency_app(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); + 42 -> d_field_Dependency_repository(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); + _ -> + case Key band 7 of + 0 -> skip_varint_Dependency(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); + 1 -> skip_64_Dependency(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); + 2 -> skip_length_delimited_Dependency(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); + 3 -> skip_group_Dependency(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); + 5 -> skip_32_Dependency(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) + end end; -dg_read_field_def_Dependency(<<>>, 0, 0, F@_1, F@_2, - F@_3, F@_4, F@_5, _) -> +dg_read_field_def_Dependency(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, F@_5, _) -> S1 = #{package => F@_1, requirement => F@_2}, S2 = if F@_3 == '$undef' -> S1; - true -> S1#{optional => F@_3} - end, + true -> S1#{optional => F@_3} + end, S3 = if F@_4 == '$undef' -> S2; - true -> S2#{app => F@_4} - end, + true -> S2#{app => F@_4} + end, if F@_5 == '$undef' -> S3; true -> S3#{repository => F@_5} end. -d_field_Dependency_package(<<1:1, X:7, Rest/binary>>, N, - Acc, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) - when N < 57 -> - d_field_Dependency_package(Rest, N + 7, X bsl N + Acc, - F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); -d_field_Dependency_package(<<0:1, X:7, Rest/binary>>, N, - Acc, _, F@_2, F@_3, F@_4, F@_5, TrUserData) -> - {NewFValue, RestF} = begin - Len = X bsl N + Acc, - <> = Rest, - {id(binary:copy(Bytes), TrUserData), Rest2} - end, - dfp_read_field_def_Dependency(RestF, 0, 0, NewFValue, - F@_2, F@_3, F@_4, F@_5, TrUserData). - -d_field_Dependency_requirement(<<1:1, X:7, - Rest/binary>>, - N, Acc, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) - when N < 57 -> - d_field_Dependency_requirement(Rest, N + 7, - X bsl N + Acc, F@_1, F@_2, F@_3, F@_4, F@_5, - TrUserData); -d_field_Dependency_requirement(<<0:1, X:7, - Rest/binary>>, - N, Acc, F@_1, _, F@_3, F@_4, F@_5, TrUserData) -> - {NewFValue, RestF} = begin - Len = X bsl N + Acc, - <> = Rest, - {id(binary:copy(Bytes), TrUserData), Rest2} - end, - dfp_read_field_def_Dependency(RestF, 0, 0, F@_1, - NewFValue, F@_3, F@_4, F@_5, TrUserData). - -d_field_Dependency_optional(<<1:1, X:7, Rest/binary>>, - N, Acc, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) - when N < 57 -> - d_field_Dependency_optional(Rest, N + 7, X bsl N + Acc, - F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); -d_field_Dependency_optional(<<0:1, X:7, Rest/binary>>, - N, Acc, F@_1, F@_2, _, F@_4, F@_5, TrUserData) -> - {NewFValue, RestF} = {id(X bsl N + Acc =/= 0, - TrUserData), - Rest}, - dfp_read_field_def_Dependency(RestF, 0, 0, F@_1, F@_2, - NewFValue, F@_4, F@_5, TrUserData). - -d_field_Dependency_app(<<1:1, X:7, Rest/binary>>, N, - Acc, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) - when N < 57 -> - d_field_Dependency_app(Rest, N + 7, X bsl N + Acc, F@_1, - F@_2, F@_3, F@_4, F@_5, TrUserData); -d_field_Dependency_app(<<0:1, X:7, Rest/binary>>, N, - Acc, F@_1, F@_2, F@_3, _, F@_5, TrUserData) -> - {NewFValue, RestF} = begin - Len = X bsl N + Acc, - <> = Rest, - {id(binary:copy(Bytes), TrUserData), Rest2} - end, - dfp_read_field_def_Dependency(RestF, 0, 0, F@_1, F@_2, - F@_3, NewFValue, F@_5, TrUserData). - -d_field_Dependency_repository(<<1:1, X:7, Rest/binary>>, - N, Acc, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) - when N < 57 -> - d_field_Dependency_repository(Rest, N + 7, - X bsl N + Acc, F@_1, F@_2, F@_3, F@_4, F@_5, - TrUserData); -d_field_Dependency_repository(<<0:1, X:7, Rest/binary>>, - N, Acc, F@_1, F@_2, F@_3, F@_4, _, TrUserData) -> - {NewFValue, RestF} = begin - Len = X bsl N + Acc, - <> = Rest, - {id(binary:copy(Bytes), TrUserData), Rest2} - end, - dfp_read_field_def_Dependency(RestF, 0, 0, F@_1, F@_2, - F@_3, F@_4, NewFValue, TrUserData). - -skip_varint_Dependency(<<1:1, _:7, Rest/binary>>, Z1, - Z2, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> - skip_varint_Dependency(Rest, Z1, Z2, F@_1, F@_2, F@_3, - F@_4, F@_5, TrUserData); -skip_varint_Dependency(<<0:1, _:7, Rest/binary>>, Z1, - Z2, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> - dfp_read_field_def_Dependency(Rest, Z1, Z2, F@_1, F@_2, - F@_3, F@_4, F@_5, TrUserData). - -skip_length_delimited_Dependency(<<1:1, X:7, - Rest/binary>>, - N, Acc, F@_1, F@_2, F@_3, F@_4, F@_5, - TrUserData) - when N < 57 -> - skip_length_delimited_Dependency(Rest, N + 7, - X bsl N + Acc, F@_1, F@_2, F@_3, F@_4, - F@_5, TrUserData); -skip_length_delimited_Dependency(<<0:1, X:7, - Rest/binary>>, - N, Acc, F@_1, F@_2, F@_3, F@_4, F@_5, - TrUserData) -> +d_field_Dependency_package(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 57 -> d_field_Dependency_package(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); +d_field_Dependency_package(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, F@_4, F@_5, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_Dependency(RestF, 0, 0, F, NewFValue, F@_2, F@_3, F@_4, F@_5, TrUserData). + +d_field_Dependency_requirement(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 57 -> d_field_Dependency_requirement(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); +d_field_Dependency_requirement(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, F@_4, F@_5, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_Dependency(RestF, 0, 0, F, F@_1, NewFValue, F@_3, F@_4, F@_5, TrUserData). + +d_field_Dependency_optional(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 57 -> d_field_Dependency_optional(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); +d_field_Dependency_optional(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, F@_4, F@_5, TrUserData) -> + {NewFValue, RestF} = {id(X bsl N + Acc =/= 0, TrUserData), Rest}, + dfp_read_field_def_Dependency(RestF, 0, 0, F, F@_1, F@_2, NewFValue, F@_4, F@_5, TrUserData). + +d_field_Dependency_app(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 57 -> d_field_Dependency_app(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); +d_field_Dependency_app(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, _, F@_5, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_Dependency(RestF, 0, 0, F, F@_1, F@_2, F@_3, NewFValue, F@_5, TrUserData). + +d_field_Dependency_repository(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 57 -> d_field_Dependency_repository(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); +d_field_Dependency_repository(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, _, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_Dependency(RestF, 0, 0, F, F@_1, F@_2, F@_3, F@_4, NewFValue, TrUserData). + +skip_varint_Dependency(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> skip_varint_Dependency(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); +skip_varint_Dependency(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> dfp_read_field_def_Dependency(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData). + +skip_length_delimited_Dependency(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 57 -> skip_length_delimited_Dependency(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); +skip_length_delimited_Dependency(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> Length = X bsl N + Acc, <<_:Length/binary, Rest2/binary>> = Rest, - dfp_read_field_def_Dependency(Rest2, 0, 0, F@_1, F@_2, - F@_3, F@_4, F@_5, TrUserData). + dfp_read_field_def_Dependency(Rest2, 0, 0, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData). -skip_group_Dependency(Bin, FNum, Z2, F@_1, F@_2, F@_3, - F@_4, F@_5, TrUserData) -> +skip_group_Dependency(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_Dependency(Rest, 0, Z2, F@_1, F@_2, - F@_3, F@_4, F@_5, TrUserData). + dfp_read_field_def_Dependency(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData). -skip_32_Dependency(<<_:32, Rest/binary>>, Z1, Z2, F@_1, - F@_2, F@_3, F@_4, F@_5, TrUserData) -> - dfp_read_field_def_Dependency(Rest, Z1, Z2, F@_1, F@_2, - F@_3, F@_4, F@_5, TrUserData). +skip_32_Dependency(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> dfp_read_field_def_Dependency(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData). -skip_64_Dependency(<<_:64, Rest/binary>>, Z1, Z2, F@_1, - F@_2, F@_3, F@_4, F@_5, TrUserData) -> - dfp_read_field_def_Dependency(Rest, Z1, Z2, F@_1, F@_2, - F@_3, F@_4, F@_5, TrUserData). +skip_64_Dependency(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> dfp_read_field_def_Dependency(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData). d_enum_RetirementReason(0) -> 'RETIRED_OTHER'; d_enum_RetirementReason(1) -> 'RETIRED_INVALID'; @@ -1230,315 +724,215 @@ read_gr_ld(<<0:1, X:7, Tl/binary>>, N, Acc, NumBytes, FieldNum) -> <<_:Len/binary, Tl2/binary>> = Tl, read_gr_b(Tl2, 0, 0, NumBytes1 + Len, 0, FieldNum). -merge_msgs(Prev, New, MsgName) when is_atom(MsgName) -> - merge_msgs(Prev, New, MsgName, []). +merge_msgs(Prev, New, MsgName) when is_atom(MsgName) -> merge_msgs(Prev, New, MsgName, []). merge_msgs(Prev, New, MsgName, Opts) -> TrUserData = proplists:get_value(user_data, Opts), case MsgName of - 'Package' -> merge_msg_Package(Prev, New, TrUserData); - 'Release' -> merge_msg_Release(Prev, New, TrUserData); - 'RetirementStatus' -> - merge_msg_RetirementStatus(Prev, New, TrUserData); - 'Dependency' -> - merge_msg_Dependency(Prev, New, TrUserData) + 'Package' -> merge_msg_Package(Prev, New, TrUserData); + 'Release' -> merge_msg_Release(Prev, New, TrUserData); + 'RetirementStatus' -> merge_msg_RetirementStatus(Prev, New, TrUserData); + 'Dependency' -> merge_msg_Dependency(Prev, New, TrUserData) end. -compile({nowarn_unused_function,merge_msg_Package/3}). -merge_msg_Package(#{} = PMsg, - #{name := NFname, repository := NFrepository} = NMsg, - TrUserData) -> +merge_msg_Package(#{} = PMsg, #{name := NFname, repository := NFrepository} = NMsg, TrUserData) -> S1 = #{name => NFname, repository => NFrepository}, case {PMsg, NMsg} of - {#{releases := PFreleases}, - #{releases := NFreleases}} -> - S1#{releases => - 'erlang_++'(PFreleases, NFreleases, TrUserData)}; - {_, #{releases := NFreleases}} -> - S1#{releases => NFreleases}; - {#{releases := PFreleases}, _} -> - S1#{releases => PFreleases}; - {_, _} -> S1 + {#{releases := PFreleases}, #{releases := NFreleases}} -> S1#{releases => 'erlang_++'(PFreleases, NFreleases, TrUserData)}; + {_, #{releases := NFreleases}} -> S1#{releases => NFreleases}; + {#{releases := PFreleases}, _} -> S1#{releases => PFreleases}; + {_, _} -> S1 end. -compile({nowarn_unused_function,merge_msg_Release/3}). -merge_msg_Release(#{} = PMsg, - #{version := NFversion, - inner_checksum := NFinner_checksum} = - NMsg, - TrUserData) -> - S1 = #{version => NFversion, - inner_checksum => NFinner_checksum}, +merge_msg_Release(#{} = PMsg, #{version := NFversion, inner_checksum := NFinner_checksum} = NMsg, TrUserData) -> + S1 = #{version => NFversion, inner_checksum => NFinner_checksum}, S2 = case {PMsg, NMsg} of - {#{dependencies := PFdependencies}, - #{dependencies := NFdependencies}} -> - S1#{dependencies => - 'erlang_++'(PFdependencies, NFdependencies, - TrUserData)}; - {_, #{dependencies := NFdependencies}} -> - S1#{dependencies => NFdependencies}; - {#{dependencies := PFdependencies}, _} -> - S1#{dependencies => PFdependencies}; - {_, _} -> S1 - end, + {#{dependencies := PFdependencies}, #{dependencies := NFdependencies}} -> S1#{dependencies => 'erlang_++'(PFdependencies, NFdependencies, TrUserData)}; + {_, #{dependencies := NFdependencies}} -> S1#{dependencies => NFdependencies}; + {#{dependencies := PFdependencies}, _} -> S1#{dependencies => PFdependencies}; + {_, _} -> S1 + end, S3 = case {PMsg, NMsg} of - {#{retired := PFretired}, #{retired := NFretired}} -> - S2#{retired => - merge_msg_RetirementStatus(PFretired, NFretired, - TrUserData)}; - {_, #{retired := NFretired}} -> - S2#{retired => NFretired}; - {#{retired := PFretired}, _} -> - S2#{retired => PFretired}; - {_, _} -> S2 - end, + {#{retired := PFretired}, #{retired := NFretired}} -> S2#{retired => merge_msg_RetirementStatus(PFretired, NFretired, TrUserData)}; + {_, #{retired := NFretired}} -> S2#{retired => NFretired}; + {#{retired := PFretired}, _} -> S2#{retired => PFretired}; + {_, _} -> S2 + end, case {PMsg, NMsg} of - {_, #{outer_checksum := NFouter_checksum}} -> - S3#{outer_checksum => NFouter_checksum}; - {#{outer_checksum := PFouter_checksum}, _} -> - S3#{outer_checksum => PFouter_checksum}; - _ -> S3 + {_, #{outer_checksum := NFouter_checksum}} -> S3#{outer_checksum => NFouter_checksum}; + {#{outer_checksum := PFouter_checksum}, _} -> S3#{outer_checksum => PFouter_checksum}; + _ -> S3 end. -compile({nowarn_unused_function,merge_msg_RetirementStatus/3}). -merge_msg_RetirementStatus(#{} = PMsg, - #{reason := NFreason} = NMsg, _) -> +merge_msg_RetirementStatus(#{} = PMsg, #{reason := NFreason} = NMsg, _) -> S1 = #{reason => NFreason}, case {PMsg, NMsg} of - {_, #{message := NFmessage}} -> - S1#{message => NFmessage}; - {#{message := PFmessage}, _} -> - S1#{message => PFmessage}; - _ -> S1 + {_, #{message := NFmessage}} -> S1#{message => NFmessage}; + {#{message := PFmessage}, _} -> S1#{message => PFmessage}; + _ -> S1 end. -compile({nowarn_unused_function,merge_msg_Dependency/3}). -merge_msg_Dependency(#{} = PMsg, - #{package := NFpackage, requirement := NFrequirement} = - NMsg, - _) -> - S1 = #{package => NFpackage, - requirement => NFrequirement}, +merge_msg_Dependency(#{} = PMsg, #{package := NFpackage, requirement := NFrequirement} = NMsg, _) -> + S1 = #{package => NFpackage, requirement => NFrequirement}, S2 = case {PMsg, NMsg} of - {_, #{optional := NFoptional}} -> - S1#{optional => NFoptional}; - {#{optional := PFoptional}, _} -> - S1#{optional => PFoptional}; - _ -> S1 - end, + {_, #{optional := NFoptional}} -> S1#{optional => NFoptional}; + {#{optional := PFoptional}, _} -> S1#{optional => PFoptional}; + _ -> S1 + end, S3 = case {PMsg, NMsg} of - {_, #{app := NFapp}} -> S2#{app => NFapp}; - {#{app := PFapp}, _} -> S2#{app => PFapp}; - _ -> S2 - end, + {_, #{app := NFapp}} -> S2#{app => NFapp}; + {#{app := PFapp}, _} -> S2#{app => PFapp}; + _ -> S2 + end, case {PMsg, NMsg} of - {_, #{repository := NFrepository}} -> - S3#{repository => NFrepository}; - {#{repository := PFrepository}, _} -> - S3#{repository => PFrepository}; - _ -> S3 + {_, #{repository := NFrepository}} -> S3#{repository => NFrepository}; + {#{repository := PFrepository}, _} -> S3#{repository => PFrepository}; + _ -> S3 end. -verify_msg(Msg, MsgName) when is_atom(MsgName) -> - verify_msg(Msg, MsgName, []). +verify_msg(Msg, MsgName) when is_atom(MsgName) -> verify_msg(Msg, MsgName, []). verify_msg(Msg, MsgName, Opts) -> TrUserData = proplists:get_value(user_data, Opts), case MsgName of - 'Package' -> v_msg_Package(Msg, [MsgName], TrUserData); - 'Release' -> v_msg_Release(Msg, [MsgName], TrUserData); - 'RetirementStatus' -> - v_msg_RetirementStatus(Msg, [MsgName], TrUserData); - 'Dependency' -> - v_msg_Dependency(Msg, [MsgName], TrUserData); - _ -> mk_type_error(not_a_known_message, Msg, []) + 'Package' -> v_msg_Package(Msg, [MsgName], TrUserData); + 'Release' -> v_msg_Release(Msg, [MsgName], TrUserData); + 'RetirementStatus' -> v_msg_RetirementStatus(Msg, [MsgName], TrUserData); + 'Dependency' -> v_msg_Dependency(Msg, [MsgName], TrUserData); + _ -> mk_type_error(not_a_known_message, Msg, []) end. -compile({nowarn_unused_function,v_msg_Package/3}). -dialyzer({nowarn_function,v_msg_Package/3}). -v_msg_Package(#{name := F2, repository := F3} = M, Path, - TrUserData) -> +v_msg_Package(#{name := F2, repository := F3} = M, Path, TrUserData) -> case M of - #{releases := F1} -> - if is_list(F1) -> - _ = [v_msg_Release(Elem, [releases | Path], TrUserData) - || Elem <- F1], - ok; - true -> - mk_type_error({invalid_list_of, {msg, 'Release'}}, F1, - [releases | Path]) - end; - _ -> ok + #{releases := F1} -> + if is_list(F1) -> + _ = [v_submsg_Release(Elem, [releases | Path], TrUserData) || Elem <- F1], + ok; + true -> mk_type_error({invalid_list_of, {msg, 'Release'}}, F1, [releases | Path]) + end; + _ -> ok end, v_type_string(F2, [name | Path], TrUserData), v_type_string(F3, [repository | Path], TrUserData), lists:foreach(fun (releases) -> ok; - (name) -> ok; - (repository) -> ok; - (OtherKey) -> - mk_type_error({extraneous_key, OtherKey}, M, Path) - end, - maps:keys(M)), + (name) -> ok; + (repository) -> ok; + (OtherKey) -> mk_type_error({extraneous_key, OtherKey}, M, Path) + end, + maps:keys(M)), ok; -v_msg_Package(M, Path, _TrUserData) when is_map(M) -> - mk_type_error({missing_fields, - [name, repository] -- maps:keys(M), 'Package'}, - M, Path); -v_msg_Package(X, Path, _TrUserData) -> - mk_type_error({expected_msg, 'Package'}, X, Path). +v_msg_Package(M, Path, _TrUserData) when is_map(M) -> mk_type_error({missing_fields, [name, repository] -- maps:keys(M), 'Package'}, M, Path); +v_msg_Package(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'Package'}, X, Path). + +-compile({nowarn_unused_function,v_submsg_Release/3}). +-dialyzer({nowarn_function,v_submsg_Release/3}). +v_submsg_Release(Msg, Path, TrUserData) -> v_msg_Release(Msg, Path, TrUserData). -compile({nowarn_unused_function,v_msg_Release/3}). -dialyzer({nowarn_function,v_msg_Release/3}). -v_msg_Release(#{version := F1, inner_checksum := F2} = - M, - Path, TrUserData) -> +v_msg_Release(#{version := F1, inner_checksum := F2} = M, Path, TrUserData) -> v_type_string(F1, [version | Path], TrUserData), v_type_bytes(F2, [inner_checksum | Path], TrUserData), case M of - #{dependencies := F3} -> - if is_list(F3) -> - _ = [v_msg_Dependency(Elem, [dependencies | Path], - TrUserData) - || Elem <- F3], - ok; - true -> - mk_type_error({invalid_list_of, {msg, 'Dependency'}}, - F3, [dependencies | Path]) - end; - _ -> ok + #{dependencies := F3} -> + if is_list(F3) -> + _ = [v_submsg_Dependency(Elem, [dependencies | Path], TrUserData) || Elem <- F3], + ok; + true -> mk_type_error({invalid_list_of, {msg, 'Dependency'}}, F3, [dependencies | Path]) + end; + _ -> ok end, case M of - #{retired := F4} -> - v_msg_RetirementStatus(F4, [retired | Path], - TrUserData); - _ -> ok + #{retired := F4} -> v_submsg_RetirementStatus(F4, [retired | Path], TrUserData); + _ -> ok end, case M of - #{outer_checksum := F5} -> - v_type_bytes(F5, [outer_checksum | Path], TrUserData); - _ -> ok + #{outer_checksum := F5} -> v_type_bytes(F5, [outer_checksum | Path], TrUserData); + _ -> ok end, lists:foreach(fun (version) -> ok; - (inner_checksum) -> ok; - (dependencies) -> ok; - (retired) -> ok; - (outer_checksum) -> ok; - (OtherKey) -> - mk_type_error({extraneous_key, OtherKey}, M, Path) - end, - maps:keys(M)), + (inner_checksum) -> ok; + (dependencies) -> ok; + (retired) -> ok; + (outer_checksum) -> ok; + (OtherKey) -> mk_type_error({extraneous_key, OtherKey}, M, Path) + end, + maps:keys(M)), ok; -v_msg_Release(M, Path, _TrUserData) when is_map(M) -> - mk_type_error({missing_fields, - [version, inner_checksum] -- maps:keys(M), 'Release'}, - M, Path); -v_msg_Release(X, Path, _TrUserData) -> - mk_type_error({expected_msg, 'Release'}, X, Path). +v_msg_Release(M, Path, _TrUserData) when is_map(M) -> mk_type_error({missing_fields, [version, inner_checksum] -- maps:keys(M), 'Release'}, M, Path); +v_msg_Release(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'Release'}, X, Path). + +-compile({nowarn_unused_function,v_submsg_RetirementStatus/3}). +-dialyzer({nowarn_function,v_submsg_RetirementStatus/3}). +v_submsg_RetirementStatus(Msg, Path, TrUserData) -> v_msg_RetirementStatus(Msg, Path, TrUserData). -compile({nowarn_unused_function,v_msg_RetirementStatus/3}). -dialyzer({nowarn_function,v_msg_RetirementStatus/3}). -v_msg_RetirementStatus(#{reason := F1} = M, Path, - TrUserData) -> - v_enum_RetirementReason(F1, [reason | Path], - TrUserData), +v_msg_RetirementStatus(#{reason := F1} = M, Path, TrUserData) -> + v_enum_RetirementReason(F1, [reason | Path], TrUserData), case M of - #{message := F2} -> - v_type_string(F2, [message | Path], TrUserData); - _ -> ok + #{message := F2} -> v_type_string(F2, [message | Path], TrUserData); + _ -> ok end, lists:foreach(fun (reason) -> ok; - (message) -> ok; - (OtherKey) -> - mk_type_error({extraneous_key, OtherKey}, M, Path) - end, - maps:keys(M)), + (message) -> ok; + (OtherKey) -> mk_type_error({extraneous_key, OtherKey}, M, Path) + end, + maps:keys(M)), ok; -v_msg_RetirementStatus(M, Path, _TrUserData) - when is_map(M) -> - mk_type_error({missing_fields, [reason] -- maps:keys(M), - 'RetirementStatus'}, - M, Path); -v_msg_RetirementStatus(X, Path, _TrUserData) -> - mk_type_error({expected_msg, 'RetirementStatus'}, X, - Path). +v_msg_RetirementStatus(M, Path, _TrUserData) when is_map(M) -> mk_type_error({missing_fields, [reason] -- maps:keys(M), 'RetirementStatus'}, M, Path); +v_msg_RetirementStatus(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'RetirementStatus'}, X, Path). + +-compile({nowarn_unused_function,v_submsg_Dependency/3}). +-dialyzer({nowarn_function,v_submsg_Dependency/3}). +v_submsg_Dependency(Msg, Path, TrUserData) -> v_msg_Dependency(Msg, Path, TrUserData). -compile({nowarn_unused_function,v_msg_Dependency/3}). -dialyzer({nowarn_function,v_msg_Dependency/3}). -v_msg_Dependency(#{package := F1, requirement := F2} = - M, - Path, TrUserData) -> +v_msg_Dependency(#{package := F1, requirement := F2} = M, Path, TrUserData) -> v_type_string(F1, [package | Path], TrUserData), v_type_string(F2, [requirement | Path], TrUserData), case M of - #{optional := F3} -> - v_type_bool(F3, [optional | Path], TrUserData); - _ -> ok + #{optional := F3} -> v_type_bool(F3, [optional | Path], TrUserData); + _ -> ok end, case M of - #{app := F4} -> - v_type_string(F4, [app | Path], TrUserData); - _ -> ok + #{app := F4} -> v_type_string(F4, [app | Path], TrUserData); + _ -> ok end, case M of - #{repository := F5} -> - v_type_string(F5, [repository | Path], TrUserData); - _ -> ok + #{repository := F5} -> v_type_string(F5, [repository | Path], TrUserData); + _ -> ok end, lists:foreach(fun (package) -> ok; - (requirement) -> ok; - (optional) -> ok; - (app) -> ok; - (repository) -> ok; - (OtherKey) -> - mk_type_error({extraneous_key, OtherKey}, M, Path) - end, - maps:keys(M)), + (requirement) -> ok; + (optional) -> ok; + (app) -> ok; + (repository) -> ok; + (OtherKey) -> mk_type_error({extraneous_key, OtherKey}, M, Path) + end, + maps:keys(M)), ok; -v_msg_Dependency(M, Path, _TrUserData) when is_map(M) -> - mk_type_error({missing_fields, - [package, requirement] -- maps:keys(M), 'Dependency'}, - M, Path); -v_msg_Dependency(X, Path, _TrUserData) -> - mk_type_error({expected_msg, 'Dependency'}, X, Path). +v_msg_Dependency(M, Path, _TrUserData) when is_map(M) -> mk_type_error({missing_fields, [package, requirement] -- maps:keys(M), 'Dependency'}, M, Path); +v_msg_Dependency(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'Dependency'}, X, Path). -compile({nowarn_unused_function,v_enum_RetirementReason/3}). -dialyzer({nowarn_function,v_enum_RetirementReason/3}). -v_enum_RetirementReason('RETIRED_OTHER', _Path, - _TrUserData) -> - ok; -v_enum_RetirementReason('RETIRED_INVALID', _Path, - _TrUserData) -> - ok; -v_enum_RetirementReason('RETIRED_SECURITY', _Path, - _TrUserData) -> - ok; -v_enum_RetirementReason('RETIRED_DEPRECATED', _Path, - _TrUserData) -> - ok; -v_enum_RetirementReason('RETIRED_RENAMED', _Path, - _TrUserData) -> - ok; -v_enum_RetirementReason(V, Path, TrUserData) - when is_integer(V) -> - v_type_sint32(V, Path, TrUserData); -v_enum_RetirementReason(X, Path, _TrUserData) -> - mk_type_error({invalid_enum, 'RetirementReason'}, X, - Path). - --compile({nowarn_unused_function,v_type_sint32/3}). --dialyzer({nowarn_function,v_type_sint32/3}). -v_type_sint32(N, _Path, _TrUserData) - when -2147483648 =< N, N =< 2147483647 -> - ok; -v_type_sint32(N, Path, _TrUserData) - when is_integer(N) -> - mk_type_error({value_out_of_range, sint32, signed, 32}, - N, Path); -v_type_sint32(X, Path, _TrUserData) -> - mk_type_error({bad_integer, sint32, signed, 32}, X, - Path). +v_enum_RetirementReason('RETIRED_OTHER', _Path, _TrUserData) -> ok; +v_enum_RetirementReason('RETIRED_INVALID', _Path, _TrUserData) -> ok; +v_enum_RetirementReason('RETIRED_SECURITY', _Path, _TrUserData) -> ok; +v_enum_RetirementReason('RETIRED_DEPRECATED', _Path, _TrUserData) -> ok; +v_enum_RetirementReason('RETIRED_RENAMED', _Path, _TrUserData) -> ok; +v_enum_RetirementReason(V, _Path, _TrUserData) when -2147483648 =< V, V =< 2147483647, is_integer(V) -> ok; +v_enum_RetirementReason(X, Path, _TrUserData) -> mk_type_error({invalid_enum, 'RetirementReason'}, X, Path). -compile({nowarn_unused_function,v_type_bool/3}). -dialyzer({nowarn_function,v_type_bool/3}). @@ -1546,48 +940,36 @@ v_type_bool(false, _Path, _TrUserData) -> ok; v_type_bool(true, _Path, _TrUserData) -> ok; v_type_bool(0, _Path, _TrUserData) -> ok; v_type_bool(1, _Path, _TrUserData) -> ok; -v_type_bool(X, Path, _TrUserData) -> - mk_type_error(bad_boolean_value, X, Path). +v_type_bool(X, Path, _TrUserData) -> mk_type_error(bad_boolean_value, X, Path). -compile({nowarn_unused_function,v_type_string/3}). -dialyzer({nowarn_function,v_type_string/3}). -v_type_string(S, Path, _TrUserData) - when is_list(S); is_binary(S) -> +v_type_string(S, Path, _TrUserData) when is_list(S); is_binary(S) -> try unicode:characters_to_binary(S) of - B when is_binary(B) -> ok; - {error, _, _} -> - mk_type_error(bad_unicode_string, S, Path) + B when is_binary(B) -> ok; + {error, _, _} -> mk_type_error(bad_unicode_string, S, Path) catch - error:badarg -> - mk_type_error(bad_unicode_string, S, Path) + error:badarg -> mk_type_error(bad_unicode_string, S, Path) end; -v_type_string(X, Path, _TrUserData) -> - mk_type_error(bad_unicode_string, X, Path). +v_type_string(X, Path, _TrUserData) -> mk_type_error(bad_unicode_string, X, Path). -compile({nowarn_unused_function,v_type_bytes/3}). -dialyzer({nowarn_function,v_type_bytes/3}). -v_type_bytes(B, _Path, _TrUserData) when is_binary(B) -> - ok; -v_type_bytes(B, _Path, _TrUserData) when is_list(B) -> - ok; -v_type_bytes(X, Path, _TrUserData) -> - mk_type_error(bad_binary_value, X, Path). +v_type_bytes(B, _Path, _TrUserData) when is_binary(B) -> ok; +v_type_bytes(B, _Path, _TrUserData) when is_list(B) -> ok; +v_type_bytes(X, Path, _TrUserData) -> mk_type_error(bad_binary_value, X, Path). -compile({nowarn_unused_function,mk_type_error/3}). -spec mk_type_error(_, _, list()) -> no_return(). mk_type_error(Error, ValueSeen, Path) -> Path2 = prettify_path(Path), - erlang:error({gpb_type_error, - {Error, [{value, ValueSeen}, {path, Path2}]}}). + erlang:error({gpb_type_error, {Error, [{value, ValueSeen}, {path, Path2}]}}). -compile({nowarn_unused_function,prettify_path/1}). -dialyzer({nowarn_function,prettify_path/1}). prettify_path([]) -> top_level; -prettify_path(PathR) -> - list_to_atom(lists:append(lists:join(".", - lists:map(fun atom_to_list/1, - lists:reverse(PathR))))). +prettify_path(PathR) -> lists:append(lists:join(".", lists:map(fun atom_to_list/1, lists:reverse(PathR)))). -compile({nowarn_unused_function,id/2}). @@ -1615,61 +997,33 @@ cons(Elem, Acc, _TrUserData) -> [Elem | Acc]. get_msg_defs() -> - [{{enum, 'RetirementReason'}, - [{'RETIRED_OTHER', 0}, {'RETIRED_INVALID', 1}, - {'RETIRED_SECURITY', 2}, {'RETIRED_DEPRECATED', 3}, - {'RETIRED_RENAMED', 4}]}, + [{{enum, 'RetirementReason'}, [{'RETIRED_OTHER', 0}, {'RETIRED_INVALID', 1}, {'RETIRED_SECURITY', 2}, {'RETIRED_DEPRECATED', 3}, {'RETIRED_RENAMED', 4}]}, {{msg, 'Package'}, - [#{name => releases, fnum => 1, rnum => 2, - type => {msg, 'Release'}, occurrence => repeated, - opts => []}, - #{name => name, fnum => 2, rnum => 3, type => string, - occurrence => required, opts => []}, - #{name => repository, fnum => 3, rnum => 4, - type => string, occurrence => required, opts => []}]}, + [#{name => releases, fnum => 1, rnum => 2, type => {msg, 'Release'}, occurrence => repeated, opts => []}, + #{name => name, fnum => 2, rnum => 3, type => string, occurrence => required, opts => []}, + #{name => repository, fnum => 3, rnum => 4, type => string, occurrence => required, opts => []}]}, {{msg, 'Release'}, - [#{name => version, fnum => 1, rnum => 2, - type => string, occurrence => required, opts => []}, - #{name => inner_checksum, fnum => 2, rnum => 3, - type => bytes, occurrence => required, opts => []}, - #{name => dependencies, fnum => 3, rnum => 4, - type => {msg, 'Dependency'}, occurrence => repeated, - opts => []}, - #{name => retired, fnum => 4, rnum => 5, - type => {msg, 'RetirementStatus'}, - occurrence => optional, opts => []}, - #{name => outer_checksum, fnum => 5, rnum => 6, - type => bytes, occurrence => optional, opts => []}]}, - {{msg, 'RetirementStatus'}, - [#{name => reason, fnum => 1, rnum => 2, - type => {enum, 'RetirementReason'}, - occurrence => required, opts => []}, - #{name => message, fnum => 2, rnum => 3, type => string, - occurrence => optional, opts => []}]}, + [#{name => version, fnum => 1, rnum => 2, type => string, occurrence => required, opts => []}, + #{name => inner_checksum, fnum => 2, rnum => 3, type => bytes, occurrence => required, opts => []}, + #{name => dependencies, fnum => 3, rnum => 4, type => {msg, 'Dependency'}, occurrence => repeated, opts => []}, + #{name => retired, fnum => 4, rnum => 5, type => {msg, 'RetirementStatus'}, occurrence => optional, opts => []}, + #{name => outer_checksum, fnum => 5, rnum => 6, type => bytes, occurrence => optional, opts => []}]}, + {{msg, 'RetirementStatus'}, [#{name => reason, fnum => 1, rnum => 2, type => {enum, 'RetirementReason'}, occurrence => required, opts => []}, #{name => message, fnum => 2, rnum => 3, type => string, occurrence => optional, opts => []}]}, {{msg, 'Dependency'}, - [#{name => package, fnum => 1, rnum => 2, - type => string, occurrence => required, opts => []}, - #{name => requirement, fnum => 2, rnum => 3, - type => string, occurrence => required, opts => []}, - #{name => optional, fnum => 3, rnum => 4, type => bool, - occurrence => optional, opts => []}, - #{name => app, fnum => 4, rnum => 5, type => string, - occurrence => optional, opts => []}, - #{name => repository, fnum => 5, rnum => 6, - type => string, occurrence => optional, opts => []}]}]. + [#{name => package, fnum => 1, rnum => 2, type => string, occurrence => required, opts => []}, + #{name => requirement, fnum => 2, rnum => 3, type => string, occurrence => required, opts => []}, + #{name => optional, fnum => 3, rnum => 4, type => bool, occurrence => optional, opts => []}, + #{name => app, fnum => 4, rnum => 5, type => string, occurrence => optional, opts => []}, + #{name => repository, fnum => 5, rnum => 6, type => string, occurrence => optional, opts => []}]}]. -get_msg_names() -> - ['Package', 'Release', 'RetirementStatus', - 'Dependency']. +get_msg_names() -> ['Package', 'Release', 'RetirementStatus', 'Dependency']. get_group_names() -> []. -get_msg_or_group_names() -> - ['Package', 'Release', 'RetirementStatus', - 'Dependency']. +get_msg_or_group_names() -> ['Package', 'Release', 'RetirementStatus', 'Dependency']. get_enum_names() -> ['RetirementReason']. @@ -1677,96 +1031,60 @@ get_enum_names() -> ['RetirementReason']. fetch_msg_def(MsgName) -> case find_msg_def(MsgName) of - Fs when is_list(Fs) -> Fs; - error -> erlang:error({no_such_msg, MsgName}) + Fs when is_list(Fs) -> Fs; + error -> erlang:error({no_such_msg, MsgName}) end. fetch_enum_def(EnumName) -> case find_enum_def(EnumName) of - Es when is_list(Es) -> Es; - error -> erlang:error({no_such_enum, EnumName}) + Es when is_list(Es) -> Es; + error -> erlang:error({no_such_enum, EnumName}) end. find_msg_def('Package') -> - [#{name => releases, fnum => 1, rnum => 2, - type => {msg, 'Release'}, occurrence => repeated, - opts => []}, - #{name => name, fnum => 2, rnum => 3, type => string, - occurrence => required, opts => []}, - #{name => repository, fnum => 3, rnum => 4, - type => string, occurrence => required, opts => []}]; + [#{name => releases, fnum => 1, rnum => 2, type => {msg, 'Release'}, occurrence => repeated, opts => []}, + #{name => name, fnum => 2, rnum => 3, type => string, occurrence => required, opts => []}, + #{name => repository, fnum => 3, rnum => 4, type => string, occurrence => required, opts => []}]; find_msg_def('Release') -> - [#{name => version, fnum => 1, rnum => 2, - type => string, occurrence => required, opts => []}, - #{name => inner_checksum, fnum => 2, rnum => 3, - type => bytes, occurrence => required, opts => []}, - #{name => dependencies, fnum => 3, rnum => 4, - type => {msg, 'Dependency'}, occurrence => repeated, - opts => []}, - #{name => retired, fnum => 4, rnum => 5, - type => {msg, 'RetirementStatus'}, - occurrence => optional, opts => []}, - #{name => outer_checksum, fnum => 5, rnum => 6, - type => bytes, occurrence => optional, opts => []}]; -find_msg_def('RetirementStatus') -> - [#{name => reason, fnum => 1, rnum => 2, - type => {enum, 'RetirementReason'}, - occurrence => required, opts => []}, - #{name => message, fnum => 2, rnum => 3, type => string, - occurrence => optional, opts => []}]; + [#{name => version, fnum => 1, rnum => 2, type => string, occurrence => required, opts => []}, + #{name => inner_checksum, fnum => 2, rnum => 3, type => bytes, occurrence => required, opts => []}, + #{name => dependencies, fnum => 3, rnum => 4, type => {msg, 'Dependency'}, occurrence => repeated, opts => []}, + #{name => retired, fnum => 4, rnum => 5, type => {msg, 'RetirementStatus'}, occurrence => optional, opts => []}, + #{name => outer_checksum, fnum => 5, rnum => 6, type => bytes, occurrence => optional, opts => []}]; +find_msg_def('RetirementStatus') -> [#{name => reason, fnum => 1, rnum => 2, type => {enum, 'RetirementReason'}, occurrence => required, opts => []}, #{name => message, fnum => 2, rnum => 3, type => string, occurrence => optional, opts => []}]; find_msg_def('Dependency') -> - [#{name => package, fnum => 1, rnum => 2, - type => string, occurrence => required, opts => []}, - #{name => requirement, fnum => 2, rnum => 3, - type => string, occurrence => required, opts => []}, - #{name => optional, fnum => 3, rnum => 4, type => bool, - occurrence => optional, opts => []}, - #{name => app, fnum => 4, rnum => 5, type => string, - occurrence => optional, opts => []}, - #{name => repository, fnum => 5, rnum => 6, - type => string, occurrence => optional, opts => []}]; + [#{name => package, fnum => 1, rnum => 2, type => string, occurrence => required, opts => []}, + #{name => requirement, fnum => 2, rnum => 3, type => string, occurrence => required, opts => []}, + #{name => optional, fnum => 3, rnum => 4, type => bool, occurrence => optional, opts => []}, + #{name => app, fnum => 4, rnum => 5, type => string, occurrence => optional, opts => []}, + #{name => repository, fnum => 5, rnum => 6, type => string, occurrence => optional, opts => []}]; find_msg_def(_) -> error. -find_enum_def('RetirementReason') -> - [{'RETIRED_OTHER', 0}, {'RETIRED_INVALID', 1}, - {'RETIRED_SECURITY', 2}, {'RETIRED_DEPRECATED', 3}, - {'RETIRED_RENAMED', 4}]; +find_enum_def('RetirementReason') -> [{'RETIRED_OTHER', 0}, {'RETIRED_INVALID', 1}, {'RETIRED_SECURITY', 2}, {'RETIRED_DEPRECATED', 3}, {'RETIRED_RENAMED', 4}]; find_enum_def(_) -> error. -enum_symbol_by_value('RetirementReason', Value) -> - enum_symbol_by_value_RetirementReason(Value). +enum_symbol_by_value('RetirementReason', Value) -> enum_symbol_by_value_RetirementReason(Value). -enum_value_by_symbol('RetirementReason', Sym) -> - enum_value_by_symbol_RetirementReason(Sym). +enum_value_by_symbol('RetirementReason', Sym) -> enum_value_by_symbol_RetirementReason(Sym). -enum_symbol_by_value_RetirementReason(0) -> - 'RETIRED_OTHER'; -enum_symbol_by_value_RetirementReason(1) -> - 'RETIRED_INVALID'; -enum_symbol_by_value_RetirementReason(2) -> - 'RETIRED_SECURITY'; -enum_symbol_by_value_RetirementReason(3) -> - 'RETIRED_DEPRECATED'; -enum_symbol_by_value_RetirementReason(4) -> - 'RETIRED_RENAMED'. +enum_symbol_by_value_RetirementReason(0) -> 'RETIRED_OTHER'; +enum_symbol_by_value_RetirementReason(1) -> 'RETIRED_INVALID'; +enum_symbol_by_value_RetirementReason(2) -> 'RETIRED_SECURITY'; +enum_symbol_by_value_RetirementReason(3) -> 'RETIRED_DEPRECATED'; +enum_symbol_by_value_RetirementReason(4) -> 'RETIRED_RENAMED'. -enum_value_by_symbol_RetirementReason('RETIRED_OTHER') -> - 0; -enum_value_by_symbol_RetirementReason('RETIRED_INVALID') -> - 1; -enum_value_by_symbol_RetirementReason('RETIRED_SECURITY') -> - 2; -enum_value_by_symbol_RetirementReason('RETIRED_DEPRECATED') -> - 3; -enum_value_by_symbol_RetirementReason('RETIRED_RENAMED') -> - 4. +enum_value_by_symbol_RetirementReason('RETIRED_OTHER') -> 0; +enum_value_by_symbol_RetirementReason('RETIRED_INVALID') -> 1; +enum_value_by_symbol_RetirementReason('RETIRED_SECURITY') -> 2; +enum_value_by_symbol_RetirementReason('RETIRED_DEPRECATED') -> 3; +enum_value_by_symbol_RetirementReason('RETIRED_RENAMED') -> 4. get_service_names() -> []. @@ -1783,38 +1101,33 @@ find_rpc_def(_, _) -> error. -spec fetch_rpc_def(_, _) -> no_return(). -fetch_rpc_def(ServiceName, RpcName) -> - erlang:error({no_such_rpc, ServiceName, RpcName}). +fetch_rpc_def(ServiceName, RpcName) -> erlang:error({no_such_rpc, ServiceName, RpcName}). %% Convert a a fully qualified (ie with package name) service name %% as a binary to a service name as an atom. -spec fqbin_to_service_name(_) -> no_return(). -fqbin_to_service_name(X) -> - error({gpb_error, {badservice, X}}). +fqbin_to_service_name(X) -> error({gpb_error, {badservice, X}}). %% Convert a service name as an atom to a fully qualified %% (ie with package name) name as a binary. -spec service_name_to_fqbin(_) -> no_return(). -service_name_to_fqbin(X) -> - error({gpb_error, {badservice, X}}). +service_name_to_fqbin(X) -> error({gpb_error, {badservice, X}}). %% Convert a a fully qualified (ie with package name) service name %% and an rpc name, both as binaries to a service name and an rpc %% name, as atoms. -spec fqbins_to_service_and_rpc_name(_, _) -> no_return(). -fqbins_to_service_and_rpc_name(S, R) -> - error({gpb_error, {badservice_or_rpc, {S, R}}}). +fqbins_to_service_and_rpc_name(S, R) -> error({gpb_error, {badservice_or_rpc, {S, R}}}). %% Convert a service name and an rpc name, both as atoms, %% to a fully qualified (ie with package name) service name and %% an rpc name as binaries. -spec service_and_rpc_name_to_fqbins(_, _) -> no_return(). -service_and_rpc_name_to_fqbins(S, R) -> - error({gpb_error, {badservice_or_rpc, {S, R}}}). +service_and_rpc_name_to_fqbins(S, R) -> error({gpb_error, {badservice_or_rpc, {S, R}}}). fqbin_to_msg_name(<<"Package">>) -> 'Package'; @@ -1832,13 +1145,11 @@ msg_name_to_fqbin(E) -> error({gpb_error, {badmsg, E}}). fqbin_to_enum_name(<<"RetirementReason">>) -> 'RetirementReason'; -fqbin_to_enum_name(E) -> - error({gpb_error, {badenum, E}}). +fqbin_to_enum_name(E) -> error({gpb_error, {badenum, E}}). enum_name_to_fqbin('RetirementReason') -> <<"RetirementReason">>; -enum_name_to_fqbin(E) -> - error({gpb_error, {badenum, E}}). +enum_name_to_fqbin(E) -> error({gpb_error, {badenum, E}}). get_package_name() -> undefined. @@ -1868,65 +1179,51 @@ get_all_source_basenames() -> ["r3_hex_pb_package.proto"]. get_all_proto_names() -> ["r3_hex_pb_package"]. -get_msg_containment("r3_hex_pb_package") -> - ['Dependency', 'Package', 'Release', - 'RetirementStatus']; -get_msg_containment(P) -> - error({gpb_error, {badproto, P}}). +get_msg_containment("r3_hex_pb_package") -> ['Dependency', 'Package', 'Release', 'RetirementStatus']; +get_msg_containment(P) -> error({gpb_error, {badproto, P}}). get_pkg_containment("r3_hex_pb_package") -> undefined; -get_pkg_containment(P) -> - error({gpb_error, {badproto, P}}). +get_pkg_containment(P) -> error({gpb_error, {badproto, P}}). get_service_containment("r3_hex_pb_package") -> []; -get_service_containment(P) -> - error({gpb_error, {badproto, P}}). +get_service_containment(P) -> error({gpb_error, {badproto, P}}). get_rpc_containment("r3_hex_pb_package") -> []; -get_rpc_containment(P) -> - error({gpb_error, {badproto, P}}). +get_rpc_containment(P) -> error({gpb_error, {badproto, P}}). -get_enum_containment("r3_hex_pb_package") -> - ['RetirementReason']; -get_enum_containment(P) -> - error({gpb_error, {badproto, P}}). +get_enum_containment("r3_hex_pb_package") -> ['RetirementReason']; +get_enum_containment(P) -> error({gpb_error, {badproto, P}}). -get_proto_by_msg_name_as_fqbin(<<"RetirementStatus">>) -> - "r3_hex_pb_package"; -get_proto_by_msg_name_as_fqbin(<<"Release">>) -> - "r3_hex_pb_package"; -get_proto_by_msg_name_as_fqbin(<<"Package">>) -> - "r3_hex_pb_package"; -get_proto_by_msg_name_as_fqbin(<<"Dependency">>) -> - "r3_hex_pb_package"; -get_proto_by_msg_name_as_fqbin(E) -> - error({gpb_error, {badmsg, E}}). +get_proto_by_msg_name_as_fqbin(<<"RetirementStatus">>) -> "r3_hex_pb_package"; +get_proto_by_msg_name_as_fqbin(<<"Release">>) -> "r3_hex_pb_package"; +get_proto_by_msg_name_as_fqbin(<<"Package">>) -> "r3_hex_pb_package"; +get_proto_by_msg_name_as_fqbin(<<"Dependency">>) -> "r3_hex_pb_package"; +get_proto_by_msg_name_as_fqbin(E) -> error({gpb_error, {badmsg, E}}). -spec get_proto_by_service_name_as_fqbin(_) -> no_return(). -get_proto_by_service_name_as_fqbin(E) -> - error({gpb_error, {badservice, E}}). +get_proto_by_service_name_as_fqbin(E) -> error({gpb_error, {badservice, E}}). -get_proto_by_enum_name_as_fqbin(<<"RetirementReason">>) -> - "r3_hex_pb_package"; -get_proto_by_enum_name_as_fqbin(E) -> - error({gpb_error, {badenum, E}}). +get_proto_by_enum_name_as_fqbin(<<"RetirementReason">>) -> "r3_hex_pb_package"; +get_proto_by_enum_name_as_fqbin(E) -> error({gpb_error, {badenum, E}}). -spec get_protos_by_pkg_name_as_fqbin(_) -> no_return(). -get_protos_by_pkg_name_as_fqbin(E) -> - error({gpb_error, {badpkg, E}}). +get_protos_by_pkg_name_as_fqbin(E) -> error({gpb_error, {badpkg, E}}). gpb_version_as_string() -> - "4.10.0". + "4.21.1". gpb_version_as_list() -> - [4,10,0]. + [4,21,1]. + +gpb_version_source() -> + "file". diff --git a/apps/rebar/src/vendored/r3_hex_pb_signed.erl b/apps/rebar/src/vendored/r3_hex_pb_signed.erl index 87645c185..d3891a41f 100644 --- a/apps/rebar/src/vendored/r3_hex_pb_signed.erl +++ b/apps/rebar/src/vendored/r3_hex_pb_signed.erl @@ -1,9 +1,11 @@ -%% Vendored from hex_core v0.7.1, do not edit manually +%% Vendored from hex_core v0.10.1, do not edit manually %% -*- coding: utf-8 -*- +%% % this file is @generated %% @private %% Automatically generated, do not edit -%% Generated by gpb_compile version 4.10.0 +%% Generated by gpb_compile version 4.21.1 +%% Version source: file -module(r3_hex_pb_signed). -export([encode_msg/2, encode_msg/3]). @@ -45,6 +47,7 @@ -export([get_proto_by_enum_name_as_fqbin/1]). -export([get_protos_by_pkg_name_as_fqbin/1]). -export([gpb_version_as_string/0, gpb_version_as_list/0]). +-export([gpb_version_source/0]). %% enumerated types @@ -53,72 +56,60 @@ %% message types -type 'Signed'() :: - #{payload := iodata(), % = 1 - signature => iodata() % = 2 + #{payload => iodata(), % = 1, required + signature => iodata() % = 2, optional }. -export_type(['Signed'/0]). +-type '$msg_name'() :: 'Signed'. +-type '$msg'() :: 'Signed'(). +-export_type(['$msg_name'/0, '$msg'/0]). --spec encode_msg('Signed'(), atom()) -> binary(). -encode_msg(Msg, MsgName) when is_atom(MsgName) -> - encode_msg(Msg, MsgName, []). +-if(?OTP_RELEASE >= 24). +-dialyzer({no_underspecs, encode_msg/2}). +-endif. +-spec encode_msg('$msg'(), '$msg_name'()) -> binary(). +encode_msg(Msg, MsgName) when is_atom(MsgName) -> encode_msg(Msg, MsgName, []). --spec encode_msg('Signed'(), atom(), list()) -> binary(). +-if(?OTP_RELEASE >= 24). +-dialyzer({no_underspecs, encode_msg/3}). +-endif. +-spec encode_msg('$msg'(), '$msg_name'(), list()) -> binary(). encode_msg(Msg, MsgName, Opts) -> verify_msg(Msg, MsgName, Opts), TrUserData = proplists:get_value(user_data, Opts), - case MsgName of - 'Signed' -> - encode_msg_Signed(id(Msg, TrUserData), TrUserData) - end. + case MsgName of 'Signed' -> encode_msg_Signed(id(Msg, TrUserData), TrUserData) end. -encode_msg_Signed(Msg, TrUserData) -> - encode_msg_Signed(Msg, <<>>, TrUserData). +encode_msg_Signed(Msg, TrUserData) -> encode_msg_Signed(Msg, <<>>, TrUserData). -encode_msg_Signed(#{payload := F1} = M, Bin, - TrUserData) -> - B1 = begin - TrF1 = id(F1, TrUserData), - e_type_bytes(TrF1, <>, TrUserData) - end, +encode_msg_Signed(#{payload := F1} = M, Bin, TrUserData) -> + B1 = begin TrF1 = id(F1, TrUserData), e_type_bytes(TrF1, <>, TrUserData) end, case M of - #{signature := F2} -> - begin - TrF2 = id(F2, TrUserData), - e_type_bytes(TrF2, <>, TrUserData) - end; - _ -> B1 + #{signature := F2} -> begin TrF2 = id(F2, TrUserData), e_type_bytes(TrF2, <>, TrUserData) end; + _ -> B1 end. -compile({nowarn_unused_function,e_type_sint/3}). -e_type_sint(Value, Bin, _TrUserData) when Value >= 0 -> - e_varint(Value * 2, Bin); -e_type_sint(Value, Bin, _TrUserData) -> - e_varint(Value * -2 - 1, Bin). +e_type_sint(Value, Bin, _TrUserData) when Value >= 0 -> e_varint(Value * 2, Bin); +e_type_sint(Value, Bin, _TrUserData) -> e_varint(Value * -2 - 1, Bin). -compile({nowarn_unused_function,e_type_int32/3}). -e_type_int32(Value, Bin, _TrUserData) - when 0 =< Value, Value =< 127 -> - <>; +e_type_int32(Value, Bin, _TrUserData) when 0 =< Value, Value =< 127 -> <>; e_type_int32(Value, Bin, _TrUserData) -> <> = <>, e_varint(N, Bin). -compile({nowarn_unused_function,e_type_int64/3}). -e_type_int64(Value, Bin, _TrUserData) - when 0 =< Value, Value =< 127 -> - <>; +e_type_int64(Value, Bin, _TrUserData) when 0 =< Value, Value =< 127 -> <>; e_type_int64(Value, Bin, _TrUserData) -> <> = <>, e_varint(N, Bin). -compile({nowarn_unused_function,e_type_bool/3}). -e_type_bool(true, Bin, _TrUserData) -> - <>; -e_type_bool(false, Bin, _TrUserData) -> - <>; +e_type_bool(true, Bin, _TrUserData) -> <>; +e_type_bool(false, Bin, _TrUserData) -> <>; e_type_bool(1, Bin, _TrUserData) -> <>; e_type_bool(0, Bin, _TrUserData) -> <>. @@ -129,51 +120,61 @@ e_type_string(S, Bin, _TrUserData) -> <>. -compile({nowarn_unused_function,e_type_bytes/3}). -e_type_bytes(Bytes, Bin, _TrUserData) - when is_binary(Bytes) -> +e_type_bytes(Bytes, Bin, _TrUserData) when is_binary(Bytes) -> Bin2 = e_varint(byte_size(Bytes), Bin), <>; -e_type_bytes(Bytes, Bin, _TrUserData) - when is_list(Bytes) -> +e_type_bytes(Bytes, Bin, _TrUserData) when is_list(Bytes) -> BytesBin = iolist_to_binary(Bytes), Bin2 = e_varint(byte_size(BytesBin), Bin), <>. -compile({nowarn_unused_function,e_type_fixed32/3}). -e_type_fixed32(Value, Bin, _TrUserData) -> - <>. +e_type_fixed32(Value, Bin, _TrUserData) -> <>. -compile({nowarn_unused_function,e_type_sfixed32/3}). -e_type_sfixed32(Value, Bin, _TrUserData) -> - <>. +e_type_sfixed32(Value, Bin, _TrUserData) -> <>. -compile({nowarn_unused_function,e_type_fixed64/3}). -e_type_fixed64(Value, Bin, _TrUserData) -> - <>. +e_type_fixed64(Value, Bin, _TrUserData) -> <>. -compile({nowarn_unused_function,e_type_sfixed64/3}). -e_type_sfixed64(Value, Bin, _TrUserData) -> - <>. +e_type_sfixed64(Value, Bin, _TrUserData) -> <>. -compile({nowarn_unused_function,e_type_float/3}). -e_type_float(V, Bin, _) when is_number(V) -> - <>; -e_type_float(infinity, Bin, _) -> - <>; -e_type_float('-infinity', Bin, _) -> - <>; -e_type_float(nan, Bin, _) -> - <>. +e_type_float(V, Bin, _) when is_number(V) -> <>; +e_type_float(infinity, Bin, _) -> <>; +e_type_float('-infinity', Bin, _) -> <>; +e_type_float(nan, Bin, _) -> <>. -compile({nowarn_unused_function,e_type_double/3}). -e_type_double(V, Bin, _) when is_number(V) -> - <>; -e_type_double(infinity, Bin, _) -> - <>; -e_type_double('-infinity', Bin, _) -> - <>; -e_type_double(nan, Bin, _) -> - <>. +e_type_double(V, Bin, _) when is_number(V) -> <>; +e_type_double(infinity, Bin, _) -> <>; +e_type_double('-infinity', Bin, _) -> <>; +e_type_double(nan, Bin, _) -> <>. + +-compile({nowarn_unused_function,e_unknown_elems/2}). +e_unknown_elems([Elem | Rest], Bin) -> + BinR = case Elem of + {varint, FNum, N} -> + BinF = e_varint(FNum bsl 3, Bin), + e_varint(N, BinF); + {length_delimited, FNum, Data} -> + BinF = e_varint(FNum bsl 3 bor 2, Bin), + BinL = e_varint(byte_size(Data), BinF), + <>; + {group, FNum, GroupFields} -> + Bin1 = e_varint(FNum bsl 3 bor 3, Bin), + Bin2 = e_unknown_elems(GroupFields, Bin1), + e_varint(FNum bsl 3 bor 4, Bin2); + {fixed32, FNum, V} -> + BinF = e_varint(FNum bsl 3 bor 5, Bin), + <>; + {fixed64, FNum, V} -> + BinF = e_varint(FNum bsl 3 bor 1, Bin), + <> + end, + e_unknown_elems(Rest, BinR); +e_unknown_elems([], Bin) -> Bin. -compile({nowarn_unused_function,e_varint/3}). e_varint(N, Bin, _TrUserData) -> e_varint(N, Bin). @@ -185,8 +186,7 @@ e_varint(N, Bin) -> e_varint(N bsr 7, Bin2). -decode_msg(Bin, MsgName) when is_binary(Bin) -> - decode_msg(Bin, MsgName, []). +decode_msg(Bin, MsgName) when is_binary(Bin) -> decode_msg(Bin, MsgName, []). decode_msg(Bin, MsgName, Opts) when is_binary(Bin) -> TrUserData = proplists:get_value(user_data, Opts), @@ -195,146 +195,86 @@ decode_msg(Bin, MsgName, Opts) when is_binary(Bin) -> -ifdef('OTP_RELEASE'). decode_msg_1_catch(Bin, MsgName, TrUserData) -> try decode_msg_2_doit(MsgName, Bin, TrUserData) - catch Class:Reason:StackTrace -> error({gpb_error,{decoding_failure, {Bin, MsgName, {Class, Reason, StackTrace}}}}) + catch + error:{gpb_error,_}=Reason:StackTrace -> + erlang:raise(error, Reason, StackTrace); + Class:Reason:StackTrace -> error({gpb_error,{decoding_failure, {Bin, MsgName, {Class, Reason, StackTrace}}}}) end. -else. decode_msg_1_catch(Bin, MsgName, TrUserData) -> try decode_msg_2_doit(MsgName, Bin, TrUserData) - catch Class:Reason -> - StackTrace = erlang:get_stacktrace(), - error({gpb_error,{decoding_failure, {Bin, MsgName, {Class, Reason, StackTrace}}}}) + catch + error:{gpb_error,_}=Reason -> + erlang:raise(error, Reason, + erlang:get_stacktrace()); + Class:Reason -> + StackTrace = erlang:get_stacktrace(), + error({gpb_error,{decoding_failure, {Bin, MsgName, {Class, Reason, StackTrace}}}}) end. -endif. -decode_msg_2_doit('Signed', Bin, TrUserData) -> - id(decode_msg_Signed(Bin, TrUserData), TrUserData). +decode_msg_2_doit('Signed', Bin, TrUserData) -> id(decode_msg_Signed(Bin, TrUserData), TrUserData). -decode_msg_Signed(Bin, TrUserData) -> - dfp_read_field_def_Signed(Bin, 0, 0, - id('$undef', TrUserData), - id('$undef', TrUserData), TrUserData). +decode_msg_Signed(Bin, TrUserData) -> dfp_read_field_def_Signed(Bin, 0, 0, 0, id('$undef', TrUserData), id('$undef', TrUserData), TrUserData). -dfp_read_field_def_Signed(<<10, Rest/binary>>, Z1, Z2, - F@_1, F@_2, TrUserData) -> - d_field_Signed_payload(Rest, Z1, Z2, F@_1, F@_2, - TrUserData); -dfp_read_field_def_Signed(<<18, Rest/binary>>, Z1, Z2, - F@_1, F@_2, TrUserData) -> - d_field_Signed_signature(Rest, Z1, Z2, F@_1, F@_2, - TrUserData); -dfp_read_field_def_Signed(<<>>, 0, 0, F@_1, F@_2, _) -> +dfp_read_field_def_Signed(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_Signed_payload(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +dfp_read_field_def_Signed(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_Signed_signature(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +dfp_read_field_def_Signed(<<>>, 0, 0, _, F@_1, F@_2, _) -> S1 = #{payload => F@_1}, if F@_2 == '$undef' -> S1; true -> S1#{signature => F@_2} end; -dfp_read_field_def_Signed(Other, Z1, Z2, F@_1, F@_2, - TrUserData) -> - dg_read_field_def_Signed(Other, Z1, Z2, F@_1, F@_2, - TrUserData). - -dg_read_field_def_Signed(<<1:1, X:7, Rest/binary>>, N, - Acc, F@_1, F@_2, TrUserData) - when N < 32 - 7 -> - dg_read_field_def_Signed(Rest, N + 7, X bsl N + Acc, - F@_1, F@_2, TrUserData); -dg_read_field_def_Signed(<<0:1, X:7, Rest/binary>>, N, - Acc, F@_1, F@_2, TrUserData) -> +dfp_read_field_def_Signed(Other, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dg_read_field_def_Signed(Other, Z1, Z2, F, F@_1, F@_2, TrUserData). + +dg_read_field_def_Signed(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 32 - 7 -> dg_read_field_def_Signed(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +dg_read_field_def_Signed(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, TrUserData) -> Key = X bsl N + Acc, case Key of - 10 -> - d_field_Signed_payload(Rest, 0, 0, F@_1, F@_2, - TrUserData); - 18 -> - d_field_Signed_signature(Rest, 0, 0, F@_1, F@_2, - TrUserData); - _ -> - case Key band 7 of - 0 -> - skip_varint_Signed(Rest, 0, 0, F@_1, F@_2, TrUserData); - 1 -> skip_64_Signed(Rest, 0, 0, F@_1, F@_2, TrUserData); - 2 -> - skip_length_delimited_Signed(Rest, 0, 0, F@_1, F@_2, - TrUserData); - 3 -> - skip_group_Signed(Rest, Key bsr 3, 0, F@_1, F@_2, - TrUserData); - 5 -> skip_32_Signed(Rest, 0, 0, F@_1, F@_2, TrUserData) - end + 10 -> d_field_Signed_payload(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + 18 -> d_field_Signed_signature(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + _ -> + case Key band 7 of + 0 -> skip_varint_Signed(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 1 -> skip_64_Signed(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 2 -> skip_length_delimited_Signed(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 3 -> skip_group_Signed(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 5 -> skip_32_Signed(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData) + end end; -dg_read_field_def_Signed(<<>>, 0, 0, F@_1, F@_2, _) -> +dg_read_field_def_Signed(<<>>, 0, 0, _, F@_1, F@_2, _) -> S1 = #{payload => F@_1}, if F@_2 == '$undef' -> S1; true -> S1#{signature => F@_2} end. -d_field_Signed_payload(<<1:1, X:7, Rest/binary>>, N, - Acc, F@_1, F@_2, TrUserData) - when N < 57 -> - d_field_Signed_payload(Rest, N + 7, X bsl N + Acc, F@_1, - F@_2, TrUserData); -d_field_Signed_payload(<<0:1, X:7, Rest/binary>>, N, - Acc, _, F@_2, TrUserData) -> - {NewFValue, RestF} = begin - Len = X bsl N + Acc, - <> = Rest, - {id(binary:copy(Bytes), TrUserData), Rest2} - end, - dfp_read_field_def_Signed(RestF, 0, 0, NewFValue, F@_2, - TrUserData). - -d_field_Signed_signature(<<1:1, X:7, Rest/binary>>, N, - Acc, F@_1, F@_2, TrUserData) - when N < 57 -> - d_field_Signed_signature(Rest, N + 7, X bsl N + Acc, - F@_1, F@_2, TrUserData); -d_field_Signed_signature(<<0:1, X:7, Rest/binary>>, N, - Acc, F@_1, _, TrUserData) -> - {NewFValue, RestF} = begin - Len = X bsl N + Acc, - <> = Rest, - {id(binary:copy(Bytes), TrUserData), Rest2} - end, - dfp_read_field_def_Signed(RestF, 0, 0, F@_1, NewFValue, - TrUserData). - -skip_varint_Signed(<<1:1, _:7, Rest/binary>>, Z1, Z2, - F@_1, F@_2, TrUserData) -> - skip_varint_Signed(Rest, Z1, Z2, F@_1, F@_2, - TrUserData); -skip_varint_Signed(<<0:1, _:7, Rest/binary>>, Z1, Z2, - F@_1, F@_2, TrUserData) -> - dfp_read_field_def_Signed(Rest, Z1, Z2, F@_1, F@_2, - TrUserData). - -skip_length_delimited_Signed(<<1:1, X:7, Rest/binary>>, - N, Acc, F@_1, F@_2, TrUserData) - when N < 57 -> - skip_length_delimited_Signed(Rest, N + 7, X bsl N + Acc, - F@_1, F@_2, TrUserData); -skip_length_delimited_Signed(<<0:1, X:7, Rest/binary>>, - N, Acc, F@_1, F@_2, TrUserData) -> +d_field_Signed_payload(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_Signed_payload(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +d_field_Signed_payload(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_Signed(RestF, 0, 0, F, NewFValue, F@_2, TrUserData). + +d_field_Signed_signature(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_Signed_signature(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +d_field_Signed_signature(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_Signed(RestF, 0, 0, F, F@_1, NewFValue, TrUserData). + +skip_varint_Signed(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> skip_varint_Signed(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +skip_varint_Signed(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_Signed(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +skip_length_delimited_Signed(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> skip_length_delimited_Signed(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +skip_length_delimited_Signed(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) -> Length = X bsl N + Acc, <<_:Length/binary, Rest2/binary>> = Rest, - dfp_read_field_def_Signed(Rest2, 0, 0, F@_1, F@_2, - TrUserData). + dfp_read_field_def_Signed(Rest2, 0, 0, F, F@_1, F@_2, TrUserData). -skip_group_Signed(Bin, FNum, Z2, F@_1, F@_2, - TrUserData) -> +skip_group_Signed(Bin, _, Z2, FNum, F@_1, F@_2, TrUserData) -> {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_Signed(Rest, 0, Z2, F@_1, F@_2, - TrUserData). + dfp_read_field_def_Signed(Rest, 0, Z2, FNum, F@_1, F@_2, TrUserData). -skip_32_Signed(<<_:32, Rest/binary>>, Z1, Z2, F@_1, - F@_2, TrUserData) -> - dfp_read_field_def_Signed(Rest, Z1, Z2, F@_1, F@_2, - TrUserData). +skip_32_Signed(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_Signed(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). -skip_64_Signed(<<_:64, Rest/binary>>, Z1, Z2, F@_1, - F@_2, TrUserData) -> - dfp_read_field_def_Signed(Rest, Z1, Z2, F@_1, F@_2, - TrUserData). +skip_64_Signed(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_Signed(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). read_group(Bin, FieldNum) -> {NumBytes, EndTagLen} = read_gr_b(Bin, 0, 0, 0, 0, FieldNum), @@ -394,36 +334,29 @@ read_gr_ld(<<0:1, X:7, Tl/binary>>, N, Acc, NumBytes, FieldNum) -> <<_:Len/binary, Tl2/binary>> = Tl, read_gr_b(Tl2, 0, 0, NumBytes1 + Len, 0, FieldNum). -merge_msgs(Prev, New, MsgName) when is_atom(MsgName) -> - merge_msgs(Prev, New, MsgName, []). +merge_msgs(Prev, New, MsgName) when is_atom(MsgName) -> merge_msgs(Prev, New, MsgName, []). merge_msgs(Prev, New, MsgName, Opts) -> TrUserData = proplists:get_value(user_data, Opts), - case MsgName of - 'Signed' -> merge_msg_Signed(Prev, New, TrUserData) - end. + case MsgName of 'Signed' -> merge_msg_Signed(Prev, New, TrUserData) end. -compile({nowarn_unused_function,merge_msg_Signed/3}). -merge_msg_Signed(#{} = PMsg, - #{payload := NFpayload} = NMsg, _) -> +merge_msg_Signed(#{} = PMsg, #{payload := NFpayload} = NMsg, _) -> S1 = #{payload => NFpayload}, case {PMsg, NMsg} of - {_, #{signature := NFsignature}} -> - S1#{signature => NFsignature}; - {#{signature := PFsignature}, _} -> - S1#{signature => PFsignature}; - _ -> S1 + {_, #{signature := NFsignature}} -> S1#{signature => NFsignature}; + {#{signature := PFsignature}, _} -> S1#{signature => PFsignature}; + _ -> S1 end. -verify_msg(Msg, MsgName) when is_atom(MsgName) -> - verify_msg(Msg, MsgName, []). +verify_msg(Msg, MsgName) when is_atom(MsgName) -> verify_msg(Msg, MsgName, []). verify_msg(Msg, MsgName, Opts) -> TrUserData = proplists:get_value(user_data, Opts), case MsgName of - 'Signed' -> v_msg_Signed(Msg, [MsgName], TrUserData); - _ -> mk_type_error(not_a_known_message, Msg, []) + 'Signed' -> v_msg_Signed(Msg, [MsgName], TrUserData); + _ -> mk_type_error(not_a_known_message, Msg, []) end. @@ -432,48 +365,35 @@ verify_msg(Msg, MsgName, Opts) -> v_msg_Signed(#{payload := F1} = M, Path, TrUserData) -> v_type_bytes(F1, [payload | Path], TrUserData), case M of - #{signature := F2} -> - v_type_bytes(F2, [signature | Path], TrUserData); - _ -> ok + #{signature := F2} -> v_type_bytes(F2, [signature | Path], TrUserData); + _ -> ok end, lists:foreach(fun (payload) -> ok; - (signature) -> ok; - (OtherKey) -> - mk_type_error({extraneous_key, OtherKey}, M, Path) - end, - maps:keys(M)), + (signature) -> ok; + (OtherKey) -> mk_type_error({extraneous_key, OtherKey}, M, Path) + end, + maps:keys(M)), ok; -v_msg_Signed(M, Path, _TrUserData) when is_map(M) -> - mk_type_error({missing_fields, - [payload] -- maps:keys(M), 'Signed'}, - M, Path); -v_msg_Signed(X, Path, _TrUserData) -> - mk_type_error({expected_msg, 'Signed'}, X, Path). +v_msg_Signed(M, Path, _TrUserData) when is_map(M) -> mk_type_error({missing_fields, [payload] -- maps:keys(M), 'Signed'}, M, Path); +v_msg_Signed(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'Signed'}, X, Path). -compile({nowarn_unused_function,v_type_bytes/3}). -dialyzer({nowarn_function,v_type_bytes/3}). -v_type_bytes(B, _Path, _TrUserData) when is_binary(B) -> - ok; -v_type_bytes(B, _Path, _TrUserData) when is_list(B) -> - ok; -v_type_bytes(X, Path, _TrUserData) -> - mk_type_error(bad_binary_value, X, Path). +v_type_bytes(B, _Path, _TrUserData) when is_binary(B) -> ok; +v_type_bytes(B, _Path, _TrUserData) when is_list(B) -> ok; +v_type_bytes(X, Path, _TrUserData) -> mk_type_error(bad_binary_value, X, Path). -compile({nowarn_unused_function,mk_type_error/3}). -spec mk_type_error(_, _, list()) -> no_return(). mk_type_error(Error, ValueSeen, Path) -> Path2 = prettify_path(Path), - erlang:error({gpb_type_error, - {Error, [{value, ValueSeen}, {path, Path2}]}}). + erlang:error({gpb_type_error, {Error, [{value, ValueSeen}, {path, Path2}]}}). -compile({nowarn_unused_function,prettify_path/1}). -dialyzer({nowarn_function,prettify_path/1}). prettify_path([]) -> top_level; -prettify_path(PathR) -> - list_to_atom(lists:append(lists:join(".", - lists:map(fun atom_to_list/1, - lists:reverse(PathR))))). +prettify_path(PathR) -> lists:append(lists:join(".", lists:map(fun atom_to_list/1, lists:reverse(PathR)))). -compile({nowarn_unused_function,id/2}). @@ -500,12 +420,7 @@ cons(Elem, Acc, _TrUserData) -> [Elem | Acc]. 'erlang_++'(A, B, _TrUserData) -> A ++ B. -get_msg_defs() -> - [{{msg, 'Signed'}, - [#{name => payload, fnum => 1, rnum => 2, type => bytes, - occurrence => required, opts => []}, - #{name => signature, fnum => 2, rnum => 3, - type => bytes, occurrence => optional, opts => []}]}]. +get_msg_defs() -> [{{msg, 'Signed'}, [#{name => payload, fnum => 1, rnum => 2, type => bytes, occurrence => required, opts => []}, #{name => signature, fnum => 2, rnum => 3, type => bytes, occurrence => optional, opts => []}]}]. get_msg_names() -> ['Signed']. @@ -522,21 +437,16 @@ get_enum_names() -> []. fetch_msg_def(MsgName) -> case find_msg_def(MsgName) of - Fs when is_list(Fs) -> Fs; - error -> erlang:error({no_such_msg, MsgName}) + Fs when is_list(Fs) -> Fs; + error -> erlang:error({no_such_msg, MsgName}) end. -spec fetch_enum_def(_) -> no_return(). -fetch_enum_def(EnumName) -> - erlang:error({no_such_enum, EnumName}). +fetch_enum_def(EnumName) -> erlang:error({no_such_enum, EnumName}). -find_msg_def('Signed') -> - [#{name => payload, fnum => 1, rnum => 2, type => bytes, - occurrence => required, opts => []}, - #{name => signature, fnum => 2, rnum => 3, - type => bytes, occurrence => optional, opts => []}]; +find_msg_def('Signed') -> [#{name => payload, fnum => 1, rnum => 2, type => bytes, occurrence => required, opts => []}, #{name => signature, fnum => 2, rnum => 3, type => bytes, occurrence => optional, opts => []}]; find_msg_def(_) -> error. @@ -544,13 +454,11 @@ find_enum_def(_) -> error. -spec enum_symbol_by_value(_, _) -> no_return(). -enum_symbol_by_value(E, V) -> - erlang:error({no_enum_defs, E, V}). +enum_symbol_by_value(E, V) -> erlang:error({no_enum_defs, E, V}). -spec enum_value_by_symbol(_, _) -> no_return(). -enum_value_by_symbol(E, V) -> - erlang:error({no_enum_defs, E, V}). +enum_value_by_symbol(E, V) -> erlang:error({no_enum_defs, E, V}). @@ -568,38 +476,33 @@ find_rpc_def(_, _) -> error. -spec fetch_rpc_def(_, _) -> no_return(). -fetch_rpc_def(ServiceName, RpcName) -> - erlang:error({no_such_rpc, ServiceName, RpcName}). +fetch_rpc_def(ServiceName, RpcName) -> erlang:error({no_such_rpc, ServiceName, RpcName}). %% Convert a a fully qualified (ie with package name) service name %% as a binary to a service name as an atom. -spec fqbin_to_service_name(_) -> no_return(). -fqbin_to_service_name(X) -> - error({gpb_error, {badservice, X}}). +fqbin_to_service_name(X) -> error({gpb_error, {badservice, X}}). %% Convert a service name as an atom to a fully qualified %% (ie with package name) name as a binary. -spec service_name_to_fqbin(_) -> no_return(). -service_name_to_fqbin(X) -> - error({gpb_error, {badservice, X}}). +service_name_to_fqbin(X) -> error({gpb_error, {badservice, X}}). %% Convert a a fully qualified (ie with package name) service name %% and an rpc name, both as binaries to a service name and an rpc %% name, as atoms. -spec fqbins_to_service_and_rpc_name(_, _) -> no_return(). -fqbins_to_service_and_rpc_name(S, R) -> - error({gpb_error, {badservice_or_rpc, {S, R}}}). +fqbins_to_service_and_rpc_name(S, R) -> error({gpb_error, {badservice_or_rpc, {S, R}}}). %% Convert a service name and an rpc name, both as atoms, %% to a fully qualified (ie with package name) service name and %% an rpc name as binaries. -spec service_and_rpc_name_to_fqbins(_, _) -> no_return(). -service_and_rpc_name_to_fqbins(S, R) -> - error({gpb_error, {badservice_or_rpc, {S, R}}}). +service_and_rpc_name_to_fqbins(S, R) -> error({gpb_error, {badservice_or_rpc, {S, R}}}). fqbin_to_msg_name(<<"Signed">>) -> 'Signed'; @@ -611,13 +514,11 @@ msg_name_to_fqbin(E) -> error({gpb_error, {badmsg, E}}). -spec fqbin_to_enum_name(_) -> no_return(). -fqbin_to_enum_name(E) -> - error({gpb_error, {badenum, E}}). +fqbin_to_enum_name(E) -> error({gpb_error, {badenum, E}}). -spec enum_name_to_fqbin(_) -> no_return(). -enum_name_to_fqbin(E) -> - error({gpb_error, {badenum, E}}). +enum_name_to_fqbin(E) -> error({gpb_error, {badenum, E}}). get_package_name() -> undefined. @@ -648,54 +549,47 @@ get_all_proto_names() -> ["r3_hex_pb_signed"]. get_msg_containment("r3_hex_pb_signed") -> ['Signed']; -get_msg_containment(P) -> - error({gpb_error, {badproto, P}}). +get_msg_containment(P) -> error({gpb_error, {badproto, P}}). get_pkg_containment("r3_hex_pb_signed") -> undefined; -get_pkg_containment(P) -> - error({gpb_error, {badproto, P}}). +get_pkg_containment(P) -> error({gpb_error, {badproto, P}}). get_service_containment("r3_hex_pb_signed") -> []; -get_service_containment(P) -> - error({gpb_error, {badproto, P}}). +get_service_containment(P) -> error({gpb_error, {badproto, P}}). get_rpc_containment("r3_hex_pb_signed") -> []; -get_rpc_containment(P) -> - error({gpb_error, {badproto, P}}). +get_rpc_containment(P) -> error({gpb_error, {badproto, P}}). get_enum_containment("r3_hex_pb_signed") -> []; -get_enum_containment(P) -> - error({gpb_error, {badproto, P}}). +get_enum_containment(P) -> error({gpb_error, {badproto, P}}). -get_proto_by_msg_name_as_fqbin(<<"Signed">>) -> - "r3_hex_pb_signed"; -get_proto_by_msg_name_as_fqbin(E) -> - error({gpb_error, {badmsg, E}}). +get_proto_by_msg_name_as_fqbin(<<"Signed">>) -> "r3_hex_pb_signed"; +get_proto_by_msg_name_as_fqbin(E) -> error({gpb_error, {badmsg, E}}). -spec get_proto_by_service_name_as_fqbin(_) -> no_return(). -get_proto_by_service_name_as_fqbin(E) -> - error({gpb_error, {badservice, E}}). +get_proto_by_service_name_as_fqbin(E) -> error({gpb_error, {badservice, E}}). -spec get_proto_by_enum_name_as_fqbin(_) -> no_return(). -get_proto_by_enum_name_as_fqbin(E) -> - error({gpb_error, {badenum, E}}). +get_proto_by_enum_name_as_fqbin(E) -> error({gpb_error, {badenum, E}}). -spec get_protos_by_pkg_name_as_fqbin(_) -> no_return(). -get_protos_by_pkg_name_as_fqbin(E) -> - error({gpb_error, {badpkg, E}}). +get_protos_by_pkg_name_as_fqbin(E) -> error({gpb_error, {badpkg, E}}). gpb_version_as_string() -> - "4.10.0". + "4.21.1". gpb_version_as_list() -> - [4,10,0]. + [4,21,1]. + +gpb_version_source() -> + "file". diff --git a/apps/rebar/src/vendored/r3_hex_pb_versions.erl b/apps/rebar/src/vendored/r3_hex_pb_versions.erl index f86f02a30..b9c5d8f60 100644 --- a/apps/rebar/src/vendored/r3_hex_pb_versions.erl +++ b/apps/rebar/src/vendored/r3_hex_pb_versions.erl @@ -1,9 +1,11 @@ -%% Vendored from hex_core v0.7.1, do not edit manually +%% Vendored from hex_core v0.10.1, do not edit manually %% -*- coding: utf-8 -*- +%% % this file is @generated %% @private %% Automatically generated, do not edit -%% Generated by gpb_compile version 4.10.0 +%% Generated by gpb_compile version 4.21.1 +%% Version source: file -module(r3_hex_pb_versions). -export([encode_msg/2, encode_msg/3]). @@ -45,6 +47,7 @@ -export([get_proto_by_enum_name_as_fqbin/1]). -export([get_protos_by_pkg_name_as_fqbin/1]). -export([gpb_version_as_string/0, gpb_version_as_list/0]). +-export([gpb_version_source/0]). %% enumerated types @@ -53,78 +56,74 @@ %% message types -type 'Versions'() :: - #{packages => ['Package'()], % = 1 - repository := iodata() % = 2 + #{packages => ['Package'()], % = 1, repeated + repository => unicode:chardata() % = 2, required }. -type 'Package'() :: - #{name := iodata(), % = 1 - versions => [iodata()], % = 2 - retired => [integer()] % = 3, 32 bits + #{name => unicode:chardata(), % = 1, required + versions => [unicode:chardata()], % = 2, repeated + retired => [integer()] % = 3, repeated, 32 bits }. -export_type(['Versions'/0, 'Package'/0]). +-type '$msg_name'() :: 'Versions' | 'Package'. +-type '$msg'() :: 'Versions'() | 'Package'(). +-export_type(['$msg_name'/0, '$msg'/0]). --spec encode_msg('Versions'() | 'Package'(), atom()) -> binary(). -encode_msg(Msg, MsgName) when is_atom(MsgName) -> - encode_msg(Msg, MsgName, []). +-if(?OTP_RELEASE >= 24). +-dialyzer({no_underspecs, encode_msg/2}). +-endif. +-spec encode_msg('$msg'(), '$msg_name'()) -> binary(). +encode_msg(Msg, MsgName) when is_atom(MsgName) -> encode_msg(Msg, MsgName, []). --spec encode_msg('Versions'() | 'Package'(), atom(), list()) -> binary(). +-if(?OTP_RELEASE >= 24). +-dialyzer({no_underspecs, encode_msg/3}). +-endif. +-spec encode_msg('$msg'(), '$msg_name'(), list()) -> binary(). encode_msg(Msg, MsgName, Opts) -> verify_msg(Msg, MsgName, Opts), TrUserData = proplists:get_value(user_data, Opts), case MsgName of - 'Versions' -> - encode_msg_Versions(id(Msg, TrUserData), TrUserData); - 'Package' -> - encode_msg_Package(id(Msg, TrUserData), TrUserData) + 'Versions' -> encode_msg_Versions(id(Msg, TrUserData), TrUserData); + 'Package' -> encode_msg_Package(id(Msg, TrUserData), TrUserData) end. -encode_msg_Versions(Msg, TrUserData) -> - encode_msg_Versions(Msg, <<>>, TrUserData). +encode_msg_Versions(Msg, TrUserData) -> encode_msg_Versions(Msg, <<>>, TrUserData). -encode_msg_Versions(#{repository := F2} = M, Bin, - TrUserData) -> +encode_msg_Versions(#{repository := F2} = M, Bin, TrUserData) -> B1 = case M of - #{packages := F1} -> - TrF1 = id(F1, TrUserData), - if TrF1 == [] -> Bin; - true -> e_field_Versions_packages(TrF1, Bin, TrUserData) - end; - _ -> Bin - end, - begin - TrF2 = id(F2, TrUserData), - e_type_string(TrF2, <>, TrUserData) - end. + #{packages := F1} -> + TrF1 = id(F1, TrUserData), + if TrF1 == [] -> Bin; + true -> e_field_Versions_packages(TrF1, Bin, TrUserData) + end; + _ -> Bin + end, + begin TrF2 = id(F2, TrUserData), e_type_string(TrF2, <>, TrUserData) end. -encode_msg_Package(Msg, TrUserData) -> - encode_msg_Package(Msg, <<>>, TrUserData). +encode_msg_Package(Msg, TrUserData) -> encode_msg_Package(Msg, <<>>, TrUserData). -encode_msg_Package(#{name := F1} = M, Bin, - TrUserData) -> - B1 = begin - TrF1 = id(F1, TrUserData), - e_type_string(TrF1, <>, TrUserData) - end, +encode_msg_Package(#{name := F1} = M, Bin, TrUserData) -> + B1 = begin TrF1 = id(F1, TrUserData), e_type_string(TrF1, <>, TrUserData) end, B2 = case M of - #{versions := F2} -> - TrF2 = id(F2, TrUserData), - if TrF2 == [] -> B1; - true -> e_field_Package_versions(TrF2, B1, TrUserData) - end; - _ -> B1 - end, + #{versions := F2} -> + TrF2 = id(F2, TrUserData), + if TrF2 == [] -> B1; + true -> e_field_Package_versions(TrF2, B1, TrUserData) + end; + _ -> B1 + end, case M of - #{retired := F3} -> - TrF3 = id(F3, TrUserData), - if TrF3 == [] -> B2; - true -> e_field_Package_retired(TrF3, B2, TrUserData) - end; - _ -> B2 + #{retired := F3} -> + TrF3 = id(F3, TrUserData), + if TrF3 == [] -> B2; + true -> e_field_Package_retired(TrF3, B2, TrUserData) + end; + _ -> B2 end. e_mfield_Versions_packages(Msg, Bin, TrUserData) -> @@ -132,65 +131,49 @@ e_mfield_Versions_packages(Msg, Bin, TrUserData) -> Bin2 = e_varint(byte_size(SubBin), Bin), <>. -e_field_Versions_packages([Elem | Rest], Bin, - TrUserData) -> +e_field_Versions_packages([Elem | Rest], Bin, TrUserData) -> Bin2 = <>, - Bin3 = e_mfield_Versions_packages(id(Elem, TrUserData), - Bin2, TrUserData), + Bin3 = e_mfield_Versions_packages(id(Elem, TrUserData), Bin2, TrUserData), e_field_Versions_packages(Rest, Bin3, TrUserData); e_field_Versions_packages([], Bin, _TrUserData) -> Bin. -e_field_Package_versions([Elem | Rest], Bin, - TrUserData) -> +e_field_Package_versions([Elem | Rest], Bin, TrUserData) -> Bin2 = <>, - Bin3 = e_type_string(id(Elem, TrUserData), Bin2, - TrUserData), + Bin3 = e_type_string(id(Elem, TrUserData), Bin2, TrUserData), e_field_Package_versions(Rest, Bin3, TrUserData); e_field_Package_versions([], Bin, _TrUserData) -> Bin. -e_field_Package_retired(Elems, Bin, TrUserData) - when Elems =/= [] -> - SubBin = e_pfield_Package_retired(Elems, <<>>, - TrUserData), +e_field_Package_retired(Elems, Bin, TrUserData) when Elems =/= [] -> + SubBin = e_pfield_Package_retired(Elems, <<>>, TrUserData), Bin2 = <>, Bin3 = e_varint(byte_size(SubBin), Bin2), <>; e_field_Package_retired([], Bin, _TrUserData) -> Bin. -e_pfield_Package_retired([Value | Rest], Bin, - TrUserData) -> - Bin2 = e_type_int32(id(Value, TrUserData), Bin, - TrUserData), +e_pfield_Package_retired([Value | Rest], Bin, TrUserData) -> + Bin2 = e_type_int32(id(Value, TrUserData), Bin, TrUserData), e_pfield_Package_retired(Rest, Bin2, TrUserData); e_pfield_Package_retired([], Bin, _TrUserData) -> Bin. -compile({nowarn_unused_function,e_type_sint/3}). -e_type_sint(Value, Bin, _TrUserData) when Value >= 0 -> - e_varint(Value * 2, Bin); -e_type_sint(Value, Bin, _TrUserData) -> - e_varint(Value * -2 - 1, Bin). +e_type_sint(Value, Bin, _TrUserData) when Value >= 0 -> e_varint(Value * 2, Bin); +e_type_sint(Value, Bin, _TrUserData) -> e_varint(Value * -2 - 1, Bin). -compile({nowarn_unused_function,e_type_int32/3}). -e_type_int32(Value, Bin, _TrUserData) - when 0 =< Value, Value =< 127 -> - <>; +e_type_int32(Value, Bin, _TrUserData) when 0 =< Value, Value =< 127 -> <>; e_type_int32(Value, Bin, _TrUserData) -> <> = <>, e_varint(N, Bin). -compile({nowarn_unused_function,e_type_int64/3}). -e_type_int64(Value, Bin, _TrUserData) - when 0 =< Value, Value =< 127 -> - <>; +e_type_int64(Value, Bin, _TrUserData) when 0 =< Value, Value =< 127 -> <>; e_type_int64(Value, Bin, _TrUserData) -> <> = <>, e_varint(N, Bin). -compile({nowarn_unused_function,e_type_bool/3}). -e_type_bool(true, Bin, _TrUserData) -> - <>; -e_type_bool(false, Bin, _TrUserData) -> - <>; +e_type_bool(true, Bin, _TrUserData) -> <>; +e_type_bool(false, Bin, _TrUserData) -> <>; e_type_bool(1, Bin, _TrUserData) -> <>; e_type_bool(0, Bin, _TrUserData) -> <>. @@ -201,51 +184,61 @@ e_type_string(S, Bin, _TrUserData) -> <>. -compile({nowarn_unused_function,e_type_bytes/3}). -e_type_bytes(Bytes, Bin, _TrUserData) - when is_binary(Bytes) -> +e_type_bytes(Bytes, Bin, _TrUserData) when is_binary(Bytes) -> Bin2 = e_varint(byte_size(Bytes), Bin), <>; -e_type_bytes(Bytes, Bin, _TrUserData) - when is_list(Bytes) -> +e_type_bytes(Bytes, Bin, _TrUserData) when is_list(Bytes) -> BytesBin = iolist_to_binary(Bytes), Bin2 = e_varint(byte_size(BytesBin), Bin), <>. -compile({nowarn_unused_function,e_type_fixed32/3}). -e_type_fixed32(Value, Bin, _TrUserData) -> - <>. +e_type_fixed32(Value, Bin, _TrUserData) -> <>. -compile({nowarn_unused_function,e_type_sfixed32/3}). -e_type_sfixed32(Value, Bin, _TrUserData) -> - <>. +e_type_sfixed32(Value, Bin, _TrUserData) -> <>. -compile({nowarn_unused_function,e_type_fixed64/3}). -e_type_fixed64(Value, Bin, _TrUserData) -> - <>. +e_type_fixed64(Value, Bin, _TrUserData) -> <>. -compile({nowarn_unused_function,e_type_sfixed64/3}). -e_type_sfixed64(Value, Bin, _TrUserData) -> - <>. +e_type_sfixed64(Value, Bin, _TrUserData) -> <>. -compile({nowarn_unused_function,e_type_float/3}). -e_type_float(V, Bin, _) when is_number(V) -> - <>; -e_type_float(infinity, Bin, _) -> - <>; -e_type_float('-infinity', Bin, _) -> - <>; -e_type_float(nan, Bin, _) -> - <>. +e_type_float(V, Bin, _) when is_number(V) -> <>; +e_type_float(infinity, Bin, _) -> <>; +e_type_float('-infinity', Bin, _) -> <>; +e_type_float(nan, Bin, _) -> <>. -compile({nowarn_unused_function,e_type_double/3}). -e_type_double(V, Bin, _) when is_number(V) -> - <>; -e_type_double(infinity, Bin, _) -> - <>; -e_type_double('-infinity', Bin, _) -> - <>; -e_type_double(nan, Bin, _) -> - <>. +e_type_double(V, Bin, _) when is_number(V) -> <>; +e_type_double(infinity, Bin, _) -> <>; +e_type_double('-infinity', Bin, _) -> <>; +e_type_double(nan, Bin, _) -> <>. + +-compile({nowarn_unused_function,e_unknown_elems/2}). +e_unknown_elems([Elem | Rest], Bin) -> + BinR = case Elem of + {varint, FNum, N} -> + BinF = e_varint(FNum bsl 3, Bin), + e_varint(N, BinF); + {length_delimited, FNum, Data} -> + BinF = e_varint(FNum bsl 3 bor 2, Bin), + BinL = e_varint(byte_size(Data), BinF), + <>; + {group, FNum, GroupFields} -> + Bin1 = e_varint(FNum bsl 3 bor 3, Bin), + Bin2 = e_unknown_elems(GroupFields, Bin1), + e_varint(FNum bsl 3 bor 4, Bin2); + {fixed32, FNum, V} -> + BinF = e_varint(FNum bsl 3 bor 5, Bin), + <>; + {fixed64, FNum, V} -> + BinF = e_varint(FNum bsl 3 bor 1, Bin), + <> + end, + e_unknown_elems(Rest, BinR); +e_unknown_elems([], Bin) -> Bin. -compile({nowarn_unused_function,e_varint/3}). e_varint(N, Bin, _TrUserData) -> e_varint(N, Bin). @@ -257,8 +250,7 @@ e_varint(N, Bin) -> e_varint(N bsr 7, Bin2). -decode_msg(Bin, MsgName) when is_binary(Bin) -> - decode_msg(Bin, MsgName, []). +decode_msg(Bin, MsgName) when is_binary(Bin) -> decode_msg(Bin, MsgName, []). decode_msg(Bin, MsgName, Opts) when is_binary(Bin) -> TrUserData = proplists:get_value(user_data, Opts), @@ -267,352 +259,160 @@ decode_msg(Bin, MsgName, Opts) when is_binary(Bin) -> -ifdef('OTP_RELEASE'). decode_msg_1_catch(Bin, MsgName, TrUserData) -> try decode_msg_2_doit(MsgName, Bin, TrUserData) - catch Class:Reason:StackTrace -> error({gpb_error,{decoding_failure, {Bin, MsgName, {Class, Reason, StackTrace}}}}) + catch + error:{gpb_error,_}=Reason:StackTrace -> + erlang:raise(error, Reason, StackTrace); + Class:Reason:StackTrace -> error({gpb_error,{decoding_failure, {Bin, MsgName, {Class, Reason, StackTrace}}}}) end. -else. decode_msg_1_catch(Bin, MsgName, TrUserData) -> try decode_msg_2_doit(MsgName, Bin, TrUserData) - catch Class:Reason -> - StackTrace = erlang:get_stacktrace(), - error({gpb_error,{decoding_failure, {Bin, MsgName, {Class, Reason, StackTrace}}}}) + catch + error:{gpb_error,_}=Reason -> + erlang:raise(error, Reason, + erlang:get_stacktrace()); + Class:Reason -> + StackTrace = erlang:get_stacktrace(), + error({gpb_error,{decoding_failure, {Bin, MsgName, {Class, Reason, StackTrace}}}}) end. -endif. -decode_msg_2_doit('Versions', Bin, TrUserData) -> - id(decode_msg_Versions(Bin, TrUserData), TrUserData); -decode_msg_2_doit('Package', Bin, TrUserData) -> - id(decode_msg_Package(Bin, TrUserData), TrUserData). +decode_msg_2_doit('Versions', Bin, TrUserData) -> id(decode_msg_Versions(Bin, TrUserData), TrUserData); +decode_msg_2_doit('Package', Bin, TrUserData) -> id(decode_msg_Package(Bin, TrUserData), TrUserData). -decode_msg_Versions(Bin, TrUserData) -> - dfp_read_field_def_Versions(Bin, 0, 0, - id([], TrUserData), id('$undef', TrUserData), - TrUserData). +decode_msg_Versions(Bin, TrUserData) -> dfp_read_field_def_Versions(Bin, 0, 0, 0, id([], TrUserData), id('$undef', TrUserData), TrUserData). -dfp_read_field_def_Versions(<<10, Rest/binary>>, Z1, Z2, - F@_1, F@_2, TrUserData) -> - d_field_Versions_packages(Rest, Z1, Z2, F@_1, F@_2, - TrUserData); -dfp_read_field_def_Versions(<<18, Rest/binary>>, Z1, Z2, - F@_1, F@_2, TrUserData) -> - d_field_Versions_repository(Rest, Z1, Z2, F@_1, F@_2, - TrUserData); -dfp_read_field_def_Versions(<<>>, 0, 0, R1, F@_2, - TrUserData) -> +dfp_read_field_def_Versions(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_Versions_packages(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +dfp_read_field_def_Versions(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_Versions_repository(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +dfp_read_field_def_Versions(<<>>, 0, 0, _, R1, F@_2, TrUserData) -> S1 = #{repository => F@_2}, if R1 == '$undef' -> S1; true -> S1#{packages => lists_reverse(R1, TrUserData)} end; -dfp_read_field_def_Versions(Other, Z1, Z2, F@_1, F@_2, - TrUserData) -> - dg_read_field_def_Versions(Other, Z1, Z2, F@_1, F@_2, - TrUserData). - -dg_read_field_def_Versions(<<1:1, X:7, Rest/binary>>, N, - Acc, F@_1, F@_2, TrUserData) - when N < 32 - 7 -> - dg_read_field_def_Versions(Rest, N + 7, X bsl N + Acc, - F@_1, F@_2, TrUserData); -dg_read_field_def_Versions(<<0:1, X:7, Rest/binary>>, N, - Acc, F@_1, F@_2, TrUserData) -> +dfp_read_field_def_Versions(Other, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dg_read_field_def_Versions(Other, Z1, Z2, F, F@_1, F@_2, TrUserData). + +dg_read_field_def_Versions(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 32 - 7 -> dg_read_field_def_Versions(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +dg_read_field_def_Versions(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, TrUserData) -> Key = X bsl N + Acc, case Key of - 10 -> - d_field_Versions_packages(Rest, 0, 0, F@_1, F@_2, - TrUserData); - 18 -> - d_field_Versions_repository(Rest, 0, 0, F@_1, F@_2, - TrUserData); - _ -> - case Key band 7 of - 0 -> - skip_varint_Versions(Rest, 0, 0, F@_1, F@_2, - TrUserData); - 1 -> - skip_64_Versions(Rest, 0, 0, F@_1, F@_2, TrUserData); - 2 -> - skip_length_delimited_Versions(Rest, 0, 0, F@_1, F@_2, - TrUserData); - 3 -> - skip_group_Versions(Rest, Key bsr 3, 0, F@_1, F@_2, - TrUserData); - 5 -> - skip_32_Versions(Rest, 0, 0, F@_1, F@_2, TrUserData) - end + 10 -> d_field_Versions_packages(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + 18 -> d_field_Versions_repository(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + _ -> + case Key band 7 of + 0 -> skip_varint_Versions(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 1 -> skip_64_Versions(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 2 -> skip_length_delimited_Versions(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 3 -> skip_group_Versions(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 5 -> skip_32_Versions(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData) + end end; -dg_read_field_def_Versions(<<>>, 0, 0, R1, F@_2, - TrUserData) -> +dg_read_field_def_Versions(<<>>, 0, 0, _, R1, F@_2, TrUserData) -> S1 = #{repository => F@_2}, if R1 == '$undef' -> S1; true -> S1#{packages => lists_reverse(R1, TrUserData)} end. -d_field_Versions_packages(<<1:1, X:7, Rest/binary>>, N, - Acc, F@_1, F@_2, TrUserData) - when N < 57 -> - d_field_Versions_packages(Rest, N + 7, X bsl N + Acc, - F@_1, F@_2, TrUserData); -d_field_Versions_packages(<<0:1, X:7, Rest/binary>>, N, - Acc, Prev, F@_2, TrUserData) -> - {NewFValue, RestF} = begin - Len = X bsl N + Acc, - <> = Rest, - {id(decode_msg_Package(Bs, TrUserData), TrUserData), - Rest2} - end, - dfp_read_field_def_Versions(RestF, 0, 0, - cons(NewFValue, Prev, TrUserData), F@_2, - TrUserData). - -d_field_Versions_repository(<<1:1, X:7, Rest/binary>>, - N, Acc, F@_1, F@_2, TrUserData) - when N < 57 -> - d_field_Versions_repository(Rest, N + 7, X bsl N + Acc, - F@_1, F@_2, TrUserData); -d_field_Versions_repository(<<0:1, X:7, Rest/binary>>, - N, Acc, F@_1, _, TrUserData) -> - {NewFValue, RestF} = begin - Len = X bsl N + Acc, - <> = Rest, - {id(binary:copy(Bytes), TrUserData), Rest2} - end, - dfp_read_field_def_Versions(RestF, 0, 0, F@_1, - NewFValue, TrUserData). - -skip_varint_Versions(<<1:1, _:7, Rest/binary>>, Z1, Z2, - F@_1, F@_2, TrUserData) -> - skip_varint_Versions(Rest, Z1, Z2, F@_1, F@_2, - TrUserData); -skip_varint_Versions(<<0:1, _:7, Rest/binary>>, Z1, Z2, - F@_1, F@_2, TrUserData) -> - dfp_read_field_def_Versions(Rest, Z1, Z2, F@_1, F@_2, - TrUserData). - -skip_length_delimited_Versions(<<1:1, X:7, - Rest/binary>>, - N, Acc, F@_1, F@_2, TrUserData) - when N < 57 -> - skip_length_delimited_Versions(Rest, N + 7, - X bsl N + Acc, F@_1, F@_2, TrUserData); -skip_length_delimited_Versions(<<0:1, X:7, - Rest/binary>>, - N, Acc, F@_1, F@_2, TrUserData) -> +d_field_Versions_packages(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_Versions_packages(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +d_field_Versions_packages(<<0:1, X:7, Rest/binary>>, N, Acc, F, Prev, F@_2, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id(decode_msg_Package(Bs, TrUserData), TrUserData), Rest2} end, + dfp_read_field_def_Versions(RestF, 0, 0, F, cons(NewFValue, Prev, TrUserData), F@_2, TrUserData). + +d_field_Versions_repository(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_Versions_repository(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +d_field_Versions_repository(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_Versions(RestF, 0, 0, F, F@_1, NewFValue, TrUserData). + +skip_varint_Versions(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> skip_varint_Versions(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +skip_varint_Versions(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_Versions(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +skip_length_delimited_Versions(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> skip_length_delimited_Versions(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +skip_length_delimited_Versions(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) -> Length = X bsl N + Acc, <<_:Length/binary, Rest2/binary>> = Rest, - dfp_read_field_def_Versions(Rest2, 0, 0, F@_1, F@_2, - TrUserData). + dfp_read_field_def_Versions(Rest2, 0, 0, F, F@_1, F@_2, TrUserData). -skip_group_Versions(Bin, FNum, Z2, F@_1, F@_2, - TrUserData) -> +skip_group_Versions(Bin, _, Z2, FNum, F@_1, F@_2, TrUserData) -> {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_Versions(Rest, 0, Z2, F@_1, F@_2, - TrUserData). - -skip_32_Versions(<<_:32, Rest/binary>>, Z1, Z2, F@_1, - F@_2, TrUserData) -> - dfp_read_field_def_Versions(Rest, Z1, Z2, F@_1, F@_2, - TrUserData). - -skip_64_Versions(<<_:64, Rest/binary>>, Z1, Z2, F@_1, - F@_2, TrUserData) -> - dfp_read_field_def_Versions(Rest, Z1, Z2, F@_1, F@_2, - TrUserData). - -decode_msg_Package(Bin, TrUserData) -> - dfp_read_field_def_Package(Bin, 0, 0, - id('$undef', TrUserData), id([], TrUserData), - id([], TrUserData), TrUserData). - -dfp_read_field_def_Package(<<10, Rest/binary>>, Z1, Z2, - F@_1, F@_2, F@_3, TrUserData) -> - d_field_Package_name(Rest, Z1, Z2, F@_1, F@_2, F@_3, - TrUserData); -dfp_read_field_def_Package(<<18, Rest/binary>>, Z1, Z2, - F@_1, F@_2, F@_3, TrUserData) -> - d_field_Package_versions(Rest, Z1, Z2, F@_1, F@_2, F@_3, - TrUserData); -dfp_read_field_def_Package(<<26, Rest/binary>>, Z1, Z2, - F@_1, F@_2, F@_3, TrUserData) -> - d_pfield_Package_retired(Rest, Z1, Z2, F@_1, F@_2, F@_3, - TrUserData); -dfp_read_field_def_Package(<<24, Rest/binary>>, Z1, Z2, - F@_1, F@_2, F@_3, TrUserData) -> - d_field_Package_retired(Rest, Z1, Z2, F@_1, F@_2, F@_3, - TrUserData); -dfp_read_field_def_Package(<<>>, 0, 0, F@_1, R1, R2, - TrUserData) -> - #{name => F@_1, - versions => lists_reverse(R1, TrUserData), - retired => lists_reverse(R2, TrUserData)}; -dfp_read_field_def_Package(Other, Z1, Z2, F@_1, F@_2, - F@_3, TrUserData) -> - dg_read_field_def_Package(Other, Z1, Z2, F@_1, F@_2, - F@_3, TrUserData). - -dg_read_field_def_Package(<<1:1, X:7, Rest/binary>>, N, - Acc, F@_1, F@_2, F@_3, TrUserData) - when N < 32 - 7 -> - dg_read_field_def_Package(Rest, N + 7, X bsl N + Acc, - F@_1, F@_2, F@_3, TrUserData); -dg_read_field_def_Package(<<0:1, X:7, Rest/binary>>, N, - Acc, F@_1, F@_2, F@_3, TrUserData) -> + dfp_read_field_def_Versions(Rest, 0, Z2, FNum, F@_1, F@_2, TrUserData). + +skip_32_Versions(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_Versions(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +skip_64_Versions(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_Versions(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +decode_msg_Package(Bin, TrUserData) -> dfp_read_field_def_Package(Bin, 0, 0, 0, id('$undef', TrUserData), id([], TrUserData), id([], TrUserData), TrUserData). + +dfp_read_field_def_Package(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_Package_name(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_Package(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_Package_versions(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_Package(<<26, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_pfield_Package_retired(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_Package(<<24, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_Package_retired(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_Package(<<>>, 0, 0, _, F@_1, R1, R2, TrUserData) -> #{name => F@_1, versions => lists_reverse(R1, TrUserData), retired => lists_reverse(R2, TrUserData)}; +dfp_read_field_def_Package(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dg_read_field_def_Package(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +dg_read_field_def_Package(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 32 - 7 -> dg_read_field_def_Package(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +dg_read_field_def_Package(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, TrUserData) -> Key = X bsl N + Acc, case Key of - 10 -> - d_field_Package_name(Rest, 0, 0, F@_1, F@_2, F@_3, - TrUserData); - 18 -> - d_field_Package_versions(Rest, 0, 0, F@_1, F@_2, F@_3, - TrUserData); - 26 -> - d_pfield_Package_retired(Rest, 0, 0, F@_1, F@_2, F@_3, - TrUserData); - 24 -> - d_field_Package_retired(Rest, 0, 0, F@_1, F@_2, F@_3, - TrUserData); - _ -> - case Key band 7 of - 0 -> - skip_varint_Package(Rest, 0, 0, F@_1, F@_2, F@_3, - TrUserData); - 1 -> - skip_64_Package(Rest, 0, 0, F@_1, F@_2, F@_3, - TrUserData); - 2 -> - skip_length_delimited_Package(Rest, 0, 0, F@_1, F@_2, - F@_3, TrUserData); - 3 -> - skip_group_Package(Rest, Key bsr 3, 0, F@_1, F@_2, F@_3, - TrUserData); - 5 -> - skip_32_Package(Rest, 0, 0, F@_1, F@_2, F@_3, - TrUserData) - end + 10 -> d_field_Package_name(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + 18 -> d_field_Package_versions(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + 26 -> d_pfield_Package_retired(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + 24 -> d_field_Package_retired(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + _ -> + case Key band 7 of + 0 -> skip_varint_Package(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 1 -> skip_64_Package(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 2 -> skip_length_delimited_Package(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 3 -> skip_group_Package(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 5 -> skip_32_Package(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData) + end end; -dg_read_field_def_Package(<<>>, 0, 0, F@_1, R1, R2, - TrUserData) -> - #{name => F@_1, - versions => lists_reverse(R1, TrUserData), - retired => lists_reverse(R2, TrUserData)}. - -d_field_Package_name(<<1:1, X:7, Rest/binary>>, N, Acc, - F@_1, F@_2, F@_3, TrUserData) - when N < 57 -> - d_field_Package_name(Rest, N + 7, X bsl N + Acc, F@_1, - F@_2, F@_3, TrUserData); -d_field_Package_name(<<0:1, X:7, Rest/binary>>, N, Acc, - _, F@_2, F@_3, TrUserData) -> - {NewFValue, RestF} = begin - Len = X bsl N + Acc, - <> = Rest, - {id(binary:copy(Bytes), TrUserData), Rest2} - end, - dfp_read_field_def_Package(RestF, 0, 0, NewFValue, F@_2, - F@_3, TrUserData). - -d_field_Package_versions(<<1:1, X:7, Rest/binary>>, N, - Acc, F@_1, F@_2, F@_3, TrUserData) - when N < 57 -> - d_field_Package_versions(Rest, N + 7, X bsl N + Acc, - F@_1, F@_2, F@_3, TrUserData); -d_field_Package_versions(<<0:1, X:7, Rest/binary>>, N, - Acc, F@_1, Prev, F@_3, TrUserData) -> - {NewFValue, RestF} = begin - Len = X bsl N + Acc, - <> = Rest, - {id(binary:copy(Bytes), TrUserData), Rest2} - end, - dfp_read_field_def_Package(RestF, 0, 0, F@_1, - cons(NewFValue, Prev, TrUserData), F@_3, - TrUserData). - -d_field_Package_retired(<<1:1, X:7, Rest/binary>>, N, - Acc, F@_1, F@_2, F@_3, TrUserData) - when N < 57 -> - d_field_Package_retired(Rest, N + 7, X bsl N + Acc, - F@_1, F@_2, F@_3, TrUserData); -d_field_Package_retired(<<0:1, X:7, Rest/binary>>, N, - Acc, F@_1, F@_2, Prev, TrUserData) -> - {NewFValue, RestF} = {begin - <> = <<(X bsl N + - Acc):32/unsigned-native>>, - id(Res, TrUserData) - end, - Rest}, - dfp_read_field_def_Package(RestF, 0, 0, F@_1, F@_2, - cons(NewFValue, Prev, TrUserData), TrUserData). - -d_pfield_Package_retired(<<1:1, X:7, Rest/binary>>, N, - Acc, F@_1, F@_2, F@_3, TrUserData) - when N < 57 -> - d_pfield_Package_retired(Rest, N + 7, X bsl N + Acc, - F@_1, F@_2, F@_3, TrUserData); -d_pfield_Package_retired(<<0:1, X:7, Rest/binary>>, N, - Acc, F@_1, F@_2, E, TrUserData) -> +dg_read_field_def_Package(<<>>, 0, 0, _, F@_1, R1, R2, TrUserData) -> #{name => F@_1, versions => lists_reverse(R1, TrUserData), retired => lists_reverse(R2, TrUserData)}. + +d_field_Package_name(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_Package_name(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_Package_name(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_Package(RestF, 0, 0, F, NewFValue, F@_2, F@_3, TrUserData). + +d_field_Package_versions(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_Package_versions(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_Package_versions(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, Prev, F@_3, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_Package(RestF, 0, 0, F, F@_1, cons(NewFValue, Prev, TrUserData), F@_3, TrUserData). + +d_field_Package_retired(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_Package_retired(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_Package_retired(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, Prev, TrUserData) -> + {NewFValue, RestF} = {begin <> = <<(X bsl N + Acc):32/unsigned-native>>, id(Res, TrUserData) end, Rest}, + dfp_read_field_def_Package(RestF, 0, 0, F, F@_1, F@_2, cons(NewFValue, Prev, TrUserData), TrUserData). + +d_pfield_Package_retired(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_pfield_Package_retired(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_pfield_Package_retired(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, E, TrUserData) -> Len = X bsl N + Acc, <> = Rest, - NewSeq = d_packed_field_Package_retired(PackedBytes, 0, - 0, E, TrUserData), - dfp_read_field_def_Package(Rest2, 0, 0, F@_1, F@_2, - NewSeq, TrUserData). - -d_packed_field_Package_retired(<<1:1, X:7, - Rest/binary>>, - N, Acc, AccSeq, TrUserData) - when N < 57 -> - d_packed_field_Package_retired(Rest, N + 7, - X bsl N + Acc, AccSeq, TrUserData); -d_packed_field_Package_retired(<<0:1, X:7, - Rest/binary>>, - N, Acc, AccSeq, TrUserData) -> - {NewFValue, RestF} = {begin - <> = <<(X bsl N + - Acc):32/unsigned-native>>, - id(Res, TrUserData) - end, - Rest}, - d_packed_field_Package_retired(RestF, 0, 0, - [NewFValue | AccSeq], TrUserData); -d_packed_field_Package_retired(<<>>, 0, 0, AccSeq, _) -> - AccSeq. - -skip_varint_Package(<<1:1, _:7, Rest/binary>>, Z1, Z2, - F@_1, F@_2, F@_3, TrUserData) -> - skip_varint_Package(Rest, Z1, Z2, F@_1, F@_2, F@_3, - TrUserData); -skip_varint_Package(<<0:1, _:7, Rest/binary>>, Z1, Z2, - F@_1, F@_2, F@_3, TrUserData) -> - dfp_read_field_def_Package(Rest, Z1, Z2, F@_1, F@_2, - F@_3, TrUserData). - -skip_length_delimited_Package(<<1:1, X:7, Rest/binary>>, - N, Acc, F@_1, F@_2, F@_3, TrUserData) - when N < 57 -> - skip_length_delimited_Package(Rest, N + 7, - X bsl N + Acc, F@_1, F@_2, F@_3, TrUserData); -skip_length_delimited_Package(<<0:1, X:7, Rest/binary>>, - N, Acc, F@_1, F@_2, F@_3, TrUserData) -> + NewSeq = d_packed_field_Package_retired(PackedBytes, 0, 0, F, E, TrUserData), + dfp_read_field_def_Package(Rest2, 0, 0, F, F@_1, F@_2, NewSeq, TrUserData). + +d_packed_field_Package_retired(<<1:1, X:7, Rest/binary>>, N, Acc, F, AccSeq, TrUserData) when N < 57 -> d_packed_field_Package_retired(Rest, N + 7, X bsl N + Acc, F, AccSeq, TrUserData); +d_packed_field_Package_retired(<<0:1, X:7, Rest/binary>>, N, Acc, F, AccSeq, TrUserData) -> + {NewFValue, RestF} = {begin <> = <<(X bsl N + Acc):32/unsigned-native>>, id(Res, TrUserData) end, Rest}, + d_packed_field_Package_retired(RestF, 0, 0, F, [NewFValue | AccSeq], TrUserData); +d_packed_field_Package_retired(<<>>, 0, 0, _, AccSeq, _) -> AccSeq. + +skip_varint_Package(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> skip_varint_Package(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +skip_varint_Package(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_Package(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +skip_length_delimited_Package(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> skip_length_delimited_Package(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +skip_length_delimited_Package(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) -> Length = X bsl N + Acc, <<_:Length/binary, Rest2/binary>> = Rest, - dfp_read_field_def_Package(Rest2, 0, 0, F@_1, F@_2, - F@_3, TrUserData). + dfp_read_field_def_Package(Rest2, 0, 0, F, F@_1, F@_2, F@_3, TrUserData). -skip_group_Package(Bin, FNum, Z2, F@_1, F@_2, F@_3, - TrUserData) -> +skip_group_Package(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, TrUserData) -> {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_Package(Rest, 0, Z2, F@_1, F@_2, - F@_3, TrUserData). + dfp_read_field_def_Package(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, TrUserData). -skip_32_Package(<<_:32, Rest/binary>>, Z1, Z2, F@_1, - F@_2, F@_3, TrUserData) -> - dfp_read_field_def_Package(Rest, Z1, Z2, F@_1, F@_2, - F@_3, TrUserData). +skip_32_Package(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_Package(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). -skip_64_Package(<<_:64, Rest/binary>>, Z1, Z2, F@_1, - F@_2, F@_3, TrUserData) -> - dfp_read_field_def_Package(Rest, Z1, Z2, F@_1, F@_2, - F@_3, TrUserData). +skip_64_Package(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_Package(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). read_group(Bin, FieldNum) -> {NumBytes, EndTagLen} = read_gr_b(Bin, 0, 0, 0, 0, FieldNum), @@ -672,188 +472,139 @@ read_gr_ld(<<0:1, X:7, Tl/binary>>, N, Acc, NumBytes, FieldNum) -> <<_:Len/binary, Tl2/binary>> = Tl, read_gr_b(Tl2, 0, 0, NumBytes1 + Len, 0, FieldNum). -merge_msgs(Prev, New, MsgName) when is_atom(MsgName) -> - merge_msgs(Prev, New, MsgName, []). +merge_msgs(Prev, New, MsgName) when is_atom(MsgName) -> merge_msgs(Prev, New, MsgName, []). merge_msgs(Prev, New, MsgName, Opts) -> TrUserData = proplists:get_value(user_data, Opts), case MsgName of - 'Versions' -> merge_msg_Versions(Prev, New, TrUserData); - 'Package' -> merge_msg_Package(Prev, New, TrUserData) + 'Versions' -> merge_msg_Versions(Prev, New, TrUserData); + 'Package' -> merge_msg_Package(Prev, New, TrUserData) end. -compile({nowarn_unused_function,merge_msg_Versions/3}). -merge_msg_Versions(#{} = PMsg, - #{repository := NFrepository} = NMsg, TrUserData) -> +merge_msg_Versions(#{} = PMsg, #{repository := NFrepository} = NMsg, TrUserData) -> S1 = #{repository => NFrepository}, case {PMsg, NMsg} of - {#{packages := PFpackages}, - #{packages := NFpackages}} -> - S1#{packages => - 'erlang_++'(PFpackages, NFpackages, TrUserData)}; - {_, #{packages := NFpackages}} -> - S1#{packages => NFpackages}; - {#{packages := PFpackages}, _} -> - S1#{packages => PFpackages}; - {_, _} -> S1 + {#{packages := PFpackages}, #{packages := NFpackages}} -> S1#{packages => 'erlang_++'(PFpackages, NFpackages, TrUserData)}; + {_, #{packages := NFpackages}} -> S1#{packages => NFpackages}; + {#{packages := PFpackages}, _} -> S1#{packages => PFpackages}; + {_, _} -> S1 end. -compile({nowarn_unused_function,merge_msg_Package/3}). -merge_msg_Package(#{} = PMsg, #{name := NFname} = NMsg, - TrUserData) -> +merge_msg_Package(#{} = PMsg, #{name := NFname} = NMsg, TrUserData) -> S1 = #{name => NFname}, S2 = case {PMsg, NMsg} of - {#{versions := PFversions}, - #{versions := NFversions}} -> - S1#{versions => - 'erlang_++'(PFversions, NFversions, TrUserData)}; - {_, #{versions := NFversions}} -> - S1#{versions => NFversions}; - {#{versions := PFversions}, _} -> - S1#{versions => PFversions}; - {_, _} -> S1 - end, + {#{versions := PFversions}, #{versions := NFversions}} -> S1#{versions => 'erlang_++'(PFversions, NFversions, TrUserData)}; + {_, #{versions := NFversions}} -> S1#{versions => NFversions}; + {#{versions := PFversions}, _} -> S1#{versions => PFversions}; + {_, _} -> S1 + end, case {PMsg, NMsg} of - {#{retired := PFretired}, #{retired := NFretired}} -> - S2#{retired => - 'erlang_++'(PFretired, NFretired, TrUserData)}; - {_, #{retired := NFretired}} -> - S2#{retired => NFretired}; - {#{retired := PFretired}, _} -> - S2#{retired => PFretired}; - {_, _} -> S2 + {#{retired := PFretired}, #{retired := NFretired}} -> S2#{retired => 'erlang_++'(PFretired, NFretired, TrUserData)}; + {_, #{retired := NFretired}} -> S2#{retired => NFretired}; + {#{retired := PFretired}, _} -> S2#{retired => PFretired}; + {_, _} -> S2 end. -verify_msg(Msg, MsgName) when is_atom(MsgName) -> - verify_msg(Msg, MsgName, []). +verify_msg(Msg, MsgName) when is_atom(MsgName) -> verify_msg(Msg, MsgName, []). verify_msg(Msg, MsgName, Opts) -> TrUserData = proplists:get_value(user_data, Opts), case MsgName of - 'Versions' -> - v_msg_Versions(Msg, [MsgName], TrUserData); - 'Package' -> v_msg_Package(Msg, [MsgName], TrUserData); - _ -> mk_type_error(not_a_known_message, Msg, []) + 'Versions' -> v_msg_Versions(Msg, [MsgName], TrUserData); + 'Package' -> v_msg_Package(Msg, [MsgName], TrUserData); + _ -> mk_type_error(not_a_known_message, Msg, []) end. -compile({nowarn_unused_function,v_msg_Versions/3}). -dialyzer({nowarn_function,v_msg_Versions/3}). -v_msg_Versions(#{repository := F2} = M, Path, - TrUserData) -> +v_msg_Versions(#{repository := F2} = M, Path, TrUserData) -> case M of - #{packages := F1} -> - if is_list(F1) -> - _ = [v_msg_Package(Elem, [packages | Path], TrUserData) - || Elem <- F1], - ok; - true -> - mk_type_error({invalid_list_of, {msg, 'Package'}}, F1, - [packages | Path]) - end; - _ -> ok + #{packages := F1} -> + if is_list(F1) -> + _ = [v_submsg_Package(Elem, [packages | Path], TrUserData) || Elem <- F1], + ok; + true -> mk_type_error({invalid_list_of, {msg, 'Package'}}, F1, [packages | Path]) + end; + _ -> ok end, v_type_string(F2, [repository | Path], TrUserData), lists:foreach(fun (packages) -> ok; - (repository) -> ok; - (OtherKey) -> - mk_type_error({extraneous_key, OtherKey}, M, Path) - end, - maps:keys(M)), + (repository) -> ok; + (OtherKey) -> mk_type_error({extraneous_key, OtherKey}, M, Path) + end, + maps:keys(M)), ok; -v_msg_Versions(M, Path, _TrUserData) when is_map(M) -> - mk_type_error({missing_fields, - [repository] -- maps:keys(M), 'Versions'}, - M, Path); -v_msg_Versions(X, Path, _TrUserData) -> - mk_type_error({expected_msg, 'Versions'}, X, Path). +v_msg_Versions(M, Path, _TrUserData) when is_map(M) -> mk_type_error({missing_fields, [repository] -- maps:keys(M), 'Versions'}, M, Path); +v_msg_Versions(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'Versions'}, X, Path). + +-compile({nowarn_unused_function,v_submsg_Package/3}). +-dialyzer({nowarn_function,v_submsg_Package/3}). +v_submsg_Package(Msg, Path, TrUserData) -> v_msg_Package(Msg, Path, TrUserData). -compile({nowarn_unused_function,v_msg_Package/3}). -dialyzer({nowarn_function,v_msg_Package/3}). v_msg_Package(#{name := F1} = M, Path, TrUserData) -> v_type_string(F1, [name | Path], TrUserData), case M of - #{versions := F2} -> - if is_list(F2) -> - _ = [v_type_string(Elem, [versions | Path], TrUserData) - || Elem <- F2], - ok; - true -> - mk_type_error({invalid_list_of, string}, F2, - [versions | Path]) - end; - _ -> ok + #{versions := F2} -> + if is_list(F2) -> + _ = [v_type_string(Elem, [versions | Path], TrUserData) || Elem <- F2], + ok; + true -> mk_type_error({invalid_list_of, string}, F2, [versions | Path]) + end; + _ -> ok end, case M of - #{retired := F3} -> - if is_list(F3) -> - _ = [v_type_int32(Elem, [retired | Path], TrUserData) - || Elem <- F3], - ok; - true -> - mk_type_error({invalid_list_of, int32}, F3, - [retired | Path]) - end; - _ -> ok + #{retired := F3} -> + if is_list(F3) -> + _ = [v_type_int32(Elem, [retired | Path], TrUserData) || Elem <- F3], + ok; + true -> mk_type_error({invalid_list_of, int32}, F3, [retired | Path]) + end; + _ -> ok end, lists:foreach(fun (name) -> ok; - (versions) -> ok; - (retired) -> ok; - (OtherKey) -> - mk_type_error({extraneous_key, OtherKey}, M, Path) - end, - maps:keys(M)), + (versions) -> ok; + (retired) -> ok; + (OtherKey) -> mk_type_error({extraneous_key, OtherKey}, M, Path) + end, + maps:keys(M)), ok; -v_msg_Package(M, Path, _TrUserData) when is_map(M) -> - mk_type_error({missing_fields, [name] -- maps:keys(M), - 'Package'}, - M, Path); -v_msg_Package(X, Path, _TrUserData) -> - mk_type_error({expected_msg, 'Package'}, X, Path). +v_msg_Package(M, Path, _TrUserData) when is_map(M) -> mk_type_error({missing_fields, [name] -- maps:keys(M), 'Package'}, M, Path); +v_msg_Package(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'Package'}, X, Path). -compile({nowarn_unused_function,v_type_int32/3}). -dialyzer({nowarn_function,v_type_int32/3}). -v_type_int32(N, _Path, _TrUserData) - when -2147483648 =< N, N =< 2147483647 -> - ok; -v_type_int32(N, Path, _TrUserData) when is_integer(N) -> - mk_type_error({value_out_of_range, int32, signed, 32}, - N, Path); -v_type_int32(X, Path, _TrUserData) -> - mk_type_error({bad_integer, int32, signed, 32}, X, - Path). +v_type_int32(N, _Path, _TrUserData) when is_integer(N), -2147483648 =< N, N =< 2147483647 -> ok; +v_type_int32(N, Path, _TrUserData) when is_integer(N) -> mk_type_error({value_out_of_range, int32, signed, 32}, N, Path); +v_type_int32(X, Path, _TrUserData) -> mk_type_error({bad_integer, int32, signed, 32}, X, Path). -compile({nowarn_unused_function,v_type_string/3}). -dialyzer({nowarn_function,v_type_string/3}). -v_type_string(S, Path, _TrUserData) - when is_list(S); is_binary(S) -> +v_type_string(S, Path, _TrUserData) when is_list(S); is_binary(S) -> try unicode:characters_to_binary(S) of - B when is_binary(B) -> ok; - {error, _, _} -> - mk_type_error(bad_unicode_string, S, Path) + B when is_binary(B) -> ok; + {error, _, _} -> mk_type_error(bad_unicode_string, S, Path) catch - error:badarg -> - mk_type_error(bad_unicode_string, S, Path) + error:badarg -> mk_type_error(bad_unicode_string, S, Path) end; -v_type_string(X, Path, _TrUserData) -> - mk_type_error(bad_unicode_string, X, Path). +v_type_string(X, Path, _TrUserData) -> mk_type_error(bad_unicode_string, X, Path). -compile({nowarn_unused_function,mk_type_error/3}). -spec mk_type_error(_, _, list()) -> no_return(). mk_type_error(Error, ValueSeen, Path) -> Path2 = prettify_path(Path), - erlang:error({gpb_type_error, - {Error, [{value, ValueSeen}, {path, Path2}]}}). + erlang:error({gpb_type_error, {Error, [{value, ValueSeen}, {path, Path2}]}}). -compile({nowarn_unused_function,prettify_path/1}). -dialyzer({nowarn_function,prettify_path/1}). prettify_path([]) -> top_level; -prettify_path(PathR) -> - list_to_atom(lists:append(lists:join(".", - lists:map(fun atom_to_list/1, - lists:reverse(PathR))))). +prettify_path(PathR) -> lists:append(lists:join(".", lists:map(fun atom_to_list/1, lists:reverse(PathR)))). -compile({nowarn_unused_function,id/2}). @@ -881,19 +632,11 @@ cons(Elem, Acc, _TrUserData) -> [Elem | Acc]. get_msg_defs() -> - [{{msg, 'Versions'}, - [#{name => packages, fnum => 1, rnum => 2, - type => {msg, 'Package'}, occurrence => repeated, - opts => []}, - #{name => repository, fnum => 2, rnum => 3, - type => string, occurrence => required, opts => []}]}, + [{{msg, 'Versions'}, [#{name => packages, fnum => 1, rnum => 2, type => {msg, 'Package'}, occurrence => repeated, opts => []}, #{name => repository, fnum => 2, rnum => 3, type => string, occurrence => required, opts => []}]}, {{msg, 'Package'}, - [#{name => name, fnum => 1, rnum => 2, type => string, - occurrence => required, opts => []}, - #{name => versions, fnum => 2, rnum => 3, - type => string, occurrence => repeated, opts => []}, - #{name => retired, fnum => 3, rnum => 4, type => int32, - occurrence => repeated, opts => [packed]}]}]. + [#{name => name, fnum => 1, rnum => 2, type => string, occurrence => required, opts => []}, + #{name => versions, fnum => 2, rnum => 3, type => string, occurrence => repeated, opts => []}, + #{name => retired, fnum => 3, rnum => 4, type => int32, occurrence => repeated, opts => [packed]}]}]. get_msg_names() -> ['Versions', 'Package']. @@ -910,29 +653,20 @@ get_enum_names() -> []. fetch_msg_def(MsgName) -> case find_msg_def(MsgName) of - Fs when is_list(Fs) -> Fs; - error -> erlang:error({no_such_msg, MsgName}) + Fs when is_list(Fs) -> Fs; + error -> erlang:error({no_such_msg, MsgName}) end. -spec fetch_enum_def(_) -> no_return(). -fetch_enum_def(EnumName) -> - erlang:error({no_such_enum, EnumName}). +fetch_enum_def(EnumName) -> erlang:error({no_such_enum, EnumName}). -find_msg_def('Versions') -> - [#{name => packages, fnum => 1, rnum => 2, - type => {msg, 'Package'}, occurrence => repeated, - opts => []}, - #{name => repository, fnum => 2, rnum => 3, - type => string, occurrence => required, opts => []}]; +find_msg_def('Versions') -> [#{name => packages, fnum => 1, rnum => 2, type => {msg, 'Package'}, occurrence => repeated, opts => []}, #{name => repository, fnum => 2, rnum => 3, type => string, occurrence => required, opts => []}]; find_msg_def('Package') -> - [#{name => name, fnum => 1, rnum => 2, type => string, - occurrence => required, opts => []}, - #{name => versions, fnum => 2, rnum => 3, - type => string, occurrence => repeated, opts => []}, - #{name => retired, fnum => 3, rnum => 4, type => int32, - occurrence => repeated, opts => [packed]}]; + [#{name => name, fnum => 1, rnum => 2, type => string, occurrence => required, opts => []}, + #{name => versions, fnum => 2, rnum => 3, type => string, occurrence => repeated, opts => []}, + #{name => retired, fnum => 3, rnum => 4, type => int32, occurrence => repeated, opts => [packed]}]; find_msg_def(_) -> error. @@ -940,13 +674,11 @@ find_enum_def(_) -> error. -spec enum_symbol_by_value(_, _) -> no_return(). -enum_symbol_by_value(E, V) -> - erlang:error({no_enum_defs, E, V}). +enum_symbol_by_value(E, V) -> erlang:error({no_enum_defs, E, V}). -spec enum_value_by_symbol(_, _) -> no_return(). -enum_value_by_symbol(E, V) -> - erlang:error({no_enum_defs, E, V}). +enum_value_by_symbol(E, V) -> erlang:error({no_enum_defs, E, V}). @@ -964,38 +696,33 @@ find_rpc_def(_, _) -> error. -spec fetch_rpc_def(_, _) -> no_return(). -fetch_rpc_def(ServiceName, RpcName) -> - erlang:error({no_such_rpc, ServiceName, RpcName}). +fetch_rpc_def(ServiceName, RpcName) -> erlang:error({no_such_rpc, ServiceName, RpcName}). %% Convert a a fully qualified (ie with package name) service name %% as a binary to a service name as an atom. -spec fqbin_to_service_name(_) -> no_return(). -fqbin_to_service_name(X) -> - error({gpb_error, {badservice, X}}). +fqbin_to_service_name(X) -> error({gpb_error, {badservice, X}}). %% Convert a service name as an atom to a fully qualified %% (ie with package name) name as a binary. -spec service_name_to_fqbin(_) -> no_return(). -service_name_to_fqbin(X) -> - error({gpb_error, {badservice, X}}). +service_name_to_fqbin(X) -> error({gpb_error, {badservice, X}}). %% Convert a a fully qualified (ie with package name) service name %% and an rpc name, both as binaries to a service name and an rpc %% name, as atoms. -spec fqbins_to_service_and_rpc_name(_, _) -> no_return(). -fqbins_to_service_and_rpc_name(S, R) -> - error({gpb_error, {badservice_or_rpc, {S, R}}}). +fqbins_to_service_and_rpc_name(S, R) -> error({gpb_error, {badservice_or_rpc, {S, R}}}). %% Convert a service name and an rpc name, both as atoms, %% to a fully qualified (ie with package name) service name and %% an rpc name as binaries. -spec service_and_rpc_name_to_fqbins(_, _) -> no_return(). -service_and_rpc_name_to_fqbins(S, R) -> - error({gpb_error, {badservice_or_rpc, {S, R}}}). +service_and_rpc_name_to_fqbins(S, R) -> error({gpb_error, {badservice_or_rpc, {S, R}}}). fqbin_to_msg_name(<<"Versions">>) -> 'Versions'; @@ -1009,13 +736,11 @@ msg_name_to_fqbin(E) -> error({gpb_error, {badmsg, E}}). -spec fqbin_to_enum_name(_) -> no_return(). -fqbin_to_enum_name(E) -> - error({gpb_error, {badenum, E}}). +fqbin_to_enum_name(E) -> error({gpb_error, {badenum, E}}). -spec enum_name_to_fqbin(_) -> no_return(). -enum_name_to_fqbin(E) -> - error({gpb_error, {badenum, E}}). +enum_name_to_fqbin(E) -> error({gpb_error, {badenum, E}}). get_package_name() -> undefined. @@ -1045,58 +770,49 @@ get_all_source_basenames() -> ["r3_hex_pb_versions.proto"]. get_all_proto_names() -> ["r3_hex_pb_versions"]. -get_msg_containment("r3_hex_pb_versions") -> - ['Package', 'Versions']; -get_msg_containment(P) -> - error({gpb_error, {badproto, P}}). +get_msg_containment("r3_hex_pb_versions") -> ['Package', 'Versions']; +get_msg_containment(P) -> error({gpb_error, {badproto, P}}). get_pkg_containment("r3_hex_pb_versions") -> undefined; -get_pkg_containment(P) -> - error({gpb_error, {badproto, P}}). +get_pkg_containment(P) -> error({gpb_error, {badproto, P}}). get_service_containment("r3_hex_pb_versions") -> []; -get_service_containment(P) -> - error({gpb_error, {badproto, P}}). +get_service_containment(P) -> error({gpb_error, {badproto, P}}). get_rpc_containment("r3_hex_pb_versions") -> []; -get_rpc_containment(P) -> - error({gpb_error, {badproto, P}}). +get_rpc_containment(P) -> error({gpb_error, {badproto, P}}). get_enum_containment("r3_hex_pb_versions") -> []; -get_enum_containment(P) -> - error({gpb_error, {badproto, P}}). +get_enum_containment(P) -> error({gpb_error, {badproto, P}}). -get_proto_by_msg_name_as_fqbin(<<"Versions">>) -> - "r3_hex_pb_versions"; -get_proto_by_msg_name_as_fqbin(<<"Package">>) -> - "r3_hex_pb_versions"; -get_proto_by_msg_name_as_fqbin(E) -> - error({gpb_error, {badmsg, E}}). +get_proto_by_msg_name_as_fqbin(<<"Versions">>) -> "r3_hex_pb_versions"; +get_proto_by_msg_name_as_fqbin(<<"Package">>) -> "r3_hex_pb_versions"; +get_proto_by_msg_name_as_fqbin(E) -> error({gpb_error, {badmsg, E}}). -spec get_proto_by_service_name_as_fqbin(_) -> no_return(). -get_proto_by_service_name_as_fqbin(E) -> - error({gpb_error, {badservice, E}}). +get_proto_by_service_name_as_fqbin(E) -> error({gpb_error, {badservice, E}}). -spec get_proto_by_enum_name_as_fqbin(_) -> no_return(). -get_proto_by_enum_name_as_fqbin(E) -> - error({gpb_error, {badenum, E}}). +get_proto_by_enum_name_as_fqbin(E) -> error({gpb_error, {badenum, E}}). -spec get_protos_by_pkg_name_as_fqbin(_) -> no_return(). -get_protos_by_pkg_name_as_fqbin(E) -> - error({gpb_error, {badpkg, E}}). +get_protos_by_pkg_name_as_fqbin(E) -> error({gpb_error, {badpkg, E}}). gpb_version_as_string() -> - "4.10.0". + "4.21.1". gpb_version_as_list() -> - [4,10,0]. + [4,21,1]. + +gpb_version_source() -> + "file". diff --git a/apps/rebar/src/vendored/r3_hex_registry.erl b/apps/rebar/src/vendored/r3_hex_registry.erl index 6c5ae3c99..3d17fa37c 100644 --- a/apps/rebar/src/vendored/r3_hex_registry.erl +++ b/apps/rebar/src/vendored/r3_hex_registry.erl @@ -1,13 +1,21 @@ -%% Vendored from hex_core v0.7.1, do not edit manually +%% Vendored from hex_core v0.10.1, do not edit manually +%% @doc +%% Functions for encoding and decoding Hex registries. -module(r3_hex_registry). -export([ encode_names/1, decode_names/2, + build_names/2, + unpack_names/3, encode_versions/1, decode_versions/2, + build_versions/2, + unpack_versions/3, encode_package/1, decode_package/3, + build_package/2, + unpack_package/4, sign_protobuf/2, decode_signed/1, decode_and_verify_signed/2, @@ -24,75 +32,102 @@ %%==================================================================== %% @doc -%% Encode Names message. +%% Builds names resource. +build_names(Names, PrivateKey) -> + Payload = encode_names(Names), + zlib:gzip(sign_protobuf(Payload, PrivateKey)). + +%% @doc +%% Unpacks names resource. +unpack_names(Payload, Repository, PublicKey) -> + case decode_and_verify_signed(zlib:gunzip(Payload), PublicKey) of + {ok, Names} -> decode_names(Names, Repository); + Other -> Other + end. + +%% @private encode_names(Names) -> r3_hex_pb_names:encode_msg(Names, 'Names'). -%% @doc -%% Decode message created with encode_names/1. +%% @private decode_names(Payload, no_verify) -> - #{packages := Packages} = r3_hex_pb_names:decode_msg(Payload, 'Names'), - {ok, Packages}; - + {ok, r3_hex_pb_names:decode_msg(Payload, 'Names')}; decode_names(Payload, Repository) -> case r3_hex_pb_names:decode_msg(Payload, 'Names') of - #{repository := Repository, packages := Packages} -> - {ok, Packages}; + #{repository := Repository, packages := _Packages} = Result -> + {ok, Result}; _ -> {error, unverified} end. %% @doc -%% Encode Versions message. +%% Builds versions resource. +build_versions(Versions, PrivateKey) -> + Payload = encode_versions(Versions), + zlib:gzip(sign_protobuf(Payload, PrivateKey)). + +%% @doc +%% Unpacks versions resource. +unpack_versions(Payload, Repository, PublicKey) -> + case decode_and_verify_signed(zlib:gunzip(Payload), PublicKey) of + {ok, Versions} -> decode_versions(Versions, Repository); + Other -> Other + end. + +%% @private encode_versions(Versions) -> r3_hex_pb_versions:encode_msg(Versions, 'Versions'). -%% @doc -%% Decode message created with encode_versions/1. +%% @private decode_versions(Payload, no_verify) -> - #{packages := Packages} = r3_hex_pb_versions:decode_msg(Payload, 'Versions'), - {ok, Packages}; - + {ok, r3_hex_pb_versions:decode_msg(Payload, 'Versions')}; decode_versions(Payload, Repository) -> case r3_hex_pb_versions:decode_msg(Payload, 'Versions') of - #{repository := Repository, packages := Packages} -> - {ok, Packages}; + #{repository := Repository, packages := _Packages} = Result -> + {ok, Result}; _ -> {error, unverified} end. %% @doc -%% Encode Package message. +%% Builds package resource. +build_package(Package, PrivateKey) -> + Payload = encode_package(Package), + zlib:gzip(sign_protobuf(Payload, PrivateKey)). + +%% @doc +%% Unpacks package resource. +unpack_package(Payload, Repository, Name, PublicKey) -> + case decode_and_verify_signed(zlib:gunzip(Payload), PublicKey) of + {ok, Package} -> decode_package(Package, Repository, Name); + Other -> Other + end. + +%% @private encode_package(Package) -> r3_hex_pb_package:encode_msg(Package, 'Package'). -%% @doc -%% Decode message created with encode_package/1. +%% @private decode_package(Payload, no_verify, no_verify) -> - #{releases := Releases} = r3_hex_pb_package:decode_msg(Payload, 'Package'), - {ok, Releases}; - + {ok, r3_hex_pb_package:decode_msg(Payload, 'Package')}; decode_package(Payload, Repository, Package) -> case r3_hex_pb_package:decode_msg(Payload, 'Package') of - #{repository := Repository, name := Package, releases := Releases} -> - {ok, Releases}; + #{repository := Repository, name := Package, releases := _Releases} = Result -> + {ok, Result}; _ -> {error, unverified} end. -%% @doc -%% Encode Signed message. +%% @private sign_protobuf(Payload, PrivateKey) -> Signature = sign(Payload, PrivateKey), r3_hex_pb_signed:encode_msg(#{payload => Payload, signature => Signature}, 'Signed'). -%% @doc -%% Decode message created with sign_protobuf/2 without verification. +%% @private decode_signed(Signed) -> r3_hex_pb_signed:decode_msg(Signed, 'Signed'). -%% @doc -%% Decode message created with sign_protobuf/2 and verify it against public key. +%% @private -spec decode_and_verify_signed(binary(), public_key()) -> {ok, binary()} | {error, term()}. decode_and_verify_signed(Signed, PublicKey) -> #{payload := Payload, signature := Signature} = decode_signed(Signed), @@ -102,15 +137,13 @@ decode_and_verify_signed(Signed, PublicKey) -> {error, Reason} -> {error, Reason} end. -%% @doc -%% Signs binary with given private key. +%% @private -spec sign(binary(), private_key()) -> binary(). sign(Binary, PrivateKey) -> {ok, RSAPrivateKey} = key(PrivateKey), public_key:sign(Binary, sha512, RSAPrivateKey). -%% @doc -%% Verifies binary against signature and a public key. +%% @private -spec verify(binary(), binary(), public_key()) -> boolean() | {error, term()}. verify(Binary, Signature, PublicKey) -> case key(PublicKey) of @@ -122,6 +155,7 @@ verify(Binary, Signature, PublicKey) -> %% Internal functions %%==================================================================== +%% @private key(#'RSAPublicKey'{} = Key) -> {ok, Key}; key(#'RSAPrivateKey'{} = Key) -> diff --git a/apps/rebar/src/vendored/r3_hex_repo.erl b/apps/rebar/src/vendored/r3_hex_repo.erl index 50c7b11fc..cd26291ce 100644 --- a/apps/rebar/src/vendored/r3_hex_repo.erl +++ b/apps/rebar/src/vendored/r3_hex_repo.erl @@ -1,11 +1,15 @@ -%% Vendored from hex_core v0.7.1, do not edit manually +%% Vendored from hex_core v0.10.1, do not edit manually +%% @doc +%% Repo API. -module(r3_hex_repo). -export([ get_names/1, get_versions/1, get_package/2, - get_tarball/3 + get_tarball/3, + get_docs/3, + get_public_key/1 ]). %%==================================================================== @@ -27,12 +31,8 @@ %% ''' %% @end get_names(Config) when is_map(Config) -> - Verify = maps:get(repo_verify_origin, Config, true), Decoder = fun(Data) -> - case Verify of - true -> r3_hex_registry:decode_names(Data, repo_name(Config)); - false -> r3_hex_registry:decode_names(Data, no_verify) - end + r3_hex_registry:decode_names(Data, verify_repo(Config)) end, get_protobuf(Config, <<"names">>, Decoder). @@ -53,12 +53,8 @@ get_names(Config) when is_map(Config) -> %% ''' %% @end get_versions(Config) when is_map(Config) -> - Verify = maps:get(repo_verify_origin, Config, true), Decoder = fun(Data) -> - case Verify of - true -> r3_hex_registry:decode_versions(Data, repo_name(Config)); - false -> r3_hex_registry:decode_versions(Data, no_verify) - end + r3_hex_registry:decode_versions(Data, verify_repo(Config)) end, get_protobuf(Config, <<"versions">>, Decoder). @@ -104,7 +100,46 @@ get_tarball(Config, Name, Version) -> case get(Config, tarball_url(Config, Name, Version), ReqHeaders) of {ok, {200, RespHeaders, Tarball}} -> {ok, {200, RespHeaders, Tarball}}; + Other -> + Other + end. + +%% @doc +%% Gets docs tarball from the repository. +%% +%% Examples: +%% +%% ``` +%% > {ok, {200, _, Docs}} = r3_hex_repo:get_docs(r3_hex_core:default_config(), <<"package1">>, <<"1.0.0">>), +%% > r3_hex_tarball:unpack_docs(Docs, memory) +%% {ok, [{"index.html", <<"">>}, ...]} +%% ''' +get_docs(Config, Name, Version) -> + ReqHeaders = make_headers(Config), + case get(Config, docs_url(Config, Name, Version), ReqHeaders) of + {ok, {200, RespHeaders, Docs}} -> + {ok, {200, RespHeaders, Docs}}; + Other -> + Other + end. + +%% @doc +%% Gets the public key from the repository. +%% +%% Examples: +%% +%% ``` +%% > r3_hex_repo:get_public_key(r3_hex_core:default_config()) +%% {ok, {200, _, PublicKey}} +%% ''' +get_public_key(Config) -> + ReqHeaders = make_headers(Config), + URI = build_url(Config, <<"public_key">>), + + case get(Config, URI, ReqHeaders) of + {ok, {200, RespHeaders, PublicKey}} -> + {ok, {200, RespHeaders, PublicKey}}; Other -> Other end. @@ -113,9 +148,11 @@ get_tarball(Config, Name, Version) -> %% Internal functions %%==================================================================== +%% @private get(Config, URI, Headers) -> r3_hex_http:request(Config, get, URI, Headers, undefined). +%% @private get_protobuf(Config, Path, Decoder) -> PublicKey = maps:get(repo_public_key, Config), ReqHeaders = make_headers(Config), @@ -126,15 +163,14 @@ get_protobuf(Config, Path, Decoder) -> case decode(Signed, PublicKey, Decoder, Config) of {ok, Decoded} -> {ok, {200, RespHeaders, Decoded}}; - {error, _} = Error -> Error end; - Other -> Other end. +%% @private decode(Signed, PublicKey, Decoder, Config) -> Verify = maps:get(repo_verify, Config, true), @@ -151,13 +187,28 @@ decode(Signed, PublicKey, Decoder, Config) -> Decoder(Payload) end. +%% @private +verify_repo(Config) -> + case maps:get(repo_verify_origin, Config, true) of + true -> repo_name(Config); + false -> no_verify + end. + +%% @private repo_name(#{repo_organization := Name}) when is_binary(Name) -> Name; repo_name(#{repo_name := Name}) when is_binary(Name) -> Name. +%% @private tarball_url(Config, Name, Version) -> Filename = tarball_filename(Name, Version), build_url(Config, <<"tarballs/", Filename/binary>>). +%% @private +docs_url(Config, Name, Version) -> + Filename = docs_filename(Name, Version), + build_url(Config, <<"docs/", Filename/binary>>). + +%% @private build_url(#{repo_url := URI, repo_organization := Org}, Path) when is_binary(Org) -> <>; build_url(#{repo_url := URI, repo_organization := undefined}, Path) -> @@ -165,12 +216,22 @@ build_url(#{repo_url := URI, repo_organization := undefined}, Path) -> build_url(Config, Path) -> build_url(Config#{repo_organization => undefined}, Path). +%% @private tarball_filename(Name, Version) -> <>. +%% @private +docs_filename(Name, Version) -> + <>. + +%% @private make_headers(Config) -> maps:fold(fun set_header/3, #{}, Config). -set_header(http_etag, ETag, Headers) when is_binary(ETag) -> maps:put(<<"if-none-match">>, ETag, Headers); -set_header(repo_key, Token, Headers) when is_binary(Token) -> maps:put(<<"authorization">>, Token, Headers); -set_header(_, _, Headers) -> Headers. +%% @private +set_header(http_etag, ETag, Headers) when is_binary(ETag) -> + maps:put(<<"if-none-match">>, ETag, Headers); +set_header(repo_key, Token, Headers) when is_binary(Token) -> + maps:put(<<"authorization">>, Token, Headers); +set_header(_, _, Headers) -> + Headers. diff --git a/apps/rebar/src/vendored/r3_hex_tarball.erl b/apps/rebar/src/vendored/r3_hex_tarball.erl index 7663f6a52..233b922a3 100644 --- a/apps/rebar/src/vendored/r3_hex_tarball.erl +++ b/apps/rebar/src/vendored/r3_hex_tarball.erl @@ -1,8 +1,16 @@ -%% Vendored from hex_core v0.7.1, do not edit manually +%% Vendored from hex_core v0.10.1, do not edit manually +%% @doc +%% Functions for creating and unpacking Hex tarballs. -module(r3_hex_tarball). --export([create/2, create/3, create_docs/1, create_docs/2, unpack/2, unpack/3, - unpack_docs/2, unpack_docs/3, format_checksum/1, format_error/1]). +-export([ + create/2, create/3, + create_docs/1, create_docs/2, + unpack/2, unpack/3, + unpack_docs/2, unpack_docs/3, + format_checksum/1, + format_error/1 +]). -ifdef(TEST). -export([do_decode_metadata/1, gzip/1, normalize_requirements/1]). -endif. @@ -44,9 +52,19 @@ %% inner_checksum => <<178,12,...>>}} %% ''' %% @end --spec create(metadata(), files(), r3_hex_core:config()) -> {ok, #{tarball => tarball(), outer_checksum => checksum(), - inner_checksum => tarball()}} | {error, term()}. +-spec create(metadata(), files(), r3_hex_core:config()) -> + {ok, #{ + tarball => tarball(), + outer_checksum => checksum(), + inner_checksum => tarball() + }} + | {error, term()}. create(Metadata, Files, Config) -> + #{ + tarball_max_size := TarballMaxSize, + tarball_max_uncompressed_size := TarballMaxUncompressedSize + } = Config, + MetadataBinary = encode_metadata(Metadata), ContentsTarball = create_memory_tarball(Files), ContentsTarballCompressed = gzip(ContentsTarball), @@ -56,30 +74,38 @@ create(Metadata, Files, Config) -> TarballMaxUncompressedSize = maps:get(tarball_max_uncompressed_size, Config), OuterFiles = [ - {"VERSION", ?VERSION}, - {"CHECKSUM", InnerChecksumBase16}, - {"metadata.config", MetadataBinary}, - {"contents.tar.gz", ContentsTarballCompressed} + {"VERSION", ?VERSION}, + {"CHECKSUM", InnerChecksumBase16}, + {"metadata.config", MetadataBinary}, + {"contents.tar.gz", ContentsTarballCompressed} ], - Tarball = create_memory_tarball(OuterFiles), - OuterChecksum = checksum(Tarball), - - UncompressedSize = byte_size(ContentsTarball), - - case {(byte_size(Tarball) > TarballMaxSize), (UncompressedSize > TarballMaxUncompressedSize)} of - {_, true} -> - {error, {tarball, {too_big_uncompressed, TarballMaxUncompressedSize}}}; - - {true, _} -> - {error, {tarball, {too_big_compressed, TarballMaxSize}}}; - - {false, false} -> - {ok, #{tarball => Tarball, outer_checksum => OuterChecksum, inner_checksum => InnerChecksum}} + case valid_size(ContentsTarball, TarballMaxUncompressedSize) of + true -> + Tarball = create_memory_tarball(OuterFiles), + OuterChecksum = checksum(Tarball), + + case valid_size(Tarball, TarballMaxSize) of + true -> + {ok, #{ + tarball => Tarball, + outer_checksum => OuterChecksum, + inner_checksum => InnerChecksum + }}; + false -> + {error, {tarball, {too_big_compressed, TarballMaxSize}}} + end; + false -> + {error, {tarball, {too_big_uncompressed, TarballMaxUncompressedSize}}} end. --spec create(metadata(), files()) -> {ok, #{tarball => tarball(), outer_checksum => checksum(), - inner_checksum => tarball()}} | {error, term()}. +-spec create(metadata(), files()) -> + {ok, #{ + tarball => tarball(), + outer_checksum => checksum(), + inner_checksum => tarball() + }} + | {error, term()}. create(Metadata, Files) -> create(Metadata, Files, r3_hex_core:default_config()). @@ -95,18 +121,26 @@ create(Metadata, Files) -> %% ''' %% @end -spec create_docs(files(), r3_hex_core:config()) -> {ok, tarball()} | {error, term()}. -create_docs(Files, #{tarball_max_size := TarballMaxSize, tarball_max_uncompressed_size := TarballMaxUncompressedSize}) -> +create_docs(Files, Config) -> + #{ + docs_tarball_max_size := TarballMaxSize, + docs_tarball_max_uncompressed_size := TarballMaxUncompressedSize + } = Config, + UncompressedTarball = create_memory_tarball(Files), - UncompressedSize = byte_size(UncompressedTarball), - Tarball = gzip(UncompressedTarball), - Size = byte_size(Tarball), - case(Size > TarballMaxSize) or (UncompressedSize > TarballMaxUncompressedSize) of + case valid_size(UncompressedTarball, TarballMaxUncompressedSize) of true -> - {error, {tarball, too_big}}; + Tarball = gzip(UncompressedTarball), + case valid_size(Tarball, TarballMaxSize) of + true -> + {ok, Tarball}; + false -> + {error, {tarball, {too_big_compressed, TarballMaxSize}}} + end; false -> - {ok, Tarball} + {error, {tarball, {too_big_uncompressed, TarballMaxUncompressedSize}}} end. -spec create_docs(files()) -> {ok, tarball()}. @@ -117,7 +151,7 @@ create_docs(Files) -> %% Unpacks a package tarball. %% %% Remember to verify the outer tarball checksum against the registry checksum -%% returned from `r3_hex_repo:get_package(Config, Package)`. +%% returned from `r3_hex_repo:get_package(Config, Package)'. %% %% Examples: %% @@ -131,39 +165,58 @@ create_docs(Files) -> %% {ok,#{outer_checksum => <<...>>, %% metadata => #{<<"name">> => <<"foo">>, ...}}} %% ''' --spec unpack(tarball(), memory, r3_hex_core:config()) -> - {ok, #{outer_checksum => checksum(), inner_checksum => checksum(), - metadata => metadata(), contents => contents()}} | - {error, term()}; - (tarball(), filename(), r3_hex_core:config()) -> - {ok, #{outer_checksum => checksum(), inner_checksum => checksum(), - metadata => metadata()}} | - {error, term()}. -unpack(Tarball, _, #{tarball_max_size := TarballMaxSize}) when byte_size(Tarball) > TarballMaxSize -> - {error, {tarball, too_big}}; - -unpack(Tarball, Output, _Config) -> - case r3_hex_erl_tar:extract({binary, Tarball}, [memory]) of - {ok, []} -> - {error, {tarball, empty}}; - - {ok, FileList} -> - OuterChecksum = crypto:hash(sha256, Tarball), - do_unpack(maps:from_list(FileList), OuterChecksum, Output); - - {error, Reason} -> - {error, {tarball, Reason}} +-spec unpack + (tarball(), memory, r3_hex_core:config()) -> + {ok, #{ + outer_checksum => checksum(), + inner_checksum => checksum(), + metadata => metadata(), + contents => contents() + }} + | {error, term()}; + (tarball(), filename(), r3_hex_core:config()) -> + {ok, #{ + outer_checksum => checksum(), + inner_checksum => checksum(), + metadata => metadata() + }} + | {error, term()}. +unpack(Tarball, Output, Config) -> + case valid_size(Tarball, maps:get(tarball_max_size, Config)) of + true -> + case r3_hex_erl_tar:extract({binary, Tarball}, [memory]) of + {ok, []} -> + {error, {tarball, empty}}; + {ok, FileList} -> + OuterChecksum = crypto:hash(sha256, Tarball), + do_unpack(maps:from_list(FileList), OuterChecksum, Output); + {error, Reason} -> + {error, {tarball, Reason}} + end; + false -> + {error, {tarball, too_big}} end. - --spec unpack(tarball(), memory) -> - {ok, #{outer_checksum => checksum(), inner_checksum => checksum(), - metadata => metadata(), contents => contents()}} | - {error, term()}; - (tarball(), filename()) -> - {ok, #{outer_checksum => checksum(), inner_checksum => checksum(), - metadata => metadata()}} | - {error, term()}. +%% @doc +%% Unpacks a package tarball. +%% +%% @see unpack/3 +-spec unpack + (tarball(), memory) -> + {ok, #{ + outer_checksum => checksum(), + inner_checksum => checksum(), + metadata => metadata(), + contents => contents() + }} + | {error, term()}; + (tarball(), filename()) -> + {ok, #{ + outer_checksum => checksum(), + inner_checksum => checksum(), + metadata => metadata() + }} + | {error, term()}. unpack(Tarball, Output) -> unpack(Tarball, Output, r3_hex_core:default_config()). @@ -179,16 +232,20 @@ unpack(Tarball, Output) -> %% > r3_hex_tarball:unpack_docs(Tarball, "path/to/unpack"). %% ok %% ''' --spec unpack_docs(tarball(), memory, r3_hex_core:config()) -> {ok, contents()} | {error, term()}; - (tarball(), filename(), r3_hex_core:config()) -> ok | {error, term()}. -unpack_docs(Tarball, _, #{tarball_max_size := TarballMaxSize}) when byte_size(Tarball) > TarballMaxSize -> - {error, {tarball, too_big}}; - -unpack_docs(Tarball, Output, _Config) -> - unpack_tarball(Tarball, Output). +-spec unpack_docs + (tarball(), memory, r3_hex_core:config()) -> {ok, contents()} | {error, term()}; + (tarball(), filename(), r3_hex_core:config()) -> ok | {error, term()}. +unpack_docs(Tarball, Output, Config) -> + case valid_size(Tarball, maps:get(docs_tarball_max_size, Config)) of + true -> + unpack_tarball(Tarball, Output); + false -> + {error, {tarball, too_big}} + end. --spec unpack_docs(tarball(), memory) -> {ok, contents()} | {error, term()}; - (tarball(), filename()) -> ok | {error, term()}. +-spec unpack_docs + (tarball(), memory) -> {ok, contents()} | {error, term()}; + (tarball(), filename()) -> ok | {error, term()}. unpack_docs(Tarball, Output) -> unpack_docs(Tarball, Output, r3_hex_core:default_config()). @@ -201,50 +258,64 @@ format_checksum(Checksum) -> %% @doc %% Converts an error reason term to a human-readable error message string. -spec format_error(term()) -> string(). -format_error({tarball, empty}) -> "empty tarball"; -format_error({tarball, {too_big_uncompressed, Size}}) -> +format_error({tarball, empty}) -> + "empty tarball"; +format_error({tarball, {too_big_uncompressed, Size}}) -> io_lib:format("package exceeds max uncompressed size ~w ~s", [format_byte_size(Size), "MB"]); -format_error({tarball, {too_big_compressed, Size}}) -> - io_lib:format("package exceeds max compressed size ~w ~s", [format_byte_size(Size), "MB"]); - -format_error({tarball, {missing_files, Files}}) -> io_lib:format("missing files: ~p", [Files]); -format_error({tarball, {bad_version, Vsn}}) -> io_lib:format("unsupported version: ~p", [Vsn]); -format_error({tarball, invalid_checksum}) -> "invalid tarball checksum"; -format_error({tarball, Reason}) -> "tarball error, " ++ r3_hex_erl_tar:format_error(Reason); -format_error({inner_tarball, Reason}) -> "inner tarball error, " ++ r3_hex_erl_tar:format_error(Reason); -format_error({metadata, invalid_terms}) -> "error reading package metadata: invalid terms"; -format_error({metadata, not_key_value}) -> "error reading package metadata: not in key-value format"; -format_error({metadata, Reason}) -> "error reading package metadata" ++ r3_safe_erl_term:format_error(Reason); - +format_error({tarball, {too_big_compressed, Size}}) -> + io_lib:format("package exceeds max compressed size ~w ~s", [format_byte_size(Size), "MB"]); +format_error({tarball, {missing_files, Files}}) -> + io_lib:format("missing files: ~p", [Files]); +format_error({tarball, {bad_version, Vsn}}) -> + io_lib:format("unsupported version: ~p", [Vsn]); +format_error({tarball, invalid_checksum}) -> + "invalid tarball checksum"; +format_error({tarball, Reason}) -> + "tarball error, " ++ r3_hex_erl_tar:format_error(Reason); +format_error({inner_tarball, Reason}) -> + "inner tarball error, " ++ r3_hex_erl_tar:format_error(Reason); +format_error({metadata, invalid_terms}) -> + "error reading package metadata: invalid terms"; +format_error({metadata, not_key_value}) -> + "error reading package metadata: not in key-value format"; +format_error({metadata, Reason}) -> + "error reading package metadata" ++ r3_safe_erl_term:format_error(Reason); format_error({checksum_mismatch, ExpectedChecksum, ActualChecksum}) -> io_lib:format( "tarball checksum mismatch~n~n" ++ - "Expected (base16-encoded): ~s~n" ++ - "Actual (base16-encoded): ~s", - [encode_base16(ExpectedChecksum), encode_base16(ActualChecksum)]). + "Expected (base16-encoded): ~s~n" ++ + "Actual (base16-encoded): ~s", + [encode_base16(ExpectedChecksum), encode_base16(ActualChecksum)] + ). -format_byte_size(Size) -> +format_byte_size(Size) -> Size / 1000000. %%==================================================================== %% Internal functions %%==================================================================== +%% @private inner_checksum(Version, MetadataBinary, ContentsBinary) -> Blob = <>, crypto:hash(sha256, Blob). +%% @private checksum(ContentsBinary) when is_binary(ContentsBinary) -> crypto:hash(sha256, ContentsBinary). +%% @private encode_metadata(Meta) -> Data = lists:map( fun(MetaPair) -> String = io_lib_pretty:print(binarify(MetaPair), [{encoding, utf8}]), unicode:characters_to_binary([String, ".\n"]) - end, maps:to_list(Meta)), + end, + maps:to_list(Meta) + ), iolist_to_binary(Data). +%% @private do_unpack(Files, OuterChecksum, Output) -> State = #{ inner_checksum => undefined, @@ -260,53 +331,69 @@ do_unpack(Files, OuterChecksum, Output) -> State4 = decode_metadata(State3), finish_unpack(State4). +%% @private finish_unpack({error, _} = Error) -> Error; -finish_unpack(#{metadata := Metadata, files := Files, inner_checksum := InnerChecksum, outer_checksum := OuterChecksum, output := Output}) -> +finish_unpack(#{ + metadata := Metadata, + files := Files, + inner_checksum := InnerChecksum, + outer_checksum := OuterChecksum, + output := Output +}) -> _ = maps:get("VERSION", Files), ContentsBinary = maps:get("contents.tar.gz", Files), case Output of - memory -> ok; - _ -> filelib:ensure_dir(filename:join(Output, "*")) + memory -> ok; + _ -> filelib:ensure_dir(filename:join(Output, "*")) end, case unpack_tarball(ContentsBinary, Output) of ok -> copy_metadata_config(Output, maps:get("metadata.config", Files)), - {ok, #{inner_checksum => InnerChecksum, outer_checksum => OuterChecksum, metadata => Metadata}}; - + {ok, #{ + inner_checksum => InnerChecksum, + outer_checksum => OuterChecksum, + metadata => Metadata + }}; {ok, Contents} -> - {ok, #{inner_checksum => InnerChecksum, outer_checksum => OuterChecksum, metadata => Metadata, contents => Contents}}; - + {ok, #{ + inner_checksum => InnerChecksum, + outer_checksum => OuterChecksum, + metadata => Metadata, + contents => Contents + }}; {error, Reason} -> {error, {inner_tarball, Reason}} end. +%% @private copy_metadata_config(Output, MetadataBinary) -> ok = file:write_file(filename:join(Output, "hex_metadata.config"), MetadataBinary). +%% @private check_files(#{files := Files} = State) -> RequiredFiles = ["VERSION", "CHECKSUM", "metadata.config", "contents.tar.gz"], case diff_keys(Files, RequiredFiles, []) of ok -> State; - {error, {missing_keys, Keys}} -> {error, {tarball, {missing_files, Keys}}} end. +%% @private check_version({error, _} = Error) -> Error; check_version(#{files := Files} = State) -> case maps:get("VERSION", Files) of <<"3">> -> State; - Version -> {error, {tarball, {bad_version, Version}}} end. +%% @private % Note: This checksum is deprecated check_inner_checksum({error, _} = Error) -> Error; @@ -322,14 +409,13 @@ check_inner_checksum(#{files := Files} = State) -> if byte_size(ExpectedChecksum) /= 32 -> {error, {tarball, invalid_inner_checksum}}; - ExpectedChecksum == ActualChecksum -> maps:put(inner_checksum, ExpectedChecksum, State); - true -> {error, {tarball, {inner_checksum_mismatch, ExpectedChecksum, ActualChecksum}}} end. +%% @private decode_metadata({error, _} = Error) -> Error; decode_metadata(#{files := #{"metadata.config" := Binary}} = State) when is_binary(Binary) -> @@ -338,6 +424,7 @@ decode_metadata(#{files := #{"metadata.config" := Binary}} = State) when is_bina Other -> Other end. +%% @private do_decode_metadata(Binary) when is_binary(Binary) -> {ok, String} = characters_to_list(Binary), @@ -349,15 +436,14 @@ do_decode_metadata(Binary) when is_binary(Binary) -> catch error:function_clause -> {error, {metadata, invalid_terms}}; - error:badarg -> {error, {metadata, not_key_value}} end; - {error, {_Line, r3_safe_erl_term, Reason}, _Line2} -> {error, {metadata, Reason}} end. +%% @private characters_to_list(Binary) -> case unicode:characters_to_list(Binary) of List when is_list(List) -> @@ -369,34 +455,44 @@ characters_to_list(Binary) -> end end. +%% @private normalize_metadata(Metadata1) -> Metadata2 = maybe_update_with(<<"requirements">>, fun normalize_requirements/1, Metadata1), Metadata3 = maybe_update_with(<<"links">>, fun try_into_map/1, Metadata2), Metadata4 = maybe_update_with(<<"extra">>, fun try_into_map/1, Metadata3), guess_build_tools(Metadata4). +%% @private normalize_requirements(Requirements) -> case is_list(Requirements) andalso (Requirements /= []) andalso is_list(hd(Requirements)) of true -> maps:from_list(lists:map(fun normalize_legacy_requirement/1, Requirements)); - false -> try_into_map(fun normalize_normal_requirement/1, Requirements) end. +%% @private normalize_normal_requirement({Name, Requirement}) -> {Name, try_into_map(Requirement)}. +%% @private normalize_legacy_requirement(Requirement) -> Map = maps:from_list(Requirement), Name = maps:get(<<"name">>, Map), {Name, maps:without([<<"name">>], Map)}. +%% @private guess_build_tools(#{<<"build_tools">> := BuildTools} = Metadata) when is_list(BuildTools) -> Metadata; guess_build_tools(#{<<"files">> := Filenames} = Metadata) -> - BaseFiles = [Filename || Filename <- Filenames, filename:dirname(binary_to_list(Filename)) == "."], - BuildTools = lists:usort([Tool || {Filename, Tool} <- ?BUILD_TOOL_FILES, lists:member(Filename, BaseFiles)]), + BaseFiles = [ + Filename + || Filename <- Filenames, filename:dirname(binary_to_list(Filename)) == "." + ], + BuildTools = lists:usort([ + Tool + || {Filename, Tool} <- ?BUILD_TOOL_FILES, lists:member(Filename, BaseFiles) + ]), Metadata#{<<"build_tools">> => BuildTools}; guess_build_tools(Metadata) -> Metadata. @@ -405,24 +501,30 @@ guess_build_tools(Metadata) -> %% Tar Helpers %%==================================================================== +%% @private unpack_tarball(ContentsBinary, memory) -> r3_hex_erl_tar:extract({binary, ContentsBinary}, [memory, compressed]); unpack_tarball(ContentsBinary, Output) -> filelib:ensure_dir(filename:join(Output, "*")), case r3_hex_erl_tar:extract({binary, ContentsBinary}, [{cwd, Output}, compressed]) of ok -> - [try_updating_mtime(filename:join(Output, Path)) || Path <- filelib:wildcard("**", Output)], + [ + try_updating_mtime(filename:join(Output, Path)) + || Path <- filelib:wildcard("**", Output) + ], ok; Other -> Other end. +%% @private %% let it silently fail for bad symlinks try_updating_mtime(Path) -> Time = calendar:universal_time(), - _ = file:write_file_info(Path, #file_info{mtime=Time}, [{time, universal}]), + _ = file:write_file_info(Path, #file_info{mtime = Time}, [{time, universal}]), ok. +%% @private create_memory_tarball(Files) -> Path = tmp_path(), {ok, Tar} = r3_hex_erl_tar:open(Path, [write]), @@ -436,12 +538,15 @@ create_memory_tarball(Files) -> ok = file:delete(Path), Tarball. +%% @private tmp_path() -> "tmp_" ++ binary_to_list(encode_base16(crypto:strong_rand_bytes(32))). +%% @private add_files(Tar, Files) when is_list(Files) -> lists:map(fun(File) -> add_file(Tar, File) end, Files). +%% @private add_file(Tar, {Filename, Contents}) when is_list(Filename) and is_binary(Contents) -> ok = r3_hex_erl_tar:add(Tar, Contents, Filename, tar_opts()); add_file(Tar, Filename) when is_list(Filename) -> @@ -456,7 +561,6 @@ add_file(Tar, {Filename, AbsFilename}) when is_list(Filename), is_list(AbsFilena case file:list_dir(AbsFilename) of {ok, []} -> r3_hex_erl_tar:add(Tar, {Filename, AbsFilename}, tar_opts()); - {ok, _} -> ok end; @@ -466,12 +570,14 @@ add_file(Tar, {Filename, AbsFilename}) when is_list(Filename), is_list(AbsFilena ok = r3_hex_erl_tar:add(Tar, Contents, Filename, Mode, tar_opts()) end. +%% @private tar_opts() -> NixEpoch = calendar:datetime_to_gregorian_seconds({{1970, 1, 1}, {0, 0, 0}}), Y2kEpoch = calendar:datetime_to_gregorian_seconds({{2000, 1, 1}, {0, 0, 0}}), Epoch = Y2kEpoch - NixEpoch, [{atime, Epoch}, {mtime, Epoch}, {ctime, Epoch}, {uid, 0}, {gid, 0}]. +%% @private %% Reproducible gzip by not setting mtime and OS %% %% From https://tools.ietf.org/html/rfc1952 @@ -495,6 +601,7 @@ gzip(Uncompressed) -> Trailer = <>, iolist_to_binary([Header, Compressed, Trailer]). +%% @private gzip_no_header(Uncompressed) -> Zstream = zlib:open(), @@ -511,6 +618,13 @@ gzip_no_header(Uncompressed) -> %% Helpers %%==================================================================== +%% @private +valid_size(Binary, infinity) when is_binary(Binary) -> + true; +valid_size(Binary, Limit) when is_binary(Binary) and is_integer(Limit) -> + byte_size(Binary) =< Limit. + +%% @private binarify(Binary) when is_binary(Binary) -> Binary; binarify(Number) when is_number(Number) -> Number; binarify(Atom) when Atom == undefined orelse is_boolean(Atom) -> Atom; @@ -520,9 +634,10 @@ binarify(List) when is_list(List) -> binarify({Key, Value}) -> {binarify(Key), binarify(Value)}; binarify(Map) when is_map(Map) -> - List = maps:to_list(Map), - lists:map(fun({K, V}) -> binarify({K, V}) end, List). + List = maps:to_list(Map), + lists:map(fun({K, V}) -> binarify({K, V}) end, List). +%% @private diff_keys(Map, RequiredKeys, OptionalKeys) -> Keys = maps:keys(Map), MissingKeys = RequiredKeys -- Keys, @@ -531,7 +646,6 @@ diff_keys(Map, RequiredKeys, OptionalKeys) -> case {MissingKeys, UnknownKeys} of {[], []} -> ok; - % Server should validate this but clients should not % {_, [_ | _]} -> % {error, {unknown_keys, UnknownKeys}}; @@ -540,21 +654,28 @@ diff_keys(Map, RequiredKeys, OptionalKeys) -> {error, {missing_keys, MissingKeys}} end. +%% @private maybe_update_with(Key, Fun, Map) -> case maps:find(Key, Map) of {ok, Value} -> maps:put(Key, Fun(Value), Map); error -> Map end. +%% @private try_into_map(List) -> try_into_map(fun(X) -> X end, List). +%% @private try_into_map(Fun, Input) -> - case is_list(Input) andalso lists:all(fun(E) -> is_tuple(E) andalso (tuple_size(E) == 2) end, Input) of + case + is_list(Input) andalso + lists:all(fun(E) -> is_tuple(E) andalso (tuple_size(E) == 2) end, Input) + of true -> maps:from_list(lists:map(Fun, Input)); false -> Input end. +%% @private encode_base16(Binary) -> <> = Binary, String = string:to_upper(lists:flatten(io_lib:format("~64.16.0b", [X]))), @@ -563,9 +684,11 @@ encode_base16(Binary) -> %% Based on https://github.com/goj/base16/blob/master/src/base16.erl %% (C) 2012, Erlang Solutions Ltd. +%% @private decode_base16(Base16) -> - << <<(unhex(H) bsl 4 + unhex(L))>> || <> <= Base16 >>. + <<<<(unhex(H) bsl 4 + unhex(L))>> || <> <= Base16>>. +%% @private unhex(D) when $0 =< D andalso D =< $9 -> D - $0; unhex(D) when $a =< D andalso D =< $f -> diff --git a/apps/rebar/src/vendored/r3_safe_erl_term.xrl b/apps/rebar/src/vendored/r3_safe_erl_term.xrl index 7ee78a7d0..2f3cd22f8 100644 --- a/apps/rebar/src/vendored/r3_safe_erl_term.xrl +++ b/apps/rebar/src/vendored/r3_safe_erl_term.xrl @@ -1,4 +1,4 @@ -%% Vendored from hex_core v0.7.1, do not edit manually +%% Vendored from hex_core v0.10.1, do not edit manually %%% Author : Robert Virding %%% Purpose : Token definitions for Erlang. diff --git a/vendor/certifi/LICENSE b/vendor/certifi/LICENSE index 7522d4ea9..2e6efa70e 100644 --- a/vendor/certifi/LICENSE +++ b/vendor/certifi/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2015-2022, Benoit Chesneau . +Copyright (c) 2015-2023, Benoit Chesneau . All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/vendor/certifi/hex_metadata.config b/vendor/certifi/hex_metadata.config index 4e00fe550..e07b38b53 100644 --- a/vendor/certifi/hex_metadata.config +++ b/vendor/certifi/hex_metadata.config @@ -10,4 +10,4 @@ {<<"links">>,[{<<"Github">>,<<"https://github.com/certifi/erlang-certifi">>}]}. {<<"name">>,<<"certifi">>}. {<<"requirements">>,[]}. -{<<"version">>,<<"2.11.0">>}. +{<<"version">>,<<"2.13.0">>}. diff --git a/vendor/certifi/priv/cacerts.pem b/vendor/certifi/priv/cacerts.pem index 0f8ee8a45..71cab28df 100644 --- a/vendor/certifi/priv/cacerts.pem +++ b/vendor/certifi/priv/cacerts.pem @@ -245,34 +245,6 @@ mJlglFwjz1onl14LBQaTNx47aTbrqZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK 4SVhM7JZG+Ju1zdXtg2pEto= -----END CERTIFICATE----- -# Issuer: O=SECOM Trust.net OU=Security Communication RootCA1 -# Subject: O=SECOM Trust.net OU=Security Communication RootCA1 -# Label: "Security Communication Root CA" -# Serial: 0 -# MD5 Fingerprint: f1:bc:63:6a:54:e0:b5:27:f5:cd:e7:1a:e3:4d:6e:4a -# SHA1 Fingerprint: 36:b1:2b:49:f9:81:9e:d7:4c:9e:bc:38:0f:c6:56:8f:5d:ac:b2:f7 -# SHA256 Fingerprint: e7:5e:72:ed:9f:56:0e:ec:6e:b4:80:00:73:a4:3f:c3:ad:19:19:5a:39:22:82:01:78:95:97:4a:99:02:6b:6c ------BEGIN CERTIFICATE----- -MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEY -MBYGA1UEChMPU0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21t -dW5pY2F0aW9uIFJvb3RDQTEwHhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5 -WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMPU0VDT00gVHJ1c3QubmV0MScwJQYD -VQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEwggEiMA0GCSqGSIb3 -DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw8yl8 -9f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJ -DKaVv0uMDPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9 -Ms+k2Y7CI9eNqPPYJayX5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/N -QV3Is00qVUarH9oe4kA92819uZKAnDfdDJZkndwi92SL32HeFZRSFaB9UslLqCHJ -xrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2JChzAgMBAAGjPzA9MB0G -A1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYwDwYDVR0T -AQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vG -kl3g0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfr -Uj94nK9NrvjVT8+amCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5 -Bw+SUEmK3TGXX8npN6o7WWWXlDLJs58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJU -JRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ6rBK+1YWc26sTfcioU+tHXot -RSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAiFL39vmwLAw== ------END CERTIFICATE----- - # Issuer: CN=XRamp Global Certification Authority O=XRamp Security Services Inc OU=www.xrampsecurity.com # Subject: CN=XRamp Global Certification Authority O=XRamp Security Services Inc OU=www.xrampsecurity.com # Label: "XRamp Global CA Root" @@ -791,34 +763,6 @@ uLjbvrW5KfnaNwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2 XjG4Kvte9nHfRCaexOYNkbQudZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E= -----END CERTIFICATE----- -# Issuer: CN=Hongkong Post Root CA 1 O=Hongkong Post -# Subject: CN=Hongkong Post Root CA 1 O=Hongkong Post -# Label: "Hongkong Post Root CA 1" -# Serial: 1000 -# MD5 Fingerprint: a8:0d:6f:39:78:b9:43:6d:77:42:6d:98:5a:cc:23:ca -# SHA1 Fingerprint: d6:da:a8:20:8d:09:d2:15:4d:24:b5:2f:cb:34:6e:b2:58:b2:8a:58 -# SHA256 Fingerprint: f9:e6:7d:33:6c:51:00:2a:c0:54:c6:32:02:2d:66:dd:a2:e7:e3:ff:f1:0a:d0:61:ed:31:d8:bb:b4:10:cf:b2 ------BEGIN CERTIFICATE----- -MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsx -FjAUBgNVBAoTDUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3Qg -Um9vdCBDQSAxMB4XDTAzMDUxNTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkG -A1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdr -b25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC -AQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1ApzQ -jVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEn -PzlTCeqrauh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjh -ZY4bXSNmO7ilMlHIhqqhqZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9 -nnV0ttgCXjqQesBCNnLsak3c78QA3xMYV18meMjWCnl3v/evt3a5pQuEF10Q6m/h -q5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNVHRMBAf8ECDAGAQH/AgED -MA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7ih9legYsC -mEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI3 -7piol7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clB -oiMBdDhViw+5LmeiIAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJs -EhTkYY2sEJCehFC78JZvRZ+K88psT/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpO -fMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilTc4afU9hDDl3WY4JxHYB0yvbi -AmvZWg== ------END CERTIFICATE----- - # Issuer: CN=SecureSign RootCA11 O=Japan Certification Services, Inc. # Subject: CN=SecureSign RootCA11 O=Japan Certification Services, Inc. # Label: "SecureSign RootCA11" @@ -909,49 +853,6 @@ Mx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH WD9f -----END CERTIFICATE----- -# Issuer: CN=Autoridad de Certificacion Firmaprofesional CIF A62634068 -# Subject: CN=Autoridad de Certificacion Firmaprofesional CIF A62634068 -# Label: "Autoridad de Certificacion Firmaprofesional CIF A62634068" -# Serial: 6047274297262753887 -# MD5 Fingerprint: 73:3a:74:7a:ec:bb:a3:96:a6:c2:e4:e2:c8:9b:c0:c3 -# SHA1 Fingerprint: ae:c5:fb:3f:c8:e1:bf:c4:e5:4f:03:07:5a:9a:e8:00:b7:f7:b6:fa -# SHA256 Fingerprint: 04:04:80:28:bf:1f:28:64:d4:8f:9a:d4:d8:32:94:36:6a:82:88:56:55:3f:3b:14:30:3f:90:14:7f:5d:40:ef ------BEGIN CERTIFICATE----- -MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UE -BhMCRVMxQjBABgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1h -cHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEy -MzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIwQAYDVQQDDDlBdXRvcmlkYWQgZGUg -Q2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBBNjI2MzQwNjgwggIi -MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDDUtd9 -thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQM -cas9UX4PB99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefG -L9ItWY16Ck6WaVICqjaY7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15i -NA9wBj4gGFrO93IbJWyTdBSTo3OxDqqHECNZXyAFGUftaI6SEspd/NYrspI8IM/h -X68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyIplD9amML9ZMWGxmPsu2b -m8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctXMbScyJCy -Z/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirja -EbsXLZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/T -KI8xWVvTyQKmtFLKbpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF -6NkBiDkal4ZkQdU7hwxu+g/GvUgUvzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVh -OSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNHDhpkLzCBpgYD -VR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp -cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBv -ACAAZABlACAAbABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBl -AGwAbwBuAGEAIAAwADgAMAAxADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF -661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx51tkljYyGOylMnfX40S2wBEqgLk9 -am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qkR71kMrv2JYSiJ0L1 -ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaPT481 -PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS -3a/DTg4fJl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5k -SeTy36LssUzAKh3ntLFlosS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF -3dvd6qJ2gHN99ZwExEWN57kci57q13XRcrHedUTnQn3iV2t93Jm8PYMo6oCTjcVM -ZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoRsaS8I8nkvof/uZS2+F0g -StRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTDKCOM/icz -Q0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQB -jLMi6Et8Vcad+qMUu2WFbm5PEn4KPJ2V ------END CERTIFICATE----- - # Issuer: CN=Izenpe.com O=IZENPE S.A. # Subject: CN=Izenpe.com O=IZENPE S.A. # Label: "Izenpe.com" @@ -1676,50 +1577,6 @@ HL/EVlP6Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVx SK236thZiNSQvxaz2emsWWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY= -----END CERTIFICATE----- -# Issuer: CN=E-Tugra Certification Authority O=E-Tuğra EBG Bilişim Teknolojileri ve Hizmetleri A.Ş. OU=E-Tugra Sertifikasyon Merkezi -# Subject: CN=E-Tugra Certification Authority O=E-Tuğra EBG Bilişim Teknolojileri ve Hizmetleri A.Ş. OU=E-Tugra Sertifikasyon Merkezi -# Label: "E-Tugra Certification Authority" -# Serial: 7667447206703254355 -# MD5 Fingerprint: b8:a1:03:63:b0:bd:21:71:70:8a:6f:13:3a:bb:79:49 -# SHA1 Fingerprint: 51:c6:e7:08:49:06:6e:f3:92:d4:5c:a0:0d:6d:a3:62:8f:c3:52:39 -# SHA256 Fingerprint: b0:bf:d5:2b:b0:d7:d9:bd:92:bf:5d:4d:c1:3d:a2:55:c0:2c:54:2f:37:83:65:ea:89:39:11:f5:5e:55:f2:3c ------BEGIN CERTIFICATE----- -MIIGSzCCBDOgAwIBAgIIamg+nFGby1MwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNV -BAYTAlRSMQ8wDQYDVQQHDAZBbmthcmExQDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBC -aWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhpem1ldGxlcmkgQS7Fni4xJjAkBgNV -BAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBNZXJrZXppMSgwJgYDVQQDDB9FLVR1 -Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEzMDMwNTEyMDk0OFoXDTIz -MDMwMzEyMDk0OFowgbIxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmExQDA+ -BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhp -em1ldGxlcmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBN -ZXJrZXppMSgwJgYDVQQDDB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 -MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA4vU/kwVRHoViVF56C/UY -B4Oufq9899SKa6VjQzm5S/fDxmSJPZQuVIBSOTkHS0vdhQd2h8y/L5VMzH2nPbxH -D5hw+IyFHnSOkm0bQNGZDbt1bsipa5rAhDGvykPL6ys06I+XawGb1Q5KCKpbknSF -Q9OArqGIW66z6l7LFpp3RMih9lRozt6Plyu6W0ACDGQXwLWTzeHxE2bODHnv0ZEo -q1+gElIwcxmOj+GMB6LDu0rw6h8VqO4lzKRG+Bsi77MOQ7osJLjFLFzUHPhdZL3D -k14opz8n8Y4e0ypQBaNV2cvnOVPAmJ6MVGKLJrD3fY185MaeZkJVgkfnsliNZvcH -fC425lAcP9tDJMW/hkd5s3kc91r0E+xs+D/iWR+V7kI+ua2oMoVJl0b+SzGPWsut -dEcf6ZG33ygEIqDUD13ieU/qbIWGvaimzuT6w+Gzrt48Ue7LE3wBf4QOXVGUnhMM -ti6lTPk5cDZvlsouDERVxcr6XQKj39ZkjFqzAQqptQpHF//vkUAqjqFGOjGY5RH8 -zLtJVor8udBhmm9lbObDyz51Sf6Pp+KJxWfXnUYTTjF2OySznhFlhqt/7x3U+Lzn -rFpct1pHXFXOVbQicVtbC/DP3KBhZOqp12gKY6fgDT+gr9Oq0n7vUaDmUStVkhUX -U8u3Zg5mTPj5dUyQ5xJwx0UCAwEAAaNjMGEwHQYDVR0OBBYEFC7j27JJ0JxUeVz6 -Jyr+zE7S6E5UMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAULuPbsknQnFR5 -XPonKv7MTtLoTlQwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQAF -Nzr0TbdF4kV1JI+2d1LoHNgQk2Xz8lkGpD4eKexd0dCrfOAKkEh47U6YA5n+KGCR -HTAduGN8qOY1tfrTYXbm1gdLymmasoR6d5NFFxWfJNCYExL/u6Au/U5Mh/jOXKqY -GwXgAEZKgoClM4so3O0409/lPun++1ndYYRP0lSWE2ETPo+Aab6TR7U1Q9Jauz1c -77NCR807VRMGsAnb/WP2OogKmW9+4c4bU2pEZiNRCHu8W1Ki/QY3OEBhj0qWuJA3 -+GbHeJAAFS6LrVE1Uweoa2iu+U48BybNCAVwzDk/dr2l02cmAYamU9JgO3xDf1WK -vJUawSg5TB9D0pH0clmKuVb8P7Sd2nCcdlqMQ1DujjByTd//SffGqWfZbawCEeI6 -FiWnWAjLb1NBnEg4R2gz0dfHj9R0IdTDBZB6/86WiLEVKV0jq9BgoRJP3vQXzTLl -yb/IQ639Lo7xr+L0mPoSHyDYwKcMhcWQ9DstliaxLL5Mq+ux0orJ23gTDx4JnW2P -AJ8C2sH6H3p6CcRK5ogql5+Ji/03X186zjhZhkuvcQu02PJwT58yE+Owp1fl2tpD -y4Q08ijE6m30Ku/Ba3ba+367hTzSU8JNvnHhRdH9I2cNE3X7z2VnIp2usAnRCf8d -NL/+I5c30jn6PQ0GC7TbO6Orb1wdtn7os4I07QZcJA== ------END CERTIFICATE----- - # Issuer: CN=T-TeleSec GlobalRoot Class 2 O=T-Systems Enterprise Services GmbH OU=T-Systems Trust Center # Subject: CN=T-TeleSec GlobalRoot Class 2 O=T-Systems Enterprise Services GmbH OU=T-Systems Trust Center # Label: "T-TeleSec GlobalRoot Class 2" @@ -4397,73 +4254,6 @@ ut6Dacpps6kFtZaSF4fC0urQe87YQVt8rgIwRt7qy12a7DLCZRawTDBcMPPaTnOG BtjOiQRINzf43TNRnXCve1XYAS59BWQOhriR -----END CERTIFICATE----- -# Issuer: CN=E-Tugra Global Root CA RSA v3 O=E-Tugra EBG A.S. OU=E-Tugra Trust Center -# Subject: CN=E-Tugra Global Root CA RSA v3 O=E-Tugra EBG A.S. OU=E-Tugra Trust Center -# Label: "E-Tugra Global Root CA RSA v3" -# Serial: 75951268308633135324246244059508261641472512052 -# MD5 Fingerprint: 22:be:10:f6:c2:f8:03:88:73:5f:33:29:47:28:47:a4 -# SHA1 Fingerprint: e9:a8:5d:22:14:52:1c:5b:aa:0a:b4:be:24:6a:23:8a:c9:ba:e2:a9 -# SHA256 Fingerprint: ef:66:b0:b1:0a:3c:db:9f:2e:36:48:c7:6b:d2:af:18:ea:d2:bf:e6:f1:17:65:5e:28:c4:06:0d:a1:a3:f4:c2 ------BEGIN CERTIFICATE----- -MIIF8zCCA9ugAwIBAgIUDU3FzRYilZYIfrgLfxUGNPt5EDQwDQYJKoZIhvcNAQEL -BQAwgYAxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHEwZBbmthcmExGTAXBgNVBAoTEEUt -VHVncmEgRUJHIEEuUy4xHTAbBgNVBAsTFEUtVHVncmEgVHJ1c3QgQ2VudGVyMSYw -JAYDVQQDEx1FLVR1Z3JhIEdsb2JhbCBSb290IENBIFJTQSB2MzAeFw0yMDAzMTgw -OTA3MTdaFw00NTAzMTIwOTA3MTdaMIGAMQswCQYDVQQGEwJUUjEPMA0GA1UEBxMG -QW5rYXJhMRkwFwYDVQQKExBFLVR1Z3JhIEVCRyBBLlMuMR0wGwYDVQQLExRFLVR1 -Z3JhIFRydXN0IENlbnRlcjEmMCQGA1UEAxMdRS1UdWdyYSBHbG9iYWwgUm9vdCBD -QSBSU0EgdjMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCiZvCJt3J7 -7gnJY9LTQ91ew6aEOErxjYG7FL1H6EAX8z3DeEVypi6Q3po61CBxyryfHUuXCscx -uj7X/iWpKo429NEvx7epXTPcMHD4QGxLsqYxYdE0PD0xesevxKenhOGXpOhL9hd8 -7jwH7eKKV9y2+/hDJVDqJ4GohryPUkqWOmAalrv9c/SF/YP9f4RtNGx/ardLAQO/ -rWm31zLZ9Vdq6YaCPqVmMbMWPcLzJmAy01IesGykNz709a/r4d+ABs8qQedmCeFL -l+d3vSFtKbZnwy1+7dZ5ZdHPOrbRsV5WYVB6Ws5OUDGAA5hH5+QYfERaxqSzO8bG -wzrwbMOLyKSRBfP12baqBqG3q+Sx6iEUXIOk/P+2UNOMEiaZdnDpwA+mdPy70Bt4 -znKS4iicvObpCdg604nmvi533wEKb5b25Y08TVJ2Glbhc34XrD2tbKNSEhhw5oBO -M/J+JjKsBY04pOZ2PJ8QaQ5tndLBeSBrW88zjdGUdjXnXVXHt6woq0bM5zshtQoK -5EpZ3IE1S0SVEgpnpaH/WwAH0sDM+T/8nzPyAPiMbIedBi3x7+PmBvrFZhNb/FAH -nnGGstpvdDDPk1Po3CLW3iAfYY2jLqN4MpBs3KwytQXk9TwzDdbgh3cXTJ2w2Amo -DVf3RIXwyAS+XF1a4xeOVGNpf0l0ZAWMowIDAQABo2MwYTAPBgNVHRMBAf8EBTAD -AQH/MB8GA1UdIwQYMBaAFLK0ruYt9ybVqnUtdkvAG1Mh0EjvMB0GA1UdDgQWBBSy -tK7mLfcm1ap1LXZLwBtTIdBI7zAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQEL -BQADggIBAImocn+M684uGMQQgC0QDP/7FM0E4BQ8Tpr7nym/Ip5XuYJzEmMmtcyQ -6dIqKe6cLcwsmb5FJ+Sxce3kOJUxQfJ9emN438o2Fi+CiJ+8EUdPdk3ILY7r3y18 -Tjvarvbj2l0Upq7ohUSdBm6O++96SmotKygY/r+QLHUWnw/qln0F7psTpURs+APQ -3SPh/QMSEgj0GDSz4DcLdxEBSL9htLX4GdnLTeqjjO/98Aa1bZL0SmFQhO3sSdPk -vmjmLuMxC1QLGpLWgti2omU8ZgT5Vdps+9u1FGZNlIM7zR6mK7L+d0CGq+ffCsn9 -9t2HVhjYsCxVYJb6CH5SkPVLpi6HfMsg2wY+oF0Dd32iPBMbKaITVaA9FCKvb7jQ -mhty3QUBjYZgv6Rn7rWlDdF/5horYmbDB7rnoEgcOMPpRfunf/ztAmgayncSd6YA -VSgU7NbHEqIbZULpkejLPoeJVF3Zr52XnGnnCv8PWniLYypMfUeUP95L6VPQMPHF -9p5J3zugkaOj/s1YzOrfr28oO6Bpm4/srK4rVJ2bBLFHIK+WEj5jlB0E5y67hscM -moi/dkfv97ALl2bSRM9gUgfh1SxKOidhd8rXj+eHDjD/DLsE4mHDosiXYY60MGo8 -bcIHX0pzLz/5FooBZu+6kcpSV3uu1OYP3Qt6f4ueJiDPO++BcYNZ ------END CERTIFICATE----- - -# Issuer: CN=E-Tugra Global Root CA ECC v3 O=E-Tugra EBG A.S. OU=E-Tugra Trust Center -# Subject: CN=E-Tugra Global Root CA ECC v3 O=E-Tugra EBG A.S. OU=E-Tugra Trust Center -# Label: "E-Tugra Global Root CA ECC v3" -# Serial: 218504919822255052842371958738296604628416471745 -# MD5 Fingerprint: 46:bc:81:bb:f1:b5:1e:f7:4b:96:bc:14:e2:e7:27:64 -# SHA1 Fingerprint: 8a:2f:af:57:53:b1:b0:e6:a1:04:ec:5b:6a:69:71:6d:f6:1c:e2:84 -# SHA256 Fingerprint: 87:3f:46:85:fa:7f:56:36:25:25:2e:6d:36:bc:d7:f1:6f:c2:49:51:f2:64:e4:7e:1b:95:4f:49:08:cd:ca:13 ------BEGIN CERTIFICATE----- -MIICpTCCAiqgAwIBAgIUJkYZdzHhT28oNt45UYbm1JeIIsEwCgYIKoZIzj0EAwMw -gYAxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHEwZBbmthcmExGTAXBgNVBAoTEEUtVHVn -cmEgRUJHIEEuUy4xHTAbBgNVBAsTFEUtVHVncmEgVHJ1c3QgQ2VudGVyMSYwJAYD -VQQDEx1FLVR1Z3JhIEdsb2JhbCBSb290IENBIEVDQyB2MzAeFw0yMDAzMTgwOTQ2 -NThaFw00NTAzMTIwOTQ2NThaMIGAMQswCQYDVQQGEwJUUjEPMA0GA1UEBxMGQW5r -YXJhMRkwFwYDVQQKExBFLVR1Z3JhIEVCRyBBLlMuMR0wGwYDVQQLExRFLVR1Z3Jh -IFRydXN0IENlbnRlcjEmMCQGA1UEAxMdRS1UdWdyYSBHbG9iYWwgUm9vdCBDQSBF -Q0MgdjMwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASOmCm/xxAeJ9urA8woLNheSBkQ -KczLWYHMjLiSF4mDKpL2w6QdTGLVn9agRtwcvHbB40fQWxPa56WzZkjnIZpKT4YK -fWzqTTKACrJ6CZtpS5iB4i7sAnCWH/31Rs7K3IKjYzBhMA8GA1UdEwEB/wQFMAMB -Af8wHwYDVR0jBBgwFoAU/4Ixcj75xGZsrTie0bBRiKWQzPUwHQYDVR0OBBYEFP+C -MXI++cRmbK04ntGwUYilkMz1MA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNp -ADBmAjEA5gVYaWHlLcoNy/EZCL3W/VGSGn5jVASQkZo1kTmZ+gepZpO6yGjUij/6 -7W4WAie3AjEA3VoXK3YdZUKWpqxdinlW2Iob35reX8dQj7FbcQwm32pAAOwzkSFx -vmjkI6TZraE3 ------END CERTIFICATE----- - # Issuer: CN=Security Communication RootCA3 O=SECOM Trust Systems CO.,LTD. # Subject: CN=Security Communication RootCA3 O=SECOM Trust Systems CO.,LTD. # Label: "Security Communication RootCA3" @@ -4525,3 +4315,500 @@ BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjAVXUI9/Lbu 9zuxNuie9sRGKEkz0FhDKmMpzE2xtHqiuQ04pV1IKv3LsnNdo4gIxwwCMQDAqy0O be0YottT6SXbVQjgUMzfRGEWgqtJsLKB7HOHeLRMsmIbEvoWTSVLY70eN9k= -----END CERTIFICATE----- + +# Issuer: CN=BJCA Global Root CA1 O=BEIJING CERTIFICATE AUTHORITY +# Subject: CN=BJCA Global Root CA1 O=BEIJING CERTIFICATE AUTHORITY +# Label: "BJCA Global Root CA1" +# Serial: 113562791157148395269083148143378328608 +# MD5 Fingerprint: 42:32:99:76:43:33:36:24:35:07:82:9b:28:f9:d0:90 +# SHA1 Fingerprint: d5:ec:8d:7b:4c:ba:79:f4:e7:e8:cb:9d:6b:ae:77:83:10:03:21:6a +# SHA256 Fingerprint: f3:89:6f:88:fe:7c:0a:88:27:66:a7:fa:6a:d2:74:9f:b5:7a:7f:3e:98:fb:76:9c:1f:a7:b0:9c:2c:44:d5:ae +-----BEGIN CERTIFICATE----- +MIIFdDCCA1ygAwIBAgIQVW9l47TZkGobCdFsPsBsIDANBgkqhkiG9w0BAQsFADBU +MQswCQYDVQQGEwJDTjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRI +T1JJVFkxHTAbBgNVBAMMFEJKQ0EgR2xvYmFsIFJvb3QgQ0ExMB4XDTE5MTIxOTAz +MTYxN1oXDTQ0MTIxMjAzMTYxN1owVDELMAkGA1UEBhMCQ04xJjAkBgNVBAoMHUJF +SUpJTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQDDBRCSkNBIEdsb2Jh +bCBSb290IENBMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAPFmCL3Z +xRVhy4QEQaVpN3cdwbB7+sN3SJATcmTRuHyQNZ0YeYjjlwE8R4HyDqKYDZ4/N+AZ +spDyRhySsTphzvq3Rp4Dhtczbu33RYx2N95ulpH3134rhxfVizXuhJFyV9xgw8O5 +58dnJCNPYwpj9mZ9S1WnP3hkSWkSl+BMDdMJoDIwOvqfwPKcxRIqLhy1BDPapDgR +at7GGPZHOiJBhyL8xIkoVNiMpTAK+BcWyqw3/XmnkRd4OJmtWO2y3syJfQOcs4ll +5+M7sSKGjwZteAf9kRJ/sGsciQ35uMt0WwfCyPQ10WRjeulumijWML3mG90Vr4Tq +nMfK9Q7q8l0ph49pczm+LiRvRSGsxdRpJQaDrXpIhRMsDQa4bHlW/KNnMoH1V6XK +V0Jp6VwkYe/iMBhORJhVb3rCk9gZtt58R4oRTklH2yiUAguUSiz5EtBP6DF+bHq/ +pj+bOT0CFqMYs2esWz8sgytnOYFcuX6U1WTdno9uruh8W7TXakdI136z1C2OVnZO +z2nxbkRs1CTqjSShGL+9V/6pmTW12xB3uD1IutbB5/EjPtffhZ0nPNRAvQoMvfXn +jSXWgXSHRtQpdaJCbPdzied9v3pKH9MiyRVVz99vfFXQpIsHETdfg6YmV6YBW37+ +WGgHqel62bno/1Afq8K0wM7o6v0PvY1NuLxxAgMBAAGjQjBAMB0GA1UdDgQWBBTF +7+3M2I0hxkjk49cULqcWk+WYATAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE +AwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAUoKsITQfI/Ki2Pm4rzc2IInRNwPWaZ+4 +YRC6ojGYWUfo0Q0lHhVBDOAqVdVXUsv45Mdpox1NcQJeXyFFYEhcCY5JEMEE3Kli +awLwQ8hOnThJdMkycFRtwUf8jrQ2ntScvd0g1lPJGKm1Vrl2i5VnZu69mP6u775u ++2D2/VnGKhs/I0qUJDAnyIm860Qkmss9vk/Ves6OF8tiwdneHg56/0OGNFK8YT88 +X7vZdrRTvJez/opMEi4r89fO4aL/3Xtw+zuhTaRjAv04l5U/BXCga99igUOLtFkN +SoxUnMW7gZ/NfaXvCyUeOiDbHPwfmGcCCtRzRBPbUYQaVQNW4AB+dAb/OMRyHdOo +P2gxXdMJxy6MW2Pg6Nwe0uxhHvLe5e/2mXZgLR6UcnHGCyoyx5JO1UbXHfmpGQrI ++pXObSOYqgs4rZpWDW+N8TEAiMEXnM0ZNjX+VVOg4DwzX5Ze4jLp3zO7Bkqp2IRz +znfSxqxx4VyjHQy7Ct9f4qNx2No3WqB4K/TUfet27fJhcKVlmtOJNBir+3I+17Q9 +eVzYH6Eze9mCUAyTF6ps3MKCuwJXNq+YJyo5UOGwifUll35HaBC07HPKs5fRJNz2 +YqAo07WjuGS3iGJCz51TzZm+ZGiPTx4SSPfSKcOYKMryMguTjClPPGAyzQWWYezy +r/6zcCwupvI= +-----END CERTIFICATE----- + +# Issuer: CN=BJCA Global Root CA2 O=BEIJING CERTIFICATE AUTHORITY +# Subject: CN=BJCA Global Root CA2 O=BEIJING CERTIFICATE AUTHORITY +# Label: "BJCA Global Root CA2" +# Serial: 58605626836079930195615843123109055211 +# MD5 Fingerprint: 5e:0a:f6:47:5f:a6:14:e8:11:01:95:3f:4d:01:eb:3c +# SHA1 Fingerprint: f4:27:86:eb:6e:b8:6d:88:31:67:02:fb:ba:66:a4:53:00:aa:7a:a6 +# SHA256 Fingerprint: 57:4d:f6:93:1e:27:80:39:66:7b:72:0a:fd:c1:60:0f:c2:7e:b6:6d:d3:09:29:79:fb:73:85:64:87:21:28:82 +-----BEGIN CERTIFICATE----- +MIICJTCCAaugAwIBAgIQLBcIfWQqwP6FGFkGz7RK6zAKBggqhkjOPQQDAzBUMQsw +CQYDVQQGEwJDTjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRIT1JJ +VFkxHTAbBgNVBAMMFEJKQ0EgR2xvYmFsIFJvb3QgQ0EyMB4XDTE5MTIxOTAzMTgy +MVoXDTQ0MTIxMjAzMTgyMVowVDELMAkGA1UEBhMCQ04xJjAkBgNVBAoMHUJFSUpJ +TkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQDDBRCSkNBIEdsb2JhbCBS +b290IENBMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABJ3LgJGNU2e1uVCxA/jlSR9B +IgmwUVJY1is0j8USRhTFiy8shP8sbqjV8QnjAyEUxEM9fMEsxEtqSs3ph+B99iK+ ++kpRuDCK/eHeGBIK9ke35xe/J4rUQUyWPGCWwf0VHKNCMEAwHQYDVR0OBBYEFNJK +sVF/BvDRgh9Obl+rg/xI1LCRMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD +AgEGMAoGCCqGSM49BAMDA2gAMGUCMBq8W9f+qdJUDkpd0m2xQNz0Q9XSSpkZElaA +94M04TVOSG0ED1cxMDAtsaqdAzjbBgIxAMvMh1PLet8gUXOQwKhbYdDFUDn9hf7B +43j4ptZLvZuHjw/l1lOWqzzIQNph91Oj9w== +-----END CERTIFICATE----- + +# Issuer: CN=Sectigo Public Server Authentication Root E46 O=Sectigo Limited +# Subject: CN=Sectigo Public Server Authentication Root E46 O=Sectigo Limited +# Label: "Sectigo Public Server Authentication Root E46" +# Serial: 88989738453351742415770396670917916916 +# MD5 Fingerprint: 28:23:f8:b2:98:5c:37:16:3b:3e:46:13:4e:b0:b3:01 +# SHA1 Fingerprint: ec:8a:39:6c:40:f0:2e:bc:42:75:d4:9f:ab:1c:1a:5b:67:be:d2:9a +# SHA256 Fingerprint: c9:0f:26:f0:fb:1b:40:18:b2:22:27:51:9b:5c:a2:b5:3e:2c:a5:b3:be:5c:f1:8e:fe:1b:ef:47:38:0c:53:83 +-----BEGIN CERTIFICATE----- +MIICOjCCAcGgAwIBAgIQQvLM2htpN0RfFf51KBC49DAKBggqhkjOPQQDAzBfMQsw +CQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1T +ZWN0aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwHhcN +MjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1OTU5WjBfMQswCQYDVQQGEwJHQjEYMBYG +A1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1YmxpYyBT +ZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwdjAQBgcqhkjOPQIBBgUrgQQA +IgNiAAR2+pmpbiDt+dd34wc7qNs9Xzjoq1WmVk/WSOrsfy2qw7LFeeyZYX8QeccC +WvkEN/U0NSt3zn8gj1KjAIns1aeibVvjS5KToID1AZTc8GgHHs3u/iVStSBDHBv+ +6xnOQ6OjQjBAMB0GA1UdDgQWBBTRItpMWfFLXyY4qp3W7usNw/upYTAOBgNVHQ8B +Af8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNnADBkAjAn7qRa +qCG76UeXlImldCBteU/IvZNeWBj7LRoAasm4PdCkT0RHlAFWovgzJQxC36oCMB3q +4S6ILuH5px0CMk7yn2xVdOOurvulGu7t0vzCAxHrRVxgED1cf5kDW21USAGKcw== +-----END CERTIFICATE----- + +# Issuer: CN=Sectigo Public Server Authentication Root R46 O=Sectigo Limited +# Subject: CN=Sectigo Public Server Authentication Root R46 O=Sectigo Limited +# Label: "Sectigo Public Server Authentication Root R46" +# Serial: 156256931880233212765902055439220583700 +# MD5 Fingerprint: 32:10:09:52:00:d5:7e:6c:43:df:15:c0:b1:16:93:e5 +# SHA1 Fingerprint: ad:98:f9:f3:e4:7d:75:3b:65:d4:82:b3:a4:52:17:bb:6e:f5:e4:38 +# SHA256 Fingerprint: 7b:b6:47:a6:2a:ee:ac:88:bf:25:7a:a5:22:d0:1f:fe:a3:95:e0:ab:45:c7:3f:93:f6:56:54:ec:38:f2:5a:06 +-----BEGIN CERTIFICATE----- +MIIFijCCA3KgAwIBAgIQdY39i658BwD6qSWn4cetFDANBgkqhkiG9w0BAQwFADBf +MQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQD +Ey1TZWN0aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYw +HhcNMjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1OTU5WjBfMQswCQYDVQQGEwJHQjEY +MBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1Ymxp +YyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYwggIiMA0GCSqGSIb3DQEB +AQUAA4ICDwAwggIKAoICAQCTvtU2UnXYASOgHEdCSe5jtrch/cSV1UgrJnwUUxDa +ef0rty2k1Cz66jLdScK5vQ9IPXtamFSvnl0xdE8H/FAh3aTPaE8bEmNtJZlMKpnz +SDBh+oF8HqcIStw+KxwfGExxqjWMrfhu6DtK2eWUAtaJhBOqbchPM8xQljeSM9xf +iOefVNlI8JhD1mb9nxc4Q8UBUQvX4yMPFF1bFOdLvt30yNoDN9HWOaEhUTCDsG3X +ME6WW5HwcCSrv0WBZEMNvSE6Lzzpng3LILVCJ8zab5vuZDCQOc2TZYEhMbUjUDM3 +IuM47fgxMMxF/mL50V0yeUKH32rMVhlATc6qu/m1dkmU8Sf4kaWD5QazYw6A3OAS +VYCmO2a0OYctyPDQ0RTp5A1NDvZdV3LFOxxHVp3i1fuBYYzMTYCQNFu31xR13NgE +SJ/AwSiItOkcyqex8Va3e0lMWeUgFaiEAin6OJRpmkkGj80feRQXEgyDet4fsZfu ++Zd4KKTIRJLpfSYFplhym3kT2BFfrsU4YjRosoYwjviQYZ4ybPUHNs2iTG7sijbt +8uaZFURww3y8nDnAtOFr94MlI1fZEoDlSfB1D++N6xybVCi0ITz8fAr/73trdf+L +HaAZBav6+CuBQug4urv7qv094PPK306Xlynt8xhW6aWWrL3DkJiy4Pmi1KZHQ3xt +zwIDAQABo0IwQDAdBgNVHQ4EFgQUVnNYZJX5khqwEioEYnmhQBWIIUkwDgYDVR0P +AQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAC9c +mTz8Bl6MlC5w6tIyMY208FHVvArzZJ8HXtXBc2hkeqK5Duj5XYUtqDdFqij0lgVQ +YKlJfp/imTYpE0RHap1VIDzYm/EDMrraQKFz6oOht0SmDpkBm+S8f74TlH7Kph52 +gDY9hAaLMyZlbcp+nv4fjFg4exqDsQ+8FxG75gbMY/qB8oFM2gsQa6H61SilzwZA +Fv97fRheORKkU55+MkIQpiGRqRxOF3yEvJ+M0ejf5lG5Nkc/kLnHvALcWxxPDkjB +JYOcCj+esQMzEhonrPcibCTRAUH4WAP+JWgiH5paPHxsnnVI84HxZmduTILA7rpX +DhjvLpr3Etiga+kFpaHpaPi8TD8SHkXoUsCjvxInebnMMTzD9joiFgOgyY9mpFui +TdaBJQbpdqQACj7LzTWb4OE4y2BThihCQRxEV+ioratF4yUQvNs+ZUH7G6aXD+u5 +dHn5HrwdVw1Hr8Mvn4dGp+smWg9WY7ViYG4A++MnESLn/pmPNPW56MORcr3Ywx65 +LvKRRFHQV80MNNVIIb/bE/FmJUNS0nAiNs2fxBx1IK1jcmMGDw4nztJqDby1ORrp +0XZ60Vzk50lJLVU3aPAaOpg+VBeHVOmmJ1CJeyAvP/+/oYtKR5j/K3tJPsMpRmAY +QqszKbrAKbkTidOIijlBO8n9pu0f9GBj39ItVQGL +-----END CERTIFICATE----- + +# Issuer: CN=SSL.com TLS RSA Root CA 2022 O=SSL Corporation +# Subject: CN=SSL.com TLS RSA Root CA 2022 O=SSL Corporation +# Label: "SSL.com TLS RSA Root CA 2022" +# Serial: 148535279242832292258835760425842727825 +# MD5 Fingerprint: d8:4e:c6:59:30:d8:fe:a0:d6:7a:5a:2c:2c:69:78:da +# SHA1 Fingerprint: ec:2c:83:40:72:af:26:95:10:ff:0e:f2:03:ee:31:70:f6:78:9d:ca +# SHA256 Fingerprint: 8f:af:7d:2e:2c:b4:70:9b:b8:e0:b3:36:66:bf:75:a5:dd:45:b5:de:48:0f:8e:a8:d4:bf:e6:be:bc:17:f2:ed +-----BEGIN CERTIFICATE----- +MIIFiTCCA3GgAwIBAgIQb77arXO9CEDii02+1PdbkTANBgkqhkiG9w0BAQsFADBO +MQswCQYDVQQGEwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQD +DBxTU0wuY29tIFRMUyBSU0EgUm9vdCBDQSAyMDIyMB4XDTIyMDgyNTE2MzQyMloX +DTQ2MDgxOTE2MzQyMVowTjELMAkGA1UEBhMCVVMxGDAWBgNVBAoMD1NTTCBDb3Jw +b3JhdGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgUlNBIFJvb3QgQ0EgMjAyMjCC +AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANCkCXJPQIgSYT41I57u9nTP +L3tYPc48DRAokC+X94xI2KDYJbFMsBFMF3NQ0CJKY7uB0ylu1bUJPiYYf7ISf5OY +t6/wNr/y7hienDtSxUcZXXTzZGbVXcdotL8bHAajvI9AI7YexoS9UcQbOcGV0ins +S657Lb85/bRi3pZ7QcacoOAGcvvwB5cJOYF0r/c0WRFXCsJbwST0MXMwgsadugL3 +PnxEX4MN8/HdIGkWCVDi1FW24IBydm5MR7d1VVm0U3TZlMZBrViKMWYPHqIbKUBO +L9975hYsLfy/7PO0+r4Y9ptJ1O4Fbtk085zx7AGL0SDGD6C1vBdOSHtRwvzpXGk3 +R2azaPgVKPC506QVzFpPulJwoxJF3ca6TvvC0PeoUidtbnm1jPx7jMEWTO6Af77w +dr5BUxIzrlo4QqvXDz5BjXYHMtWrifZOZ9mxQnUjbvPNQrL8VfVThxc7wDNY8VLS ++YCk8OjwO4s4zKTGkH8PnP2L0aPP2oOnaclQNtVcBdIKQXTbYxE3waWglksejBYS +d66UNHsef8JmAOSqg+qKkK3ONkRN0VHpvB/zagX9wHQfJRlAUW7qglFA35u5CCoG +AtUjHBPW6dvbxrB6y3snm/vg1UYk7RBLY0ulBY+6uB0rpvqR4pJSvezrZ5dtmi2f +gTIFZzL7SAg/2SW4BCUvAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0j +BBgwFoAU+y437uOEeicuzRk1sTN8/9REQrkwHQYDVR0OBBYEFPsuN+7jhHonLs0Z +NbEzfP/UREK5MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAjYlt +hEUY8U+zoO9opMAdrDC8Z2awms22qyIZZtM7QbUQnRC6cm4pJCAcAZli05bg4vsM +QtfhWsSWTVTNj8pDU/0quOr4ZcoBwq1gaAafORpR2eCNJvkLTqVTJXojpBzOCBvf +R4iyrT7gJ4eLSYwfqUdYe5byiB0YrrPRpgqU+tvT5TgKa3kSM/tKWTcWQA673vWJ +DPFs0/dRa1419dvAJuoSc06pkZCmF8NsLzjUo3KUQyxi4U5cMj29TH0ZR6LDSeeW +P4+a0zvkEdiLA9z2tmBVGKaBUfPhqBVq6+AL8BQx1rmMRTqoENjwuSfr98t67wVy +lrXEj5ZzxOhWc5y8aVFjvO9nHEMaX3cZHxj4HCUp+UmZKbaSPaKDN7EgkaibMOlq +bLQjk2UEqxHzDh1TJElTHaE/nUiSEeJ9DU/1172iWD54nR4fK/4huxoTtrEoZP2w +AgDHbICivRZQIA9ygV/MlP+7mea6kMvq+cYMwq7FGc4zoWtcu358NFcXrfA/rs3q +r5nsLFR+jM4uElZI7xc7P0peYNLcdDa8pUNjyw9bowJWCZ4kLOGGgYz+qxcs+sji +Mho6/4UIyYOf8kpIEFR3N+2ivEC+5BB09+Rbu7nzifmPQdjH5FCQNYA+HLhNkNPU +98OwoX6EyneSMSy4kLGCenROmxMmtNVQZlR4rmA= +-----END CERTIFICATE----- + +# Issuer: CN=SSL.com TLS ECC Root CA 2022 O=SSL Corporation +# Subject: CN=SSL.com TLS ECC Root CA 2022 O=SSL Corporation +# Label: "SSL.com TLS ECC Root CA 2022" +# Serial: 26605119622390491762507526719404364228 +# MD5 Fingerprint: 99:d7:5c:f1:51:36:cc:e9:ce:d9:19:2e:77:71:56:c5 +# SHA1 Fingerprint: 9f:5f:d9:1a:54:6d:f5:0c:71:f0:ee:7a:bd:17:49:98:84:73:e2:39 +# SHA256 Fingerprint: c3:2f:fd:9f:46:f9:36:d1:6c:36:73:99:09:59:43:4b:9a:d6:0a:af:bb:9e:7c:f3:36:54:f1:44:cc:1b:a1:43 +-----BEGIN CERTIFICATE----- +MIICOjCCAcCgAwIBAgIQFAP1q/s3ixdAW+JDsqXRxDAKBggqhkjOPQQDAzBOMQsw +CQYDVQQGEwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQDDBxT +U0wuY29tIFRMUyBFQ0MgUm9vdCBDQSAyMDIyMB4XDTIyMDgyNTE2MzM0OFoXDTQ2 +MDgxOTE2MzM0N1owTjELMAkGA1UEBhMCVVMxGDAWBgNVBAoMD1NTTCBDb3Jwb3Jh +dGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgRUNDIFJvb3QgQ0EgMjAyMjB2MBAG +ByqGSM49AgEGBSuBBAAiA2IABEUpNXP6wrgjzhR9qLFNoFs27iosU8NgCTWyJGYm +acCzldZdkkAZDsalE3D07xJRKF3nzL35PIXBz5SQySvOkkJYWWf9lCcQZIxPBLFN +SeR7T5v15wj4A4j3p8OSSxlUgaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSME +GDAWgBSJjy+j6CugFFR781a4Jl9nOAuc0DAdBgNVHQ4EFgQUiY8vo+groBRUe/NW +uCZfZzgLnNAwDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMDA2gAMGUCMFXjIlbp +15IkWE8elDIPDAI2wv2sdDJO4fscgIijzPvX6yv/N33w7deedWo1dlJF4AIxAMeN +b0Igj762TVntd00pxCAgRWSGOlDGxK0tk/UYfXLtqc/ErFc2KAhl3zx5Zn6g6g== +-----END CERTIFICATE----- + +# Issuer: CN=Atos TrustedRoot Root CA ECC TLS 2021 O=Atos +# Subject: CN=Atos TrustedRoot Root CA ECC TLS 2021 O=Atos +# Label: "Atos TrustedRoot Root CA ECC TLS 2021" +# Serial: 81873346711060652204712539181482831616 +# MD5 Fingerprint: 16:9f:ad:f1:70:ad:79:d6:ed:29:b4:d1:c5:79:70:a8 +# SHA1 Fingerprint: 9e:bc:75:10:42:b3:02:f3:81:f4:f7:30:62:d4:8f:c3:a7:51:b2:dd +# SHA256 Fingerprint: b2:fa:e5:3e:14:cc:d7:ab:92:12:06:47:01:ae:27:9c:1d:89:88:fa:cb:77:5f:a8:a0:08:91:4e:66:39:88:a8 +-----BEGIN CERTIFICATE----- +MIICFTCCAZugAwIBAgIQPZg7pmY9kGP3fiZXOATvADAKBggqhkjOPQQDAzBMMS4w +LAYDVQQDDCVBdG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgRUNDIFRMUyAyMDIxMQ0w +CwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0yMTA0MjIwOTI2MjNaFw00MTA0 +MTcwOTI2MjJaMEwxLjAsBgNVBAMMJUF0b3MgVHJ1c3RlZFJvb3QgUm9vdCBDQSBF +Q0MgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNVBAYTAkRFMHYwEAYHKoZI +zj0CAQYFK4EEACIDYgAEloZYKDcKZ9Cg3iQZGeHkBQcfl+3oZIK59sRxUM6KDP/X +tXa7oWyTbIOiaG6l2b4siJVBzV3dscqDY4PMwL502eCdpO5KTlbgmClBk1IQ1SQ4 +AjJn8ZQSb+/Xxd4u/RmAo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR2 +KCXWfeBmmnoJsmo7jjPXNtNPojAOBgNVHQ8BAf8EBAMCAYYwCgYIKoZIzj0EAwMD +aAAwZQIwW5kp85wxtolrbNa9d+F851F+uDrNozZffPc8dz7kUK2o59JZDCaOMDtu +CCrCp1rIAjEAmeMM56PDr9NJLkaCI2ZdyQAUEv049OGYa3cpetskz2VAv9LcjBHo +9H1/IISpQuQo +-----END CERTIFICATE----- + +# Issuer: CN=Atos TrustedRoot Root CA RSA TLS 2021 O=Atos +# Subject: CN=Atos TrustedRoot Root CA RSA TLS 2021 O=Atos +# Label: "Atos TrustedRoot Root CA RSA TLS 2021" +# Serial: 111436099570196163832749341232207667876 +# MD5 Fingerprint: d4:d3:46:b8:9a:c0:9c:76:5d:9e:3a:c3:b9:99:31:d2 +# SHA1 Fingerprint: 18:52:3b:0d:06:37:e4:d6:3a:df:23:e4:98:fb:5b:16:fb:86:74:48 +# SHA256 Fingerprint: 81:a9:08:8e:a5:9f:b3:64:c5:48:a6:f8:55:59:09:9b:6f:04:05:ef:bf:18:e5:32:4e:c9:f4:57:ba:00:11:2f +-----BEGIN CERTIFICATE----- +MIIFZDCCA0ygAwIBAgIQU9XP5hmTC/srBRLYwiqipDANBgkqhkiG9w0BAQwFADBM +MS4wLAYDVQQDDCVBdG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgUlNBIFRMUyAyMDIx +MQ0wCwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0yMTA0MjIwOTIxMTBaFw00 +MTA0MTcwOTIxMDlaMEwxLjAsBgNVBAMMJUF0b3MgVHJ1c3RlZFJvb3QgUm9vdCBD +QSBSU0EgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNVBAYTAkRFMIICIjAN +BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtoAOxHm9BYx9sKOdTSJNy/BBl01Z +4NH+VoyX8te9j2y3I49f1cTYQcvyAh5x5en2XssIKl4w8i1mx4QbZFc4nXUtVsYv +Ye+W/CBGvevUez8/fEc4BKkbqlLfEzfTFRVOvV98r61jx3ncCHvVoOX3W3WsgFWZ +kmGbzSoXfduP9LVq6hdKZChmFSlsAvFr1bqjM9xaZ6cF4r9lthawEO3NUDPJcFDs +GY6wx/J0W2tExn2WuZgIWWbeKQGb9Cpt0xU6kGpn8bRrZtkh68rZYnxGEFzedUln +nkL5/nWpo63/dgpnQOPF943HhZpZnmKaau1Fh5hnstVKPNe0OwANwI8f4UDErmwh +3El+fsqyjW22v5MvoVw+j8rtgI5Y4dtXz4U2OLJxpAmMkokIiEjxQGMYsluMWuPD +0xeqqxmjLBvk1cbiZnrXghmmOxYsL3GHX0WelXOTwkKBIROW1527k2gV+p2kHYzy +geBYBr3JtuP2iV2J+axEoctr+hbxx1A9JNr3w+SH1VbxT5Aw+kUJWdo0zuATHAR8 +ANSbhqRAvNncTFd+rrcztl524WWLZt+NyteYr842mIycg5kDcPOvdO3GDjbnvezB +c6eUWsuSZIKmAMFwoW4sKeFYV+xafJlrJaSQOoD0IJ2azsct+bJLKZWD6TWNp0lI +pw9MGZHQ9b8Q4HECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU +dEmZ0f+0emhFdcN+tNzMzjkz2ggwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB +DAUAA4ICAQAjQ1MkYlxt/T7Cz1UAbMVWiLkO3TriJQ2VSpfKgInuKs1l+NsW4AmS +4BjHeJi78+xCUvuppILXTdiK/ORO/auQxDh1MoSf/7OwKwIzNsAQkG8dnK/haZPs +o0UvFJ/1TCplQ3IM98P4lYsU84UgYt1UU90s3BiVaU+DR3BAM1h3Egyi61IxHkzJ +qM7F78PRreBrAwA0JrRUITWXAdxfG/F851X6LWh3e9NpzNMOa7pNdkTWwhWaJuyw +xfW70Xp0wmzNxbVe9kzmWy2B27O3Opee7c9GslA9hGCZcbUztVdF5kJHdWoOsAgM +rr3e97sPWD2PAzHoPYJQyi9eDF20l74gNAf0xBLh7tew2VktafcxBPTy+av5EzH4 +AXcOPUIjJsyacmdRIXrMPIWo6iFqO9taPKU0nprALN+AnCng33eU0aKAQv9qTFsR +0PXNor6uzFFcw9VUewyu1rkGd4Di7wcaaMxZUa1+XGdrudviB0JbuAEFWDlN5LuY +o7Ey7Nmj1m+UI/87tyll5gfp77YZ6ufCOB0yiJA8EytuzO+rdwY0d4RPcuSBhPm5 +dDTedk+SKlOxJTnbPP/lPqYO5Wue/9vsL3SD3460s6neFE3/MaNFcyT6lSnMEpcE +oji2jbDwN/zIIX8/syQbPYtuzE2wFg2WHYMfRsCbvUOZ58SWLs5fyQ== +-----END CERTIFICATE----- + +# Issuer: CN=TrustAsia Global Root CA G3 O=TrustAsia Technologies, Inc. +# Subject: CN=TrustAsia Global Root CA G3 O=TrustAsia Technologies, Inc. +# Label: "TrustAsia Global Root CA G3" +# Serial: 576386314500428537169965010905813481816650257167 +# MD5 Fingerprint: 30:42:1b:b7:bb:81:75:35:e4:16:4f:53:d2:94:de:04 +# SHA1 Fingerprint: 63:cf:b6:c1:27:2b:56:e4:88:8e:1c:23:9a:b6:2e:81:47:24:c3:c7 +# SHA256 Fingerprint: e0:d3:22:6a:eb:11:63:c2:e4:8f:f9:be:3b:50:b4:c6:43:1b:e7:bb:1e:ac:c5:c3:6b:5d:5e:c5:09:03:9a:08 +-----BEGIN CERTIFICATE----- +MIIFpTCCA42gAwIBAgIUZPYOZXdhaqs7tOqFhLuxibhxkw8wDQYJKoZIhvcNAQEM +BQAwWjELMAkGA1UEBhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dp +ZXMsIEluYy4xJDAiBgNVBAMMG1RydXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHMzAe +Fw0yMTA1MjAwMjEwMTlaFw00NjA1MTkwMjEwMTlaMFoxCzAJBgNVBAYTAkNOMSUw +IwYDVQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMuMSQwIgYDVQQDDBtU +cnVzdEFzaWEgR2xvYmFsIFJvb3QgQ0EgRzMwggIiMA0GCSqGSIb3DQEBAQUAA4IC +DwAwggIKAoICAQDAMYJhkuSUGwoqZdC+BqmHO1ES6nBBruL7dOoKjbmzTNyPtxNS +T1QY4SxzlZHFZjtqz6xjbYdT8PfxObegQ2OwxANdV6nnRM7EoYNl9lA+sX4WuDqK +AtCWHwDNBSHvBm3dIZwZQ0WhxeiAysKtQGIXBsaqvPPW5vxQfmZCHzyLpnl5hkA1 +nyDvP+uLRx+PjsXUjrYsyUQE49RDdT/VP68czH5GX6zfZBCK70bwkPAPLfSIC7Ep +qq+FqklYqL9joDiR5rPmd2jE+SoZhLsO4fWvieylL1AgdB4SQXMeJNnKziyhWTXA +yB1GJ2Faj/lN03J5Zh6fFZAhLf3ti1ZwA0pJPn9pMRJpxx5cynoTi+jm9WAPzJMs +hH/x/Gr8m0ed262IPfN2dTPXS6TIi/n1Q1hPy8gDVI+lhXgEGvNz8teHHUGf59gX +zhqcD0r83ERoVGjiQTz+LISGNzzNPy+i2+f3VANfWdP3kXjHi3dqFuVJhZBFcnAv +kV34PmVACxmZySYgWmjBNb9Pp1Hx2BErW+Canig7CjoKH8GB5S7wprlppYiU5msT +f9FkPz2ccEblooV7WIQn3MSAPmeamseaMQ4w7OYXQJXZRe0Blqq/DPNL0WP3E1jA +uPP6Z92bfW1K/zJMtSU7/xxnD4UiWQWRkUF3gdCFTIcQcf+eQxuulXUtgQIDAQAB +o2MwYTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFEDk5PIj7zjKsK5Xf/Ih +MBY027ySMB0GA1UdDgQWBBRA5OTyI+84yrCuV3/yITAWNNu8kjAOBgNVHQ8BAf8E +BAMCAQYwDQYJKoZIhvcNAQEMBQADggIBACY7UeFNOPMyGLS0XuFlXsSUT9SnYaP4 +wM8zAQLpw6o1D/GUE3d3NZ4tVlFEbuHGLige/9rsR82XRBf34EzC4Xx8MnpmyFq2 +XFNFV1pF1AWZLy4jVe5jaN/TG3inEpQGAHUNcoTpLrxaatXeL1nHo+zSh2bbt1S1 +JKv0Q3jbSwTEb93mPmY+KfJLaHEih6D4sTNjduMNhXJEIlU/HHzp/LgV6FL6qj6j +ITk1dImmasI5+njPtqzn59ZW/yOSLlALqbUHM/Q4X6RJpstlcHboCoWASzY9M/eV +VHUl2qzEc4Jl6VL1XP04lQJqaTDFHApXB64ipCz5xUG3uOyfT0gA+QEEVcys+TIx +xHWVBqB/0Y0n3bOppHKH/lmLmnp0Ft0WpWIp6zqW3IunaFnT63eROfjXy9mPX1on +AX1daBli2MjN9LdyR75bl87yraKZk62Uy5P2EgmVtqvXO9A/EcswFi55gORngS1d +7XB4tmBZrOFdRWOPyN9yaFvqHbgB8X7754qz41SgOAngPN5C8sLtLpvzHzW2Ntjj +gKGLzZlkD8Kqq7HK9W+eQ42EVJmzbsASZthwEPEGNTNDqJwuuhQxzhB/HIbjj9LV ++Hfsm6vxL2PZQl/gZ4FkkfGXL/xuJvYz+NO1+MRiqzFRJQJ6+N1rZdVtTTDIZbpo +FGWsJwt0ivKH +-----END CERTIFICATE----- + +# Issuer: CN=TrustAsia Global Root CA G4 O=TrustAsia Technologies, Inc. +# Subject: CN=TrustAsia Global Root CA G4 O=TrustAsia Technologies, Inc. +# Label: "TrustAsia Global Root CA G4" +# Serial: 451799571007117016466790293371524403291602933463 +# MD5 Fingerprint: 54:dd:b2:d7:5f:d8:3e:ed:7c:e0:0b:2e:cc:ed:eb:eb +# SHA1 Fingerprint: 57:73:a5:61:5d:80:b2:e6:ac:38:82:fc:68:07:31:ac:9f:b5:92:5a +# SHA256 Fingerprint: be:4b:56:cb:50:56:c0:13:6a:52:6d:f4:44:50:8d:aa:36:a0:b5:4f:42:e4:ac:38:f7:2a:f4:70:e4:79:65:4c +-----BEGIN CERTIFICATE----- +MIICVTCCAdygAwIBAgIUTyNkuI6XY57GU4HBdk7LKnQV1tcwCgYIKoZIzj0EAwMw +WjELMAkGA1UEBhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dpZXMs +IEluYy4xJDAiBgNVBAMMG1RydXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHNDAeFw0y +MTA1MjAwMjEwMjJaFw00NjA1MTkwMjEwMjJaMFoxCzAJBgNVBAYTAkNOMSUwIwYD +VQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMuMSQwIgYDVQQDDBtUcnVz +dEFzaWEgR2xvYmFsIFJvb3QgQ0EgRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATx +s8045CVD5d4ZCbuBeaIVXxVjAd7Cq92zphtnS4CDr5nLrBfbK5bKfFJV4hrhPVbw +LxYI+hW8m7tH5j/uqOFMjPXTNvk4XatwmkcN4oFBButJ+bAp3TPsUKV/eSm4IJij +YzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUpbtKl86zK3+kMd6Xg1mD +pm9xy94wHQYDVR0OBBYEFKW7SpfOsyt/pDHel4NZg6ZvccveMA4GA1UdDwEB/wQE +AwIBBjAKBggqhkjOPQQDAwNnADBkAjBe8usGzEkxn0AAbbd+NvBNEU/zy4k6LHiR +UKNbwMp1JvK/kF0LgoxgKJ/GcJpo5PECMFxYDlZ2z1jD1xCMuo6u47xkdUfFVZDj +/bpV6wfEU6s3qe4hsiFbYI89MvHVI5TWWA== +-----END CERTIFICATE----- + +# Issuer: CN=CommScope Public Trust ECC Root-01 O=CommScope +# Subject: CN=CommScope Public Trust ECC Root-01 O=CommScope +# Label: "CommScope Public Trust ECC Root-01" +# Serial: 385011430473757362783587124273108818652468453534 +# MD5 Fingerprint: 3a:40:a7:fc:03:8c:9c:38:79:2f:3a:a2:6c:b6:0a:16 +# SHA1 Fingerprint: 07:86:c0:d8:dd:8e:c0:80:98:06:98:d0:58:7a:ef:de:a6:cc:a2:5d +# SHA256 Fingerprint: 11:43:7c:da:7b:b4:5e:41:36:5f:45:b3:9a:38:98:6b:0d:e0:0d:ef:34:8e:0c:7b:b0:87:36:33:80:0b:c3:8b +-----BEGIN CERTIFICATE----- +MIICHTCCAaOgAwIBAgIUQ3CCd89NXTTxyq4yLzf39H91oJ4wCgYIKoZIzj0EAwMw +TjELMAkGA1UEBhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29t +bVNjb3BlIFB1YmxpYyBUcnVzdCBFQ0MgUm9vdC0wMTAeFw0yMTA0MjgxNzM1NDNa +Fw00NjA0MjgxNzM1NDJaME4xCzAJBgNVBAYTAlVTMRIwEAYDVQQKDAlDb21tU2Nv +cGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3QgRUNDIFJvb3QtMDEw +djAQBgcqhkjOPQIBBgUrgQQAIgNiAARLNumuV16ocNfQj3Rid8NeeqrltqLxeP0C +flfdkXmcbLlSiFS8LwS+uM32ENEp7LXQoMPwiXAZu1FlxUOcw5tjnSCDPgYLpkJE +hRGnSjot6dZoL0hOUysHP029uax3OVejQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSOB2LAUN3GGQYARnQE9/OufXVNMDAKBggq +hkjOPQQDAwNoADBlAjEAnDPfQeMjqEI2Jpc1XHvr20v4qotzVRVcrHgpD7oh2MSg +2NED3W3ROT3Ek2DS43KyAjB8xX6I01D1HiXo+k515liWpDVfG2XqYZpwI7UNo5uS +Um9poIyNStDuiw7LR47QjRE= +-----END CERTIFICATE----- + +# Issuer: CN=CommScope Public Trust ECC Root-02 O=CommScope +# Subject: CN=CommScope Public Trust ECC Root-02 O=CommScope +# Label: "CommScope Public Trust ECC Root-02" +# Serial: 234015080301808452132356021271193974922492992893 +# MD5 Fingerprint: 59:b0:44:d5:65:4d:b8:5c:55:19:92:02:b6:d1:94:b2 +# SHA1 Fingerprint: 3c:3f:ef:57:0f:fe:65:93:86:9e:a0:fe:b0:f6:ed:8e:d1:13:c7:e5 +# SHA256 Fingerprint: 2f:fb:7f:81:3b:bb:b3:c8:9a:b4:e8:16:2d:0f:16:d7:15:09:a8:30:cc:9d:73:c2:62:e5:14:08:75:d1:ad:4a +-----BEGIN CERTIFICATE----- +MIICHDCCAaOgAwIBAgIUKP2ZYEFHpgE6yhR7H+/5aAiDXX0wCgYIKoZIzj0EAwMw +TjELMAkGA1UEBhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29t +bVNjb3BlIFB1YmxpYyBUcnVzdCBFQ0MgUm9vdC0wMjAeFw0yMTA0MjgxNzQ0NTRa +Fw00NjA0MjgxNzQ0NTNaME4xCzAJBgNVBAYTAlVTMRIwEAYDVQQKDAlDb21tU2Nv +cGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3QgRUNDIFJvb3QtMDIw +djAQBgcqhkjOPQIBBgUrgQQAIgNiAAR4MIHoYx7l63FRD/cHB8o5mXxO1Q/MMDAL +j2aTPs+9xYa9+bG3tD60B8jzljHz7aRP+KNOjSkVWLjVb3/ubCK1sK9IRQq9qEmU +v4RDsNuESgMjGWdqb8FuvAY5N9GIIvejQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTmGHX/72DehKT1RsfeSlXjMjZ59TAKBggq +hkjOPQQDAwNnADBkAjAmc0l6tqvmSfR9Uj/UQQSugEODZXW5hYA4O9Zv5JOGq4/n +ich/m35rChJVYaoR4HkCMHfoMXGsPHED1oQmHhS48zs73u1Z/GtMMH9ZzkXpc2AV +mkzw5l4lIhVtwodZ0LKOag== +-----END CERTIFICATE----- + +# Issuer: CN=CommScope Public Trust RSA Root-01 O=CommScope +# Subject: CN=CommScope Public Trust RSA Root-01 O=CommScope +# Label: "CommScope Public Trust RSA Root-01" +# Serial: 354030733275608256394402989253558293562031411421 +# MD5 Fingerprint: 0e:b4:15:bc:87:63:5d:5d:02:73:d4:26:38:68:73:d8 +# SHA1 Fingerprint: 6d:0a:5f:f7:b4:23:06:b4:85:b3:b7:97:64:fc:ac:75:f5:33:f2:93 +# SHA256 Fingerprint: 02:bd:f9:6e:2a:45:dd:9b:f1:8f:c7:e1:db:df:21:a0:37:9b:a3:c9:c2:61:03:44:cf:d8:d6:06:fe:c1:ed:81 +-----BEGIN CERTIFICATE----- +MIIFbDCCA1SgAwIBAgIUPgNJgXUWdDGOTKvVxZAplsU5EN0wDQYJKoZIhvcNAQEL +BQAwTjELMAkGA1UEBhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwi +Q29tbVNjb3BlIFB1YmxpYyBUcnVzdCBSU0EgUm9vdC0wMTAeFw0yMTA0MjgxNjQ1 +NTRaFw00NjA0MjgxNjQ1NTNaME4xCzAJBgNVBAYTAlVTMRIwEAYDVQQKDAlDb21t +U2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3QgUlNBIFJvb3Qt +MDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwSGWjDR1C45FtnYSk +YZYSwu3D2iM0GXb26v1VWvZVAVMP8syMl0+5UMuzAURWlv2bKOx7dAvnQmtVzslh +suitQDy6uUEKBU8bJoWPQ7VAtYXR1HHcg0Hz9kXHgKKEUJdGzqAMxGBWBB0HW0al +DrJLpA6lfO741GIDuZNqihS4cPgugkY4Iw50x2tBt9Apo52AsH53k2NC+zSDO3Oj +WiE260f6GBfZumbCk6SP/F2krfxQapWsvCQz0b2If4b19bJzKo98rwjyGpg/qYFl +P8GMicWWMJoKz/TUyDTtnS+8jTiGU+6Xn6myY5QXjQ/cZip8UlF1y5mO6D1cv547 +KI2DAg+pn3LiLCuz3GaXAEDQpFSOm117RTYm1nJD68/A6g3czhLmfTifBSeolz7p +UcZsBSjBAg/pGG3svZwG1KdJ9FQFa2ww8esD1eo9anbCyxooSU1/ZOD6K9pzg4H/ +kQO9lLvkuI6cMmPNn7togbGEW682v3fuHX/3SZtS7NJ3Wn2RnU3COS3kuoL4b/JO +Hg9O5j9ZpSPcPYeoKFgo0fEbNttPxP/hjFtyjMcmAyejOQoBqsCyMWCDIqFPEgkB +Ea801M/XrmLTBQe0MXXgDW1XT2mH+VepuhX2yFJtocucH+X8eKg1mp9BFM6ltM6U +CBwJrVbl2rZJmkrqYxhTnCwuwwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4G +A1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUN12mmnQywsL5x6YVEFm45P3luG0wDQYJ +KoZIhvcNAQELBQADggIBAK+nz97/4L1CjU3lIpbfaOp9TSp90K09FlxD533Ahuh6 +NWPxzIHIxgvoLlI1pKZJkGNRrDSsBTtXAOnTYtPZKdVUvhwQkZyybf5Z/Xn36lbQ +nmhUQo8mUuJM3y+Xpi/SB5io82BdS5pYV4jvguX6r2yBS5KPQJqTRlnLX3gWsWc+ +QgvfKNmwrZggvkN80V4aCRckjXtdlemrwWCrWxhkgPut4AZ9HcpZuPN4KWfGVh2v +trV0KnahP/t1MJ+UXjulYPPLXAziDslg+MkfFoom3ecnf+slpoq9uC02EJqxWE2a +aE9gVOX2RhOOiKy8IUISrcZKiX2bwdgt6ZYD9KJ0DLwAHb/WNyVntHKLr4W96ioD +j8z7PEQkguIBpQtZtjSNMgsSDesnwv1B10A8ckYpwIzqug/xBpMu95yo9GA+o/E4 +Xo4TwbM6l4c/ksp4qRyv0LAbJh6+cOx69TOY6lz/KwsETkPdY34Op054A5U+1C0w +lREQKC6/oAI+/15Z0wUOlV9TRe9rh9VIzRamloPh37MG88EU26fsHItdkJANclHn +YfkUyq+Dj7+vsQpZXdxc1+SWrVtgHdqul7I52Qb1dgAT+GhMIbA1xNxVssnBQVoc +icCMb3SgazNNtQEo/a2tiRc7ppqEvOuM6sRxJKi6KfkIsidWNTJf6jn7MZrVGczw +-----END CERTIFICATE----- + +# Issuer: CN=CommScope Public Trust RSA Root-02 O=CommScope +# Subject: CN=CommScope Public Trust RSA Root-02 O=CommScope +# Label: "CommScope Public Trust RSA Root-02" +# Serial: 480062499834624527752716769107743131258796508494 +# MD5 Fingerprint: e1:29:f9:62:7b:76:e2:96:6d:f3:d4:d7:0f:ae:1f:aa +# SHA1 Fingerprint: ea:b0:e2:52:1b:89:93:4c:11:68:f2:d8:9a:ac:22:4c:a3:8a:57:ae +# SHA256 Fingerprint: ff:e9:43:d7:93:42:4b:4f:7c:44:0c:1c:3d:64:8d:53:63:f3:4b:82:dc:87:aa:7a:9f:11:8f:c5:de:e1:01:f1 +-----BEGIN CERTIFICATE----- +MIIFbDCCA1SgAwIBAgIUVBa/O345lXGN0aoApYYNK496BU4wDQYJKoZIhvcNAQEL +BQAwTjELMAkGA1UEBhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwi +Q29tbVNjb3BlIFB1YmxpYyBUcnVzdCBSU0EgUm9vdC0wMjAeFw0yMTA0MjgxNzE2 +NDNaFw00NjA0MjgxNzE2NDJaME4xCzAJBgNVBAYTAlVTMRIwEAYDVQQKDAlDb21t +U2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3QgUlNBIFJvb3Qt +MDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDh+g77aAASyE3VrCLE +NQE7xVTlWXZjpX/rwcRqmL0yjReA61260WI9JSMZNRTpf4mnG2I81lDnNJUDMrG0 +kyI9p+Kx7eZ7Ti6Hmw0zdQreqjXnfuU2mKKuJZ6VszKWpCtYHu8//mI0SFHRtI1C +rWDaSWqVcN3SAOLMV2MCe5bdSZdbkk6V0/nLKR8YSvgBKtJjCW4k6YnS5cciTNxz +hkcAqg2Ijq6FfUrpuzNPDlJwnZXjfG2WWy09X6GDRl224yW4fKcZgBzqZUPckXk2 +LHR88mcGyYnJ27/aaL8j7dxrrSiDeS/sOKUNNwFnJ5rpM9kzXzehxfCrPfp4sOcs +n/Y+n2Dg70jpkEUeBVF4GiwSLFworA2iI540jwXmojPOEXcT1A6kHkIfhs1w/tku +FT0du7jyU1fbzMZ0KZwYszZ1OC4PVKH4kh+Jlk+71O6d6Ts2QrUKOyrUZHk2EOH5 +kQMreyBUzQ0ZGshBMjTRsJnhkB4BQDa1t/qp5Xd1pCKBXbCL5CcSD1SIxtuFdOa3 +wNemKfrb3vOTlycEVS8KbzfFPROvCgCpLIscgSjX74Yxqa7ybrjKaixUR9gqiC6v +wQcQeKwRoi9C8DfF8rhW3Q5iLc4tVn5V8qdE9isy9COoR+jUKgF4z2rDN6ieZdIs +5fq6M8EGRPbmz6UNp2YINIos8wIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4G +A1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUR9DnsSL/nSz12Vdgs7GxcJXvYXowDQYJ +KoZIhvcNAQELBQADggIBAIZpsU0v6Z9PIpNojuQhmaPORVMbc0RTAIFhzTHjCLqB +KCh6krm2qMhDnscTJk3C2OVVnJJdUNjCK9v+5qiXz1I6JMNlZFxHMaNlNRPDk7n3 ++VGXu6TwYofF1gbTl4MgqX67tiHCpQ2EAOHyJxCDut0DgdXdaMNmEMjRdrSzbyme +APnCKfWxkxlSaRosTKCL4BWaMS/TiJVZbuXEs1DIFAhKm4sTg7GkcrI7djNB3Nyq +pgdvHSQSn8h2vS/ZjvQs7rfSOBAkNlEv41xdgSGn2rtO/+YHqP65DSdsu3BaVXoT +6fEqSWnHX4dXTEN5bTpl6TBcQe7rd6VzEojov32u5cSoHw2OHG1QAk8mGEPej1WF +sQs3BWDJVTkSBKEqz3EWnzZRSb9wO55nnPt7eck5HHisd5FUmrh1CoFSl+NmYWvt +PjgelmFV4ZFUjO2MJB+ByRCac5krFk5yAD9UG/iNuovnFNa2RU9g7Jauwy8CTl2d +lklyALKrdVwPaFsdZcJfMw8eD/A7hvWwTruc9+olBdytoptLFwG+Qt81IR2tq670 +v64fG9PiO/yzcnMcmyiQiRM9HcEARwmWmjgb3bHPDcK0RPOWlc4yOo80nOAXx17O +rg3bhzjlP1v9mxnhMUF6cKojawHhRUzNlM47ni3niAIi9G7oyOzWPPO5std3eqx7 +-----END CERTIFICATE----- + +# Issuer: CN=Telekom Security TLS ECC Root 2020 O=Deutsche Telekom Security GmbH +# Subject: CN=Telekom Security TLS ECC Root 2020 O=Deutsche Telekom Security GmbH +# Label: "Telekom Security TLS ECC Root 2020" +# Serial: 72082518505882327255703894282316633856 +# MD5 Fingerprint: c1:ab:fe:6a:10:2c:03:8d:bc:1c:22:32:c0:85:a7:fd +# SHA1 Fingerprint: c0:f8:96:c5:a9:3b:01:06:21:07:da:18:42:48:bc:e9:9d:88:d5:ec +# SHA256 Fingerprint: 57:8a:f4:de:d0:85:3f:4e:59:98:db:4a:ea:f9:cb:ea:8d:94:5f:60:b6:20:a3:8d:1a:3c:13:b2:bc:7b:a8:e1 +-----BEGIN CERTIFICATE----- +MIICQjCCAcmgAwIBAgIQNjqWjMlcsljN0AFdxeVXADAKBggqhkjOPQQDAzBjMQsw +CQYDVQQGEwJERTEnMCUGA1UECgweRGV1dHNjaGUgVGVsZWtvbSBTZWN1cml0eSBH +bWJIMSswKQYDVQQDDCJUZWxla29tIFNlY3VyaXR5IFRMUyBFQ0MgUm9vdCAyMDIw +MB4XDTIwMDgyNTA3NDgyMFoXDTQ1MDgyNTIzNTk1OVowYzELMAkGA1UEBhMCREUx +JzAlBgNVBAoMHkRldXRzY2hlIFRlbGVrb20gU2VjdXJpdHkgR21iSDErMCkGA1UE +AwwiVGVsZWtvbSBTZWN1cml0eSBUTFMgRUNDIFJvb3QgMjAyMDB2MBAGByqGSM49 +AgEGBSuBBAAiA2IABM6//leov9Wq9xCazbzREaK9Z0LMkOsVGJDZos0MKiXrPk/O +tdKPD/M12kOLAoC+b1EkHQ9rK8qfwm9QMuU3ILYg/4gND21Ju9sGpIeQkpT0CdDP +f8iAC8GXs7s1J8nCG6NCMEAwHQYDVR0OBBYEFONyzG6VmUex5rNhTNHLq+O6zd6f +MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2cA +MGQCMHVSi7ekEE+uShCLsoRbQuHmKjYC2qBuGT8lv9pZMo7k+5Dck2TOrbRBR2Di +z6fLHgIwN0GMZt9Ba9aDAEH9L1r3ULRn0SyocddDypwnJJGDSA3PzfdUga/sf+Rn +27iQ7t0l +-----END CERTIFICATE----- + +# Issuer: CN=Telekom Security TLS RSA Root 2023 O=Deutsche Telekom Security GmbH +# Subject: CN=Telekom Security TLS RSA Root 2023 O=Deutsche Telekom Security GmbH +# Label: "Telekom Security TLS RSA Root 2023" +# Serial: 44676229530606711399881795178081572759 +# MD5 Fingerprint: bf:5b:eb:54:40:cd:48:71:c4:20:8d:7d:de:0a:42:f2 +# SHA1 Fingerprint: 54:d3:ac:b3:bd:57:56:f6:85:9d:ce:e5:c3:21:e2:d4:ad:83:d0:93 +# SHA256 Fingerprint: ef:c6:5c:ad:bb:59:ad:b6:ef:e8:4d:a2:23:11:b3:56:24:b7:1b:3b:1e:a0:da:8b:66:55:17:4e:c8:97:86:46 +-----BEGIN CERTIFICATE----- +MIIFszCCA5ugAwIBAgIQIZxULej27HF3+k7ow3BXlzANBgkqhkiG9w0BAQwFADBj +MQswCQYDVQQGEwJERTEnMCUGA1UECgweRGV1dHNjaGUgVGVsZWtvbSBTZWN1cml0 +eSBHbWJIMSswKQYDVQQDDCJUZWxla29tIFNlY3VyaXR5IFRMUyBSU0EgUm9vdCAy +MDIzMB4XDTIzMDMyODEyMTY0NVoXDTQ4MDMyNzIzNTk1OVowYzELMAkGA1UEBhMC +REUxJzAlBgNVBAoMHkRldXRzY2hlIFRlbGVrb20gU2VjdXJpdHkgR21iSDErMCkG +A1UEAwwiVGVsZWtvbSBTZWN1cml0eSBUTFMgUlNBIFJvb3QgMjAyMzCCAiIwDQYJ +KoZIhvcNAQEBBQADggIPADCCAgoCggIBAO01oYGA88tKaVvC+1GDrib94W7zgRJ9 +cUD/h3VCKSHtgVIs3xLBGYSJwb3FKNXVS2xE1kzbB5ZKVXrKNoIENqil/Cf2SfHV +cp6R+SPWcHu79ZvB7JPPGeplfohwoHP89v+1VmLhc2o0mD6CuKyVU/QBoCcHcqMA +U6DksquDOFczJZSfvkgdmOGjup5czQRxUX11eKvzWarE4GC+j4NSuHUaQTXtvPM6 +Y+mpFEXX5lLRbtLevOP1Czvm4MS9Q2QTps70mDdsipWol8hHD/BeEIvnHRz+sTug +BTNoBUGCwQMrAcjnj02r6LX2zWtEtefdi+zqJbQAIldNsLGyMcEWzv/9FIS3R/qy +8XDe24tsNlikfLMR0cN3f1+2JeANxdKz+bi4d9s3cXFH42AYTyS2dTd4uaNir73J +co4vzLuu2+QVUhkHM/tqty1LkCiCc/4YizWN26cEar7qwU02OxY2kTLvtkCJkUPg +8qKrBC7m8kwOFjQgrIfBLX7JZkcXFBGk8/ehJImr2BrIoVyxo/eMbcgByU/J7MT8 +rFEz0ciD0cmfHdRHNCk+y7AO+oMLKFjlKdw/fKifybYKu6boRhYPluV75Gp6SG12 +mAWl3G0eQh5C2hrgUve1g8Aae3g1LDj1H/1Joy7SWWO/gLCMk3PLNaaZlSJhZQNg ++y+TS/qanIA7AgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUtqeX +gj10hZv3PJ+TmpV5dVKMbUcwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBS2 +p5eCPXSFm/c8n5OalXl1UoxtRzANBgkqhkiG9w0BAQwFAAOCAgEAqMxhpr51nhVQ +pGv7qHBFfLp+sVr8WyP6Cnf4mHGCDG3gXkaqk/QeoMPhk9tLrbKmXauw1GLLXrtm +9S3ul0A8Yute1hTWjOKWi0FpkzXmuZlrYrShF2Y0pmtjxrlO8iLpWA1WQdH6DErw +M807u20hOq6OcrXDSvvpfeWxm4bu4uB9tPcy/SKE8YXJN3nptT+/XOR0so8RYgDd +GGah2XsjX/GO1WfoVNpbOms2b/mBsTNHM3dA+VKq3dSDz4V4mZqTuXNnQkYRIer+ +CqkbGmVps4+uFrb2S1ayLfmlyOw7YqPta9BO1UAJpB+Y1zqlklkg5LB9zVtzaL1t +xKITDmcZuI1CfmwMmm6gJC3VRRvcxAIU/oVbZZfKTpBQCHpCNfnqwmbU+AGuHrS+ +w6jv/naaoqYfRvaE7fzbzsQCzndILIyy7MMAo+wsVRjBfhnu4S/yrYObnqsZ38aK +L4x35bcF7DvB7L6Gs4a8wPfc5+pbrrLMtTWGS9DiP7bY+A4A7l3j941Y/8+LN+lj +X273CXE2whJdV/LItM3z7gLfEdxquVeEHVlNjM7IDiPCtyaaEBRx/pOyiriA8A4Q +ntOoUAw3gi/q4Iqd4Sw5/7W0cwDk90imc6y/st53BIe0o82bNSQ3+pCTE4FCxpgm +dTdmQRCsu/WU48IxK63nI1bMNSWSs1A= +-----END CERTIFICATE----- diff --git a/vendor/certifi/src/certifi.app.src b/vendor/certifi/src/certifi.app.src index 74854b171..9906783e6 100644 --- a/vendor/certifi/src/certifi.app.src +++ b/vendor/certifi/src/certifi.app.src @@ -1,6 +1,6 @@ {application,certifi, [{description,"CA bundle adapted from Mozilla by https://certifi.io"}, - {vsn,"2.11.0"}, + {vsn,"2.13.0"}, {registered,[]}, {applications,[kernel,stdlib]}, {env,[]}, diff --git a/vendor_hex_core.sh b/vendor_hex_core.sh index a031cc5da..c7ac09f78 100755 --- a/vendor_hex_core.sh +++ b/vendor_hex_core.sh @@ -10,7 +10,7 @@ REBAR3_TOP=$(pwd)/apps/rebar export REBAR3_TOP pushd "$1" touch proto/* # force re-generation of protobuf elements -TARGET_ERLANG_VERSION=20 +TARGET_ERLANG_VERSION=25 export TARGET_ERLANG_VERSION rebar3 as dev compile ./vendor.sh src r3_