init sorbet
change lvstlnxltzvvrrovpprxupzxmzpymltt
commit aaf7838a84d619a98d8d4f714237774b01cadb31
author Alpha Chen <alpha@kejadlen.dev>
date
parent tmlznrsm
diff --git a/2019/ruby/Gemfile b/2019/ruby/Gemfile
index 88bd7be..b0069ec 100644
--- a/2019/ruby/Gemfile
+++ b/2019/ruby/Gemfile
@@ -6,3 +6,5 @@ git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
 
 gem "minitest"
 gem "pry"
+gem "sorbet"
+gem "sorbet-runtime"
diff --git a/2019/ruby/Gemfile.lock b/2019/ruby/Gemfile.lock
index 7990e3d..200e773 100644
--- a/2019/ruby/Gemfile.lock
+++ b/2019/ruby/Gemfile.lock
@@ -7,6 +7,10 @@ GEM
     pry (0.12.2)
       coderay (~> 1.1.0)
       method_source (~> 0.9.0)
+    sorbet (0.4.5109)
+      sorbet-static (= 0.4.5109)
+    sorbet-runtime (0.4.5109)
+    sorbet-static (0.4.5109-universal-darwin-14)
 
 PLATFORMS
   ruby
@@ -14,6 +18,8 @@ PLATFORMS
 DEPENDENCIES
   minitest
   pry
+  sorbet
+  sorbet-runtime
 
 BUNDLED WITH
    2.1.0.pre.3
diff --git a/2019/ruby/computer.rb b/2019/ruby/computer.rb
index c0d0984..b75df09 100644
--- a/2019/ruby/computer.rb
+++ b/2019/ruby/computer.rb
@@ -1,3 +1,4 @@
+# typed: false
 OPCODES = {
   1  => ->(m, _, _, a, b, c) { m[c] = m[a] + m[b]           ; nil }, # add
   2  => ->(m, _, _, a, b, c) { m[c] = m[a] * m[b]           ; nil }, # multiply
diff --git a/2019/ruby/day_01.rb b/2019/ruby/day_01.rb
index c766399..2c617f1 100644
--- a/2019/ruby/day_01.rb
+++ b/2019/ruby/day_01.rb
@@ -1,3 +1,4 @@
+# typed: false
 # puts ARGF.read.lines.map(&:to_i).map {|mass|
 #   (mass / 3.0).floor - 2
 # }.sum
diff --git a/2019/ruby/day_02.rb b/2019/ruby/day_02.rb
index 014ac98..eb0738c 100644
--- a/2019/ruby/day_02.rb
+++ b/2019/ruby/day_02.rb
@@ -1,3 +1,4 @@
+# typed: false
 require_relative "computer"
 
 program = ARGF.read.split(?,).map(&:to_i)
diff --git a/2019/ruby/day_03.rb b/2019/ruby/day_03.rb
index f29e025..510df15 100644
--- a/2019/ruby/day_03.rb
+++ b/2019/ruby/day_03.rb
@@ -1,3 +1,4 @@
+# typed: false
 wire_paths = ARGF.read.lines.map {|l|
   l.split(?,).map {|i| [i[0], i[1..-1].to_i] }
 }
diff --git a/2019/ruby/day_04.rb b/2019/ruby/day_04.rb
index 42efdf6..4fc9629 100644
--- a/2019/ruby/day_04.rb
+++ b/2019/ruby/day_04.rb
@@ -1,3 +1,4 @@
+# typed: strict
 puts (236491..713787).map(&:to_s).count {|password|
   matching_digits = password.scan(/(.)\1/)
 
diff --git a/2019/ruby/day_05.rb b/2019/ruby/day_05.rb
index c1353b2..21f4e11 100644
--- a/2019/ruby/day_05.rb
+++ b/2019/ruby/day_05.rb
@@ -1,3 +1,4 @@
+# typed: false
 require_relative "computer"
 
 program = ARGF.read.split(?,).map(&:to_i)
diff --git a/2019/ruby/sorbet/config b/2019/ruby/sorbet/config
new file mode 100644
index 0000000..4e06c20
--- /dev/null
+++ b/2019/ruby/sorbet/config
@@ -0,0 +1,3 @@
+--dir
+.
+--ignore=.direnv
diff --git a/2019/ruby/sorbet/rbi/hidden-definitions/errors.txt b/2019/ruby/sorbet/rbi/hidden-definitions/errors.txt
new file mode 100644
index 0000000..8c98339
--- /dev/null
+++ b/2019/ruby/sorbet/rbi/hidden-definitions/errors.txt
@@ -0,0 +1,4249 @@
+# This file is autogenerated. Do not edit it by hand. Regenerate it with:
+#   srb rbi hidden-definitions
+
+# typed: autogenerated
+
+# wrong constant name <DeclBuilderForProcs>
+# wrong constant name <DeclBuilderForProcs>
+# wrong constant name <Class:<DeclBuilderForProcs>>
+# wrong constant name <Magic>
+# wrong constant name <Magic>
+# wrong constant name <Class:<Magic>>
+# wrong constant name <RESERVED_0>
+# wrong constant name <RESERVED_100>
+# wrong constant name <RESERVED_101>
+# wrong constant name <RESERVED_102>
+# wrong constant name <RESERVED_103>
+# wrong constant name <RESERVED_104>
+# wrong constant name <RESERVED_105>
+# wrong constant name <RESERVED_106>
+# wrong constant name <RESERVED_107>
+# wrong constant name <RESERVED_108>
+# wrong constant name <RESERVED_109>
+# wrong constant name <RESERVED_10>
+# wrong constant name <RESERVED_110>
+# wrong constant name <RESERVED_111>
+# wrong constant name <RESERVED_112>
+# wrong constant name <RESERVED_113>
+# wrong constant name <RESERVED_114>
+# wrong constant name <RESERVED_115>
+# wrong constant name <RESERVED_116>
+# wrong constant name <RESERVED_117>
+# wrong constant name <RESERVED_118>
+# wrong constant name <RESERVED_119>
+# wrong constant name <RESERVED_11>
+# wrong constant name <RESERVED_120>
+# wrong constant name <RESERVED_121>
+# wrong constant name <RESERVED_12>
+# wrong constant name <RESERVED_13>
+# wrong constant name <RESERVED_14>
+# wrong constant name <RESERVED_15>
+# wrong constant name <RESERVED_16>
+# wrong constant name <RESERVED_17>
+# wrong constant name <RESERVED_18>
+# wrong constant name <RESERVED_19>
+# wrong constant name <RESERVED_1>
+# wrong constant name <RESERVED_20>
+# wrong constant name <RESERVED_21>
+# wrong constant name <RESERVED_22>
+# wrong constant name <RESERVED_23>
+# wrong constant name <RESERVED_24>
+# wrong constant name <RESERVED_25>
+# wrong constant name <RESERVED_26>
+# wrong constant name <RESERVED_27>
+# wrong constant name <RESERVED_28>
+# wrong constant name <RESERVED_29>
+# wrong constant name <RESERVED_2>
+# wrong constant name <RESERVED_30>
+# wrong constant name <RESERVED_31>
+# wrong constant name <RESERVED_32>
+# wrong constant name <RESERVED_33>
+# wrong constant name <RESERVED_34>
+# wrong constant name <RESERVED_35>
+# wrong constant name <RESERVED_36>
+# wrong constant name <RESERVED_37>
+# wrong constant name <RESERVED_38>
+# wrong constant name <RESERVED_39>
+# wrong constant name <RESERVED_3>
+# wrong constant name <RESERVED_40>
+# wrong constant name <RESERVED_41>
+# wrong constant name <RESERVED_42>
+# wrong constant name <RESERVED_43>
+# wrong constant name <RESERVED_44>
+# wrong constant name <RESERVED_45>
+# wrong constant name <RESERVED_46>
+# wrong constant name <RESERVED_47>
+# wrong constant name <RESERVED_48>
+# wrong constant name <RESERVED_49>
+# wrong constant name <RESERVED_4>
+# wrong constant name <RESERVED_50>
+# wrong constant name <RESERVED_51>
+# wrong constant name <RESERVED_52>
+# wrong constant name <RESERVED_53>
+# wrong constant name <RESERVED_54>
+# wrong constant name <RESERVED_55>
+# wrong constant name <RESERVED_56>
+# wrong constant name <RESERVED_57>
+# wrong constant name <RESERVED_58>
+# wrong constant name <RESERVED_59>
+# wrong constant name <RESERVED_5>
+# wrong constant name <RESERVED_60>
+# wrong constant name <RESERVED_61>
+# wrong constant name <RESERVED_62>
+# wrong constant name <RESERVED_63>
+# wrong constant name <RESERVED_64>
+# wrong constant name <RESERVED_65>
+# wrong constant name <RESERVED_66>
+# wrong constant name <RESERVED_67>
+# wrong constant name <RESERVED_68>
+# wrong constant name <RESERVED_69>
+# wrong constant name <RESERVED_6>
+# wrong constant name <RESERVED_70>
+# wrong constant name <RESERVED_71>
+# wrong constant name <RESERVED_72>
+# wrong constant name <RESERVED_73>
+# wrong constant name <RESERVED_74>
+# wrong constant name <RESERVED_75>
+# wrong constant name <RESERVED_76>
+# wrong constant name <RESERVED_77>
+# wrong constant name <RESERVED_78>
+# wrong constant name <RESERVED_79>
+# wrong constant name <RESERVED_7>
+# wrong constant name <RESERVED_80>
+# wrong constant name <RESERVED_81>
+# wrong constant name <RESERVED_82>
+# wrong constant name <RESERVED_83>
+# wrong constant name <RESERVED_84>
+# wrong constant name <RESERVED_85>
+# wrong constant name <RESERVED_86>
+# wrong constant name <RESERVED_87>
+# wrong constant name <RESERVED_88>
+# wrong constant name <RESERVED_89>
+# wrong constant name <RESERVED_8>
+# wrong constant name <RESERVED_90>
+# wrong constant name <RESERVED_91>
+# wrong constant name <RESERVED_92>
+# wrong constant name <RESERVED_93>
+# wrong constant name <RESERVED_94>
+# wrong constant name <RESERVED_95>
+# wrong constant name <RESERVED_96>
+# wrong constant name <RESERVED_97>
+# wrong constant name <RESERVED_98>
+# wrong constant name <RESERVED_99>
+# wrong constant name <RESERVED_9>
+# wrong constant name <TypeAlias>
+# wrong constant name <TypeAlias>
+# wrong constant name <any>
+# wrong constant name <any>
+# wrong constant name <root>
+# wrong constant name <Class:<root>>
+# wrong constant name <todo sym>
+# wrong constant name <todo sym>
+# uninitialized constant Abbrev
+# uninitialized constant Abbrev
+# undefined method `connect_internal<defaultArg>1' for class `Addrinfo'
+# wrong constant name connect_internal<defaultArg>1
+# wrong constant name connect_internal
+# undefined method `pack<defaultArg>1' for class `Array'
+# wrong constant name bsearch
+# wrong constant name bsearch_index
+# wrong constant name collect!
+# wrong constant name deconstruct
+# wrong constant name dig
+# wrong constant name flatten!
+# wrong constant name intersection
+# wrong constant name pack<defaultArg>1
+# wrong constant name pack
+# wrong constant name replace
+# wrong constant name shelljoin
+# wrong constant name to_h
+# wrong constant name try_convert
+# wrong constant name __binding__
+# wrong constant name initialize
+# wrong constant name <Class:BasicObject>
+# uninitialized constant Benchmark
+# uninitialized constant Benchmark
+# wrong constant name clone
+# wrong constant name interpret_loosely
+# wrong constant name clone
+# wrong constant name irb
+# uninitialized constant Bundler::Dependency::TYPES
+# wrong constant name branch
+# wrong constant name expanded_platforms
+# wrong constant name git
+# undefined singleton method `report<defaultArg>1' for `Bundler::Env'
+# wrong constant name <static-init>
+# wrong constant name environment
+# wrong constant name report<defaultArg>1
+# wrong constant name report
+# wrong constant name write
+# wrong constant name <Class:Base>
+# wrong constant name <Class:CompactIndex>
+# wrong constant name <Class:Dependency>
+# wrong constant name <Class:Downloader>
+# wrong constant name <Class:Index>
+# wrong constant name <Class:TooManyRequestsError>
+# wrong constant name fetch_spec
+# wrong constant name fetchers
+# wrong constant name http_proxy
+# wrong constant name initialize
+# wrong constant name specs
+# wrong constant name specs_with_retry
+# wrong constant name uri
+# wrong constant name use_api
+# wrong constant name user_agent
+# wrong constant name initialize
+# wrong constant name initialize
+# wrong constant name api_fetcher?
+# wrong constant name available?
+# wrong constant name display_uri
+# wrong constant name downloader
+# wrong constant name fetch_uri
+# wrong constant name initialize
+# wrong constant name remote
+# wrong constant name remote_uri
+# wrong constant name <static-init>
+# wrong constant name initialize
+# wrong constant name <Class:ClientFetcher>
+# wrong constant name available?
+# wrong constant name fetch_spec
+# wrong constant name specs
+# wrong constant name specs_for_names
+# uninitialized constant Bundler::Fetcher::CompactIndex::ClientFetcher::Elem
+# wrong constant name call
+# wrong constant name fetcher
+# wrong constant name fetcher=
+# wrong constant name ui
+# wrong constant name ui=
+# wrong constant name <static-init>
+# wrong constant name []
+# wrong constant name members
+# wrong constant name <static-init>
+# wrong constant name compact_index_request
+# undefined method `dependency_api_uri<defaultArg>1' for class `Bundler::Fetcher::Dependency'
+# undefined method `specs<defaultArg>1' for class `Bundler::Fetcher::Dependency'
+# undefined method `specs<defaultArg>2' for class `Bundler::Fetcher::Dependency'
+# wrong constant name dependency_api_uri<defaultArg>1
+# wrong constant name dependency_api_uri
+# wrong constant name dependency_specs
+# wrong constant name get_formatted_specs_and_deps
+# wrong constant name specs<defaultArg>1
+# wrong constant name specs<defaultArg>2
+# wrong constant name specs
+# wrong constant name unmarshalled_dep_gems
+# wrong constant name <static-init>
+# undefined method `fetch<defaultArg>1' for class `Bundler::Fetcher::Downloader'
+# undefined method `fetch<defaultArg>2' for class `Bundler::Fetcher::Downloader'
+# wrong constant name connection
+# wrong constant name fetch<defaultArg>1
+# wrong constant name fetch<defaultArg>2
+# wrong constant name fetch
+# wrong constant name initialize
+# wrong constant name redirect_limit
+# wrong constant name request
+# wrong constant name <static-init>
+# wrong constant name fetch_spec
+# wrong constant name specs
+# wrong constant name <static-init>
+# undefined method `initialize<defaultArg>1' for class `Bundler::Fetcher::SSLError'
+# wrong constant name initialize<defaultArg>1
+# wrong constant name initialize
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name api_timeout
+# wrong constant name api_timeout=
+# wrong constant name disable_endpoint
+# wrong constant name disable_endpoint=
+# wrong constant name max_retries
+# wrong constant name max_retries=
+# wrong constant name redirect_limit
+# wrong constant name redirect_limit=
+# wrong constant name link
+# undefined singleton method `cp_lr<defaultArg>1' for `Bundler::FileUtils'
+# undefined singleton method `cp_lr<defaultArg>2' for `Bundler::FileUtils'
+# undefined singleton method `cp_lr<defaultArg>3' for `Bundler::FileUtils'
+# undefined singleton method `cp_lr<defaultArg>4' for `Bundler::FileUtils'
+# undefined singleton method `link_entry<defaultArg>1' for `Bundler::FileUtils'
+# undefined singleton method `link_entry<defaultArg>2' for `Bundler::FileUtils'
+# wrong constant name cp_lr<defaultArg>1
+# wrong constant name cp_lr<defaultArg>2
+# wrong constant name cp_lr<defaultArg>3
+# wrong constant name cp_lr<defaultArg>4
+# wrong constant name cp_lr
+# wrong constant name link_entry<defaultArg>1
+# wrong constant name link_entry<defaultArg>2
+# wrong constant name link_entry
+# undefined method `git_push<defaultArg>1' for class `Bundler::GemHelper'
+# undefined method `initialize<defaultArg>1' for class `Bundler::GemHelper'
+# undefined method `initialize<defaultArg>2' for class `Bundler::GemHelper'
+# undefined method `install_gem<defaultArg>1' for class `Bundler::GemHelper'
+# undefined method `install_gem<defaultArg>2' for class `Bundler::GemHelper'
+# undefined method `perform_git_push<defaultArg>1' for class `Bundler::GemHelper'
+# wrong constant name allowed_push_host
+# wrong constant name already_tagged?
+# wrong constant name base
+# wrong constant name build_gem
+# wrong constant name built_gem_path
+# wrong constant name clean?
+# wrong constant name committed?
+# wrong constant name gem_key
+# wrong constant name gem_push?
+# wrong constant name gem_push_host
+# wrong constant name gemspec
+# wrong constant name git_push<defaultArg>1
+# wrong constant name git_push
+# wrong constant name guard_clean
+# wrong constant name initialize<defaultArg>1
+# wrong constant name initialize<defaultArg>2
+# wrong constant name initialize
+# wrong constant name install
+# wrong constant name install_gem<defaultArg>1
+# wrong constant name install_gem<defaultArg>2
+# wrong constant name install_gem
+# wrong constant name name
+# wrong constant name perform_git_push<defaultArg>1
+# wrong constant name perform_git_push
+# wrong constant name rubygem_push
+# wrong constant name sh
+# wrong constant name sh_with_input
+# wrong constant name sh_with_status
+# wrong constant name spec_path
+# wrong constant name tag_version
+# wrong constant name version
+# wrong constant name version_tag
+# undefined singleton method `install_tasks<defaultArg>1' for `Bundler::GemHelper'
+# wrong constant name <static-init>
+# wrong constant name gemspec
+# wrong constant name install_tasks<defaultArg>1
+# wrong constant name install_tasks
+# wrong constant name instance
+# wrong constant name instance=
+# wrong constant name <static-init>
+# undefined method `initialize<defaultArg>1' for class `Bundler::GemVersionPromoter'
+# undefined method `initialize<defaultArg>2' for class `Bundler::GemVersionPromoter'
+# wrong constant name initialize<defaultArg>1
+# wrong constant name initialize<defaultArg>2
+# wrong constant name initialize
+# wrong constant name level
+# wrong constant name level=
+# wrong constant name locked_specs
+# wrong constant name major?
+# wrong constant name minor?
+# wrong constant name prerelease_specified
+# wrong constant name prerelease_specified=
+# wrong constant name sort_versions
+# wrong constant name strict
+# wrong constant name strict=
+# wrong constant name unlock_gems
+# wrong constant name <static-init>
+# undefined method `initialize<defaultArg>1' for class `Bundler::Graph'
+# undefined method `initialize<defaultArg>2' for class `Bundler::Graph'
+# undefined method `initialize<defaultArg>3' for class `Bundler::Graph'
+# undefined method `initialize<defaultArg>4' for class `Bundler::Graph'
+# wrong constant name <Class:GraphVizClient>
+# wrong constant name edge_options
+# wrong constant name groups
+# wrong constant name initialize<defaultArg>1
+# wrong constant name initialize<defaultArg>2
+# wrong constant name initialize<defaultArg>3
+# wrong constant name initialize<defaultArg>4
+# wrong constant name initialize
+# wrong constant name node_options
+# wrong constant name output_file
+# wrong constant name output_format
+# wrong constant name relations
+# wrong constant name viz
+# wrong constant name g
+# wrong constant name initialize
+# wrong constant name run
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# uninitialized constant Bundler::Index::Elem
+# undefined method `initialize<defaultArg>1' for class `Bundler::Injector'
+# wrong constant name initialize<defaultArg>1
+# wrong constant name initialize
+# wrong constant name inject
+# wrong constant name remove
+# undefined singleton method `inject<defaultArg>1' for `Bundler::Injector'
+# undefined singleton method `remove<defaultArg>1' for `Bundler::Injector'
+# wrong constant name <static-init>
+# wrong constant name inject<defaultArg>1
+# wrong constant name inject
+# wrong constant name remove<defaultArg>1
+# wrong constant name remove
+# undefined method `generate_bundler_executable_stubs<defaultArg>1' for class `Bundler::Installer'
+# wrong constant name generate_bundler_executable_stubs<defaultArg>1
+# wrong constant name generate_bundler_executable_stubs
+# wrong constant name generate_standalone_bundler_executable_stubs
+# wrong constant name initialize
+# wrong constant name post_install_messages
+# wrong constant name run
+# undefined singleton method `install<defaultArg>1' for `Bundler::Installer'
+# wrong constant name <static-init>
+# wrong constant name ambiguous_gems
+# wrong constant name ambiguous_gems=
+# wrong constant name install<defaultArg>1
+# wrong constant name install
+# uninitialized constant Bundler::Molinillo::DependencyGraph::Elem
+# uninitialized constant Bundler::Molinillo::DependencyGraph::Log::Elem
+# undefined method `_recursive_predecessors<defaultArg>1' for class `Bundler::Molinillo::DependencyGraph::Vertex'
+# undefined method `_recursive_successors<defaultArg>1' for class `Bundler::Molinillo::DependencyGraph::Vertex'
+# wrong constant name _recursive_predecessors<defaultArg>1
+# wrong constant name _recursive_predecessors
+# wrong constant name _recursive_successors<defaultArg>1
+# wrong constant name _recursive_successors
+# undefined method `app_cache_path<defaultArg>1' for module `Bundler::Plugin::API::Source'
+# undefined method `cache<defaultArg>1' for module `Bundler::Plugin::API::Source'
+# undefined method `post_install<defaultArg>1' for module `Bundler::Plugin::API::Source'
+# wrong constant name ==
+# wrong constant name app_cache_dirname
+# wrong constant name app_cache_path<defaultArg>1
+# wrong constant name app_cache_path
+# wrong constant name bundler_plugin_api_source?
+# wrong constant name cache<defaultArg>1
+# wrong constant name cache
+# wrong constant name cached!
+# wrong constant name can_lock?
+# wrong constant name dependency_names
+# wrong constant name dependency_names=
+# wrong constant name double_check_for
+# wrong constant name eql?
+# wrong constant name fetch_gemspec_files
+# wrong constant name gem_install_dir
+# wrong constant name hash
+# wrong constant name include?
+# wrong constant name initialize
+# wrong constant name install
+# wrong constant name install_path
+# wrong constant name installed?
+# wrong constant name name
+# wrong constant name options
+# wrong constant name options_to_lock
+# wrong constant name post_install<defaultArg>1
+# wrong constant name post_install
+# wrong constant name remote!
+# wrong constant name root
+# wrong constant name specs
+# wrong constant name to_lock
+# wrong constant name to_s
+# wrong constant name unlock!
+# wrong constant name unmet_deps
+# wrong constant name uri
+# wrong constant name uri_hash
+# wrong constant name <static-init>
+# wrong constant name <Class:CommandConflict>
+# wrong constant name <Class:SourceConflict>
+# wrong constant name installed_plugins
+# wrong constant name plugin_commands
+# wrong constant name initialize
+# wrong constant name <static-init>
+# wrong constant name initialize
+# wrong constant name <static-init>
+# wrong constant name <Class:Git>
+# wrong constant name <Class:Rubygems>
+# wrong constant name install
+# wrong constant name install_definition
+# undefined method `generate_bin<defaultArg>1' for class `Bundler::Plugin::Installer::Git'
+# uninitialized constant Bundler::Plugin::Installer::Git::DEFAULT_GLOB
+# wrong constant name generate_bin<defaultArg>1
+# wrong constant name generate_bin
+# wrong constant name <static-init>
+# uninitialized constant Bundler::Plugin::Installer::Rubygems::API_REQUEST_LIMIT
+# uninitialized constant Bundler::Plugin::Installer::Rubygems::API_REQUEST_SIZE
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name list
+# undefined singleton method `lock<defaultArg>1' for `Bundler::ProcessLock'
+# wrong constant name <static-init>
+# wrong constant name lock<defaultArg>1
+# wrong constant name lock
+# undefined method `initialize<defaultArg>1' for class `Bundler::Retry'
+# undefined method `initialize<defaultArg>2' for class `Bundler::Retry'
+# wrong constant name attempt
+# wrong constant name attempts
+# wrong constant name current_run
+# wrong constant name current_run=
+# wrong constant name initialize<defaultArg>1
+# wrong constant name initialize<defaultArg>2
+# wrong constant name initialize
+# wrong constant name name
+# wrong constant name name=
+# wrong constant name total_runs
+# wrong constant name total_runs=
+# wrong constant name <static-init>
+# wrong constant name attempts
+# wrong constant name default_attempts
+# wrong constant name default_retries
+# uninitialized constant Bundler::RubyGemsGemInstaller::ENV_PATHS
+# wrong constant name <static-init>
+# wrong constant name add_to_load_path
+# wrong constant name all_specs
+# wrong constant name backport_ext_builder_monitor
+# wrong constant name correct_for_windows_path
+# wrong constant name default_stubs
+# wrong constant name find_name
+# wrong constant name gem_remote_fetcher
+# wrong constant name stub_rubygems
+# wrong constant name use_gemdeps
+# undefined method `initialize<defaultArg>1' for class `Bundler::Settings::Mirror'
+# undefined method `initialize<defaultArg>2' for class `Bundler::Settings::Mirror'
+# undefined method `validate!<defaultArg>1' for class `Bundler::Settings::Mirror'
+# wrong constant name ==
+# wrong constant name fallback_timeout
+# wrong constant name fallback_timeout=
+# wrong constant name initialize<defaultArg>1
+# wrong constant name initialize<defaultArg>2
+# wrong constant name initialize
+# wrong constant name uri
+# wrong constant name uri=
+# wrong constant name valid?
+# wrong constant name validate!<defaultArg>1
+# wrong constant name validate!
+# wrong constant name <static-init>
+# undefined method `initialize<defaultArg>1' for class `Bundler::Settings::Mirrors'
+# wrong constant name each
+# wrong constant name for
+# wrong constant name initialize<defaultArg>1
+# wrong constant name initialize
+# wrong constant name parse
+# wrong constant name <static-init>
+# wrong constant name <Class:Rule>
+# wrong constant name description
+# wrong constant name fail!
+# wrong constant name initialize
+# wrong constant name k
+# wrong constant name set
+# wrong constant name validate!
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name validate!
+# uninitialized constant Bundler::SpecSet::Elem
+# undefined method `help<defaultArg>1' for class `Bundler::Thor'
+# undefined method `help<defaultArg>2' for class `Bundler::Thor'
+# wrong constant name <Class:Actions>
+# wrong constant name <Class:AmbiguousCommandError>
+# wrong constant name <Class:Argument>
+# wrong constant name <Class:Arguments>
+# wrong constant name <Class:Base>
+# wrong constant name <Class:Command>
+# wrong constant name <Class:CoreExt>
+# wrong constant name <Class:DynamicCommand>
+# wrong constant name <Class:Error>
+# wrong constant name <Class:Group>
+# wrong constant name <Class:HiddenCommand>
+# wrong constant name <Class:Invocation>
+# wrong constant name <Class:InvocationError>
+# wrong constant name <Class:LineEditor>
+# wrong constant name <Class:MalformattedArgumentError>
+# wrong constant name <Class:Option>
+# wrong constant name <Class:Options>
+# wrong constant name <Class:RequiredArgumentMissingError>
+# uninitialized constant Bundler::Thor::SHELL_DELEGATED_METHODS
+# wrong constant name <Class:Sandbox>
+# wrong constant name <Class:Shell>
+# wrong constant name <Class:UndefinedCommandError>
+# wrong constant name <Class:UnknownArgumentError>
+# wrong constant name <Class:Util>
+# wrong constant name help<defaultArg>1
+# wrong constant name help<defaultArg>2
+# wrong constant name help
+# undefined method `apply<defaultArg>1' for module `Bundler::Thor::Actions'
+# undefined method `chmod<defaultArg>1' for module `Bundler::Thor::Actions'
+# undefined method `empty_directory<defaultArg>1' for module `Bundler::Thor::Actions'
+# undefined method `initialize<defaultArg>1' for module `Bundler::Thor::Actions'
+# undefined method `initialize<defaultArg>2' for module `Bundler::Thor::Actions'
+# undefined method `initialize<defaultArg>3' for module `Bundler::Thor::Actions'
+# undefined method `inside<defaultArg>1' for module `Bundler::Thor::Actions'
+# undefined method `inside<defaultArg>2' for module `Bundler::Thor::Actions'
+# undefined method `relative_to_original_destination_root<defaultArg>1' for module `Bundler::Thor::Actions'
+# undefined method `remove_dir<defaultArg>1' for module `Bundler::Thor::Actions'
+# undefined method `remove_file<defaultArg>1' for module `Bundler::Thor::Actions'
+# undefined method `run<defaultArg>1' for module `Bundler::Thor::Actions'
+# undefined method `run_ruby_script<defaultArg>1' for module `Bundler::Thor::Actions'
+# wrong constant name <Class:CapturableERB>
+# wrong constant name <Class:ClassMethods>
+# wrong constant name <Class:CreateFile>
+# wrong constant name <Class:CreateLink>
+# wrong constant name <Class:Directory>
+# wrong constant name <Class:EmptyDirectory>
+# wrong constant name <Class:InjectIntoFile>
+# wrong constant name _cleanup_options_and_set
+# wrong constant name _shared_configuration
+# wrong constant name action
+# wrong constant name add_file
+# wrong constant name add_link
+# wrong constant name append_file
+# wrong constant name append_to_file
+# wrong constant name apply<defaultArg>1
+# wrong constant name apply
+# wrong constant name behavior
+# wrong constant name behavior=
+# wrong constant name chmod<defaultArg>1
+# wrong constant name chmod
+# wrong constant name comment_lines
+# wrong constant name copy_file
+# wrong constant name create_file
+# wrong constant name create_link
+# wrong constant name destination_root
+# wrong constant name destination_root=
+# wrong constant name directory
+# wrong constant name empty_directory<defaultArg>1
+# wrong constant name empty_directory
+# wrong constant name find_in_source_paths
+# wrong constant name get
+# wrong constant name gsub_file
+# wrong constant name in_root
+# wrong constant name initialize<defaultArg>1
+# wrong constant name initialize<defaultArg>2
+# wrong constant name initialize<defaultArg>3
+# wrong constant name initialize
+# wrong constant name inject_into_class
+# wrong constant name inject_into_file
+# wrong constant name inject_into_module
+# wrong constant name insert_into_file
+# wrong constant name inside<defaultArg>1
+# wrong constant name inside<defaultArg>2
+# wrong constant name inside
+# wrong constant name link_file
+# wrong constant name prepend_file
+# wrong constant name prepend_to_file
+# wrong constant name relative_to_original_destination_root<defaultArg>1
+# wrong constant name relative_to_original_destination_root
+# wrong constant name remove_dir<defaultArg>1
+# wrong constant name remove_dir
+# wrong constant name remove_file<defaultArg>1
+# wrong constant name remove_file
+# wrong constant name run<defaultArg>1
+# wrong constant name run
+# wrong constant name run_ruby_script<defaultArg>1
+# wrong constant name run_ruby_script
+# wrong constant name source_paths
+# wrong constant name template
+# wrong constant name thor
+# wrong constant name uncomment_lines
+# uninitialized constant Bundler::Thor::Actions::CapturableERB::Revision
+# wrong constant name <static-init>
+# undefined method `source_root<defaultArg>1' for module `Bundler::Thor::Actions::ClassMethods'
+# wrong constant name add_runtime_options!
+# wrong constant name source_paths
+# wrong constant name source_paths_for_search
+# wrong constant name source_root<defaultArg>1
+# wrong constant name source_root
+# wrong constant name <static-init>
+# undefined method `initialize<defaultArg>1' for class `Bundler::Thor::Actions::CreateFile'
+# wrong constant name data
+# wrong constant name force_on_collision?
+# wrong constant name force_or_skip_or_conflict
+# wrong constant name identical?
+# wrong constant name initialize<defaultArg>1
+# wrong constant name initialize
+# wrong constant name on_conflict_behavior
+# wrong constant name render
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# undefined method `initialize<defaultArg>1' for class `Bundler::Thor::Actions::Directory'
+# undefined method `initialize<defaultArg>2' for class `Bundler::Thor::Actions::Directory'
+# wrong constant name execute!
+# wrong constant name file_level_lookup
+# wrong constant name files
+# wrong constant name initialize<defaultArg>1
+# wrong constant name initialize<defaultArg>2
+# wrong constant name initialize
+# wrong constant name source
+# wrong constant name <static-init>
+# undefined method `initialize<defaultArg>1' for class `Bundler::Thor::Actions::EmptyDirectory'
+# wrong constant name base
+# wrong constant name config
+# wrong constant name convert_encoded_instructions
+# wrong constant name destination
+# wrong constant name destination=
+# wrong constant name exists?
+# wrong constant name given_destination
+# wrong constant name initialize<defaultArg>1
+# wrong constant name initialize
+# wrong constant name invoke!
+# wrong constant name invoke_with_conflict_check
+# wrong constant name on_conflict_behavior
+# wrong constant name on_file_clash_behavior
+# wrong constant name pretend?
+# wrong constant name relative_destination
+# wrong constant name revoke!
+# wrong constant name say_status
+# wrong constant name <static-init>
+# undefined method `say_status<defaultArg>1' for class `Bundler::Thor::Actions::InjectIntoFile'
+# undefined method `say_status<defaultArg>2' for class `Bundler::Thor::Actions::InjectIntoFile'
+# wrong constant name behavior
+# wrong constant name flag
+# wrong constant name initialize
+# wrong constant name replace!
+# wrong constant name replacement
+# wrong constant name say_status<defaultArg>1
+# wrong constant name say_status<defaultArg>2
+# wrong constant name say_status
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name included
+# wrong constant name <static-init>
+# undefined method `initialize<defaultArg>1' for class `Bundler::Thor::Argument'
+# wrong constant name banner
+# wrong constant name default
+# wrong constant name default_banner
+# wrong constant name description
+# wrong constant name enum
+# wrong constant name human_name
+# wrong constant name initialize<defaultArg>1
+# wrong constant name initialize
+# wrong constant name name
+# wrong constant name required
+# wrong constant name required?
+# wrong constant name show_default?
+# wrong constant name type
+# wrong constant name usage
+# wrong constant name valid_type?
+# wrong constant name validate!
+# wrong constant name <static-init>
+# undefined method `initialize<defaultArg>1' for class `Bundler::Thor::Arguments'
+# wrong constant name initialize<defaultArg>1
+# wrong constant name initialize
+# wrong constant name parse
+# wrong constant name remaining
+# wrong constant name <static-init>
+# wrong constant name parse
+# wrong constant name split
+# undefined method `initialize<defaultArg>1' for module `Bundler::Thor::Base'
+# undefined method `initialize<defaultArg>2' for module `Bundler::Thor::Base'
+# undefined method `initialize<defaultArg>3' for module `Bundler::Thor::Base'
+# wrong constant name <Class:ClassMethods>
+# wrong constant name args
+# wrong constant name args=
+# wrong constant name initialize<defaultArg>1
+# wrong constant name initialize<defaultArg>2
+# wrong constant name initialize<defaultArg>3
+# wrong constant name initialize
+# wrong constant name options
+# wrong constant name options=
+# wrong constant name parent_options
+# wrong constant name parent_options=
+# undefined method `argument<defaultArg>1' for module `Bundler::Thor::Base::ClassMethods'
+# undefined method `class_option<defaultArg>1' for module `Bundler::Thor::Base::ClassMethods'
+# undefined method `class_options<defaultArg>1' for module `Bundler::Thor::Base::ClassMethods'
+# undefined method `class_options_help<defaultArg>1' for module `Bundler::Thor::Base::ClassMethods'
+# undefined method `from_superclass<defaultArg>1' for module `Bundler::Thor::Base::ClassMethods'
+# undefined method `group<defaultArg>1' for module `Bundler::Thor::Base::ClassMethods'
+# undefined method `handle_no_command_error<defaultArg>1' for module `Bundler::Thor::Base::ClassMethods'
+# undefined method `handle_no_task_error<defaultArg>1' for module `Bundler::Thor::Base::ClassMethods'
+# undefined method `namespace<defaultArg>1' for module `Bundler::Thor::Base::ClassMethods'
+# undefined method `print_options<defaultArg>1' for module `Bundler::Thor::Base::ClassMethods'
+# undefined method `start<defaultArg>1' for module `Bundler::Thor::Base::ClassMethods'
+# undefined method `start<defaultArg>2' for module `Bundler::Thor::Base::ClassMethods'
+# wrong constant name all_commands
+# wrong constant name all_tasks
+# wrong constant name argument<defaultArg>1
+# wrong constant name argument
+# wrong constant name arguments
+# wrong constant name attr_accessor
+# wrong constant name attr_reader
+# wrong constant name attr_writer
+# wrong constant name baseclass
+# wrong constant name basename
+# wrong constant name build_option
+# wrong constant name build_options
+# wrong constant name check_default_type
+# wrong constant name check_default_type!
+# wrong constant name check_default_type?
+# wrong constant name check_unknown_options
+# wrong constant name check_unknown_options!
+# wrong constant name check_unknown_options?
+# wrong constant name class_option<defaultArg>1
+# wrong constant name class_option
+# wrong constant name class_options<defaultArg>1
+# wrong constant name class_options
+# wrong constant name class_options_help<defaultArg>1
+# wrong constant name class_options_help
+# wrong constant name commands
+# wrong constant name create_command
+# wrong constant name create_task
+# wrong constant name disable_required_check?
+# wrong constant name dispatch
+# wrong constant name exit_on_failure?
+# wrong constant name find_and_refresh_command
+# wrong constant name find_and_refresh_task
+# wrong constant name from_superclass<defaultArg>1
+# wrong constant name from_superclass
+# wrong constant name group<defaultArg>1
+# wrong constant name group
+# wrong constant name handle_argument_error
+# wrong constant name handle_no_command_error<defaultArg>1
+# wrong constant name handle_no_command_error
+# wrong constant name handle_no_task_error<defaultArg>1
+# wrong constant name handle_no_task_error
+# wrong constant name inherited
+# wrong constant name initialize_added
+# wrong constant name is_thor_reserved_word?
+# wrong constant name method_added
+# wrong constant name namespace<defaultArg>1
+# wrong constant name namespace
+# wrong constant name no_commands
+# wrong constant name no_tasks
+# wrong constant name print_options<defaultArg>1
+# wrong constant name print_options
+# wrong constant name public_command
+# wrong constant name public_task
+# wrong constant name remove_argument
+# wrong constant name remove_class_option
+# wrong constant name remove_command
+# wrong constant name remove_task
+# wrong constant name start<defaultArg>1
+# wrong constant name start<defaultArg>2
+# wrong constant name start
+# wrong constant name stop_on_unknown_option?
+# wrong constant name strict_args_position
+# wrong constant name strict_args_position!
+# wrong constant name strict_args_position?
+# wrong constant name tasks
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name included
+# wrong constant name register_klass_file
+# wrong constant name shell
+# wrong constant name shell=
+# wrong constant name subclass_files
+# wrong constant name subclasses
+# undefined method `formatted_usage<defaultArg>1' for class `Bundler::Thor::Command'
+# undefined method `formatted_usage<defaultArg>2' for class `Bundler::Thor::Command'
+# undefined method `initialize<defaultArg>1' for class `Bundler::Thor::Command'
+# undefined method `run<defaultArg>1' for class `Bundler::Thor::Command'
+# wrong constant name formatted_usage<defaultArg>1
+# wrong constant name formatted_usage<defaultArg>2
+# wrong constant name formatted_usage
+# wrong constant name handle_argument_error?
+# wrong constant name handle_no_method_error?
+# wrong constant name hidden?
+# wrong constant name initialize<defaultArg>1
+# wrong constant name initialize
+# wrong constant name local_method?
+# wrong constant name not_debugging?
+# wrong constant name private_method?
+# wrong constant name public_method?
+# wrong constant name required_arguments_for
+# wrong constant name required_options
+# wrong constant name run<defaultArg>1
+# wrong constant name run
+# wrong constant name sans_backtrace
+# wrong constant name <static-init>
+# wrong constant name <Class:HashWithIndifferentAccess>
+# undefined method `initialize<defaultArg>1' for class `Bundler::Thor::CoreExt::HashWithIndifferentAccess'
+# uninitialized constant Bundler::Thor::CoreExt::HashWithIndifferentAccess::Elem
+# uninitialized constant Bundler::Thor::CoreExt::HashWithIndifferentAccess::K
+# uninitialized constant Bundler::Thor::CoreExt::HashWithIndifferentAccess::V
+# wrong constant name []
+# wrong constant name []=
+# wrong constant name convert_key
+# wrong constant name delete
+# wrong constant name fetch
+# wrong constant name initialize<defaultArg>1
+# wrong constant name initialize
+# wrong constant name key?
+# wrong constant name merge
+# wrong constant name merge!
+# wrong constant name method_missing
+# wrong constant name replace
+# wrong constant name reverse_merge
+# wrong constant name reverse_merge!
+# wrong constant name values_at
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# undefined method `initialize<defaultArg>1' for class `Bundler::Thor::DynamicCommand'
+# uninitialized constant Bundler::Thor::DynamicCommand::FILE_REGEXP
+# wrong constant name initialize<defaultArg>1
+# wrong constant name initialize
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# undefined method `_invoke_for_class_method<defaultArg>1' for class `Bundler::Thor::Group'
+# uninitialized constant Bundler::Thor::Group::SHELL_DELEGATED_METHODS
+# wrong constant name _invoke_for_class_method<defaultArg>1
+# wrong constant name _invoke_for_class_method
+# undefined singleton method `desc<defaultArg>1' for `Bundler::Thor::Group'
+# wrong constant name <static-init>
+# wrong constant name banner
+# wrong constant name desc<defaultArg>1
+# wrong constant name desc
+# wrong constant name get_options_from_invocations
+# wrong constant name handle_argument_error
+# wrong constant name help
+# wrong constant name invocation_blocks
+# wrong constant name invocations
+# wrong constant name invoke
+# wrong constant name invoke_from_option
+# wrong constant name printable_commands
+# wrong constant name printable_tasks
+# wrong constant name remove_invocation
+# wrong constant name self_command
+# wrong constant name self_task
+# uninitialized constant Bundler::Thor::HiddenCommand::FILE_REGEXP
+# wrong constant name <static-init>
+# undefined method `_retrieve_class_and_command<defaultArg>1' for module `Bundler::Thor::Invocation'
+# undefined method `_retrieve_class_and_task<defaultArg>1' for module `Bundler::Thor::Invocation'
+# undefined method `initialize<defaultArg>1' for module `Bundler::Thor::Invocation'
+# undefined method `initialize<defaultArg>2' for module `Bundler::Thor::Invocation'
+# undefined method `initialize<defaultArg>3' for module `Bundler::Thor::Invocation'
+# undefined method `invoke<defaultArg>1' for module `Bundler::Thor::Invocation'
+# wrong constant name <Class:ClassMethods>
+# wrong constant name _parse_initialization_options
+# wrong constant name _retrieve_class_and_command<defaultArg>1
+# wrong constant name _retrieve_class_and_command
+# wrong constant name _retrieve_class_and_task<defaultArg>1
+# wrong constant name _retrieve_class_and_task
+# wrong constant name _shared_configuration
+# wrong constant name current_command_chain
+# wrong constant name initialize<defaultArg>1
+# wrong constant name initialize<defaultArg>2
+# wrong constant name initialize<defaultArg>3
+# wrong constant name initialize
+# wrong constant name invoke<defaultArg>1
+# wrong constant name invoke
+# wrong constant name invoke_all
+# wrong constant name invoke_command
+# wrong constant name invoke_task
+# wrong constant name invoke_with_padding
+# wrong constant name prepare_for_invocation
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name included
+# wrong constant name <static-init>
+# wrong constant name <Class:Basic>
+# wrong constant name <Class:Readline>
+# wrong constant name initialize
+# wrong constant name options
+# wrong constant name prompt
+# wrong constant name readline
+# wrong constant name <static-init>
+# wrong constant name available?
+# wrong constant name <Class:PathCompletion>
+# wrong constant name initialize
+# wrong constant name matches
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# undefined singleton method `readline<defaultArg>1' for `Bundler::Thor::LineEditor'
+# wrong constant name <static-init>
+# wrong constant name best_available
+# wrong constant name readline<defaultArg>1
+# wrong constant name readline
+# wrong constant name <static-init>
+# undefined method `usage<defaultArg>1' for class `Bundler::Thor::Option'
+# wrong constant name aliases
+# wrong constant name array?
+# wrong constant name boolean?
+# wrong constant name dasherize
+# wrong constant name dasherized?
+# wrong constant name group
+# wrong constant name hash?
+# wrong constant name hide
+# wrong constant name lazy_default
+# wrong constant name numeric?
+# wrong constant name repeatable
+# wrong constant name string?
+# wrong constant name switch_name
+# wrong constant name undasherize
+# wrong constant name usage<defaultArg>1
+# wrong constant name usage
+# wrong constant name validate_default_type!
+# wrong constant name <static-init>
+# wrong constant name parse
+# undefined method `initialize<defaultArg>1' for class `Bundler::Thor::Options'
+# undefined method `initialize<defaultArg>2' for class `Bundler::Thor::Options'
+# undefined method `initialize<defaultArg>3' for class `Bundler::Thor::Options'
+# undefined method `initialize<defaultArg>4' for class `Bundler::Thor::Options'
+# uninitialized constant Bundler::Thor::Options::NUMERIC
+# wrong constant name assign_result!
+# wrong constant name check_unknown!
+# wrong constant name current_is_switch?
+# wrong constant name current_is_switch_formatted?
+# wrong constant name initialize<defaultArg>1
+# wrong constant name initialize<defaultArg>2
+# wrong constant name initialize<defaultArg>3
+# wrong constant name initialize<defaultArg>4
+# wrong constant name initialize
+# wrong constant name normalize_switch
+# wrong constant name parse_boolean
+# wrong constant name parse_peek
+# wrong constant name parsing_options?
+# wrong constant name switch?
+# wrong constant name switch_option
+# wrong constant name <static-init>
+# wrong constant name to_switches
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# undefined method `initialize<defaultArg>1' for module `Bundler::Thor::Shell'
+# undefined method `initialize<defaultArg>2' for module `Bundler::Thor::Shell'
+# undefined method `initialize<defaultArg>3' for module `Bundler::Thor::Shell'
+# wrong constant name <Class:Basic>
+# wrong constant name <Class:Color>
+# wrong constant name <Class:HTML>
+# wrong constant name _shared_configuration
+# wrong constant name ask
+# wrong constant name error
+# wrong constant name file_collision
+# wrong constant name initialize<defaultArg>1
+# wrong constant name initialize<defaultArg>2
+# wrong constant name initialize<defaultArg>3
+# wrong constant name initialize
+# wrong constant name no?
+# wrong constant name print_in_columns
+# wrong constant name print_table
+# wrong constant name print_wrapped
+# wrong constant name say
+# wrong constant name say_status
+# wrong constant name set_color
+# wrong constant name shell
+# wrong constant name shell=
+# wrong constant name terminal_width
+# wrong constant name with_padding
+# wrong constant name yes?
+# undefined method `indent<defaultArg>1' for class `Bundler::Thor::Shell::Basic'
+# undefined method `no?<defaultArg>1' for class `Bundler::Thor::Shell::Basic'
+# undefined method `print_table<defaultArg>1' for class `Bundler::Thor::Shell::Basic'
+# undefined method `print_wrapped<defaultArg>1' for class `Bundler::Thor::Shell::Basic'
+# undefined method `say<defaultArg>1' for class `Bundler::Thor::Shell::Basic'
+# undefined method `say<defaultArg>2' for class `Bundler::Thor::Shell::Basic'
+# undefined method `say<defaultArg>3' for class `Bundler::Thor::Shell::Basic'
+# undefined method `say_status<defaultArg>1' for class `Bundler::Thor::Shell::Basic'
+# undefined method `yes?<defaultArg>1' for class `Bundler::Thor::Shell::Basic'
+# wrong constant name as_unicode
+# wrong constant name ask
+# wrong constant name ask_filtered
+# wrong constant name ask_simply
+# wrong constant name base
+# wrong constant name base=
+# wrong constant name can_display_colors?
+# wrong constant name dynamic_width
+# wrong constant name dynamic_width_stty
+# wrong constant name dynamic_width_tput
+# wrong constant name error
+# wrong constant name file_collision
+# wrong constant name file_collision_help
+# wrong constant name git_merge_tool
+# wrong constant name indent<defaultArg>1
+# wrong constant name indent
+# wrong constant name is?
+# wrong constant name lookup_color
+# wrong constant name merge
+# wrong constant name merge_tool
+# wrong constant name mute
+# wrong constant name mute?
+# wrong constant name no?<defaultArg>1
+# wrong constant name no?
+# wrong constant name padding
+# wrong constant name padding=
+# wrong constant name prepare_message
+# wrong constant name print_in_columns
+# wrong constant name print_table<defaultArg>1
+# wrong constant name print_table
+# wrong constant name print_wrapped<defaultArg>1
+# wrong constant name print_wrapped
+# wrong constant name quiet?
+# wrong constant name say<defaultArg>1
+# wrong constant name say<defaultArg>2
+# wrong constant name say<defaultArg>3
+# wrong constant name say
+# wrong constant name say_status<defaultArg>1
+# wrong constant name say_status
+# wrong constant name set_color
+# wrong constant name show_diff
+# wrong constant name stderr
+# wrong constant name stdout
+# wrong constant name terminal_width
+# wrong constant name truncate
+# wrong constant name unix?
+# wrong constant name yes?<defaultArg>1
+# wrong constant name yes?
+# wrong constant name <static-init>
+# uninitialized constant Bundler::Thor::Shell::Color::DEFAULT_TERMINAL_WIDTH
+# wrong constant name are_colors_disabled?
+# wrong constant name diff_lcs_loaded?
+# wrong constant name output_diff_line
+# wrong constant name set_color
+# wrong constant name <static-init>
+# undefined method `ask<defaultArg>1' for class `Bundler::Thor::Shell::HTML'
+# uninitialized constant Bundler::Thor::Shell::HTML::DEFAULT_TERMINAL_WIDTH
+# wrong constant name ask<defaultArg>1
+# wrong constant name ask
+# wrong constant name diff_lcs_loaded?
+# wrong constant name output_diff_line
+# wrong constant name set_color
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name <Class:SpellChecker>
+# wrong constant name all_commands
+# wrong constant name command
+# wrong constant name initialize
+# wrong constant name corrections
+# wrong constant name error
+# wrong constant name initialize
+# wrong constant name spell_checker
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name <Class:SpellChecker>
+# wrong constant name initialize
+# wrong constant name switches
+# wrong constant name unknown
+# wrong constant name corrections
+# wrong constant name error
+# wrong constant name initialize
+# wrong constant name spell_checker
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# undefined singleton method `find_class_and_command_by_namespace<defaultArg>1' for `Bundler::Thor::Util'
+# undefined singleton method `find_class_and_task_by_namespace<defaultArg>1' for `Bundler::Thor::Util'
+# undefined singleton method `load_thorfile<defaultArg>1' for `Bundler::Thor::Util'
+# undefined singleton method `load_thorfile<defaultArg>2' for `Bundler::Thor::Util'
+# undefined singleton method `namespaces_in_content<defaultArg>1' for `Bundler::Thor::Util'
+# wrong constant name <static-init>
+# wrong constant name camel_case
+# wrong constant name escape_globs
+# wrong constant name find_by_namespace
+# wrong constant name find_class_and_command_by_namespace<defaultArg>1
+# wrong constant name find_class_and_command_by_namespace
+# wrong constant name find_class_and_task_by_namespace<defaultArg>1
+# wrong constant name find_class_and_task_by_namespace
+# wrong constant name globs_for
+# wrong constant name load_thorfile<defaultArg>1
+# wrong constant name load_thorfile<defaultArg>2
+# wrong constant name load_thorfile
+# wrong constant name namespace_from_thor_class
+# wrong constant name namespaces_in_content<defaultArg>1
+# wrong constant name namespaces_in_content
+# wrong constant name ruby_command
+# wrong constant name snake_case
+# wrong constant name thor_classes_in
+# wrong constant name thor_root
+# wrong constant name thor_root_glob
+# wrong constant name user_home
+# undefined singleton method `banner<defaultArg>1' for `Bundler::Thor'
+# undefined singleton method `banner<defaultArg>2' for `Bundler::Thor'
+# undefined singleton method `check_unknown_options!<defaultArg>1' for `Bundler::Thor'
+# undefined singleton method `default_command<defaultArg>1' for `Bundler::Thor'
+# undefined singleton method `default_task<defaultArg>1' for `Bundler::Thor'
+# undefined singleton method `desc<defaultArg>1' for `Bundler::Thor'
+# undefined singleton method `help<defaultArg>1' for `Bundler::Thor'
+# undefined singleton method `long_desc<defaultArg>1' for `Bundler::Thor'
+# undefined singleton method `map<defaultArg>1' for `Bundler::Thor'
+# undefined singleton method `method_option<defaultArg>1' for `Bundler::Thor'
+# undefined singleton method `method_options<defaultArg>1' for `Bundler::Thor'
+# undefined singleton method `option<defaultArg>1' for `Bundler::Thor'
+# undefined singleton method `options<defaultArg>1' for `Bundler::Thor'
+# undefined singleton method `package_name<defaultArg>1' for `Bundler::Thor'
+# undefined singleton method `printable_commands<defaultArg>1' for `Bundler::Thor'
+# undefined singleton method `printable_commands<defaultArg>2' for `Bundler::Thor'
+# undefined singleton method `printable_tasks<defaultArg>1' for `Bundler::Thor'
+# undefined singleton method `printable_tasks<defaultArg>2' for `Bundler::Thor'
+# undefined singleton method `register<defaultArg>1' for `Bundler::Thor'
+# wrong constant name <static-init>
+# wrong constant name banner<defaultArg>1
+# wrong constant name banner<defaultArg>2
+# wrong constant name banner
+# wrong constant name check_unknown_options!<defaultArg>1
+# wrong constant name check_unknown_options!
+# wrong constant name command_help
+# wrong constant name default_command<defaultArg>1
+# wrong constant name default_command
+# wrong constant name default_task<defaultArg>1
+# wrong constant name default_task
+# wrong constant name desc<defaultArg>1
+# wrong constant name desc
+# wrong constant name disable_required_check
+# wrong constant name disable_required_check!
+# wrong constant name disable_required_check?
+# wrong constant name dispatch
+# wrong constant name dynamic_command_class
+# wrong constant name find_command_possibilities
+# wrong constant name find_task_possibilities
+# wrong constant name help<defaultArg>1
+# wrong constant name help
+# wrong constant name long_desc<defaultArg>1
+# wrong constant name long_desc
+# wrong constant name map<defaultArg>1
+# wrong constant name map
+# wrong constant name method_option<defaultArg>1
+# wrong constant name method_option
+# wrong constant name method_options<defaultArg>1
+# wrong constant name method_options
+# wrong constant name normalize_command_name
+# wrong constant name normalize_task_name
+# wrong constant name option<defaultArg>1
+# wrong constant name option
+# wrong constant name options<defaultArg>1
+# wrong constant name options
+# wrong constant name package_name<defaultArg>1
+# wrong constant name package_name
+# wrong constant name printable_commands<defaultArg>1
+# wrong constant name printable_commands<defaultArg>2
+# wrong constant name printable_commands
+# wrong constant name printable_tasks<defaultArg>1
+# wrong constant name printable_tasks<defaultArg>2
+# wrong constant name printable_tasks
+# wrong constant name register<defaultArg>1
+# wrong constant name register
+# wrong constant name retrieve_command_name
+# wrong constant name retrieve_task_name
+# wrong constant name stop_on_unknown_option
+# wrong constant name stop_on_unknown_option!
+# wrong constant name stop_on_unknown_option?
+# wrong constant name subcommand
+# wrong constant name subcommand_classes
+# wrong constant name subcommand_help
+# wrong constant name subcommands
+# wrong constant name subtask
+# wrong constant name subtask_help
+# wrong constant name subtasks
+# wrong constant name task_help
+# undefined method `confirm<defaultArg>1' for class `Bundler::UI::Shell'
+# undefined method `debug<defaultArg>1' for class `Bundler::UI::Shell'
+# undefined method `error<defaultArg>1' for class `Bundler::UI::Shell'
+# undefined method `info<defaultArg>1' for class `Bundler::UI::Shell'
+# undefined method `initialize<defaultArg>1' for class `Bundler::UI::Shell'
+# undefined method `level<defaultArg>1' for class `Bundler::UI::Shell'
+# undefined method `trace<defaultArg>1' for class `Bundler::UI::Shell'
+# undefined method `trace<defaultArg>2' for class `Bundler::UI::Shell'
+# undefined method `warn<defaultArg>1' for class `Bundler::UI::Shell'
+# wrong constant name add_color
+# wrong constant name ask
+# wrong constant name confirm<defaultArg>1
+# wrong constant name confirm
+# wrong constant name debug<defaultArg>1
+# wrong constant name debug
+# wrong constant name debug?
+# wrong constant name error<defaultArg>1
+# wrong constant name error
+# wrong constant name info<defaultArg>1
+# wrong constant name info
+# wrong constant name initialize<defaultArg>1
+# wrong constant name initialize
+# wrong constant name level<defaultArg>1
+# wrong constant name level
+# wrong constant name level=
+# wrong constant name no?
+# wrong constant name quiet?
+# wrong constant name shell=
+# wrong constant name silence
+# wrong constant name trace<defaultArg>1
+# wrong constant name trace<defaultArg>2
+# wrong constant name trace
+# wrong constant name unprinted_warnings
+# wrong constant name warn<defaultArg>1
+# wrong constant name warn
+# wrong constant name yes?
+# wrong constant name <static-init>
+# wrong constant name <Class:NEq>
+# wrong constant name <Class:ReqR>
+# uninitialized constant Bundler::VersionRanges::NEq::Elem
+# wrong constant name version
+# wrong constant name version=
+# wrong constant name <static-init>
+# wrong constant name []
+# wrong constant name members
+# wrong constant name <=>
+# uninitialized constant Bundler::VersionRanges::ReqR::Elem
+# wrong constant name <Class:Endpoint>
+# wrong constant name cover?
+# wrong constant name empty?
+# wrong constant name left
+# wrong constant name left=
+# wrong constant name right
+# wrong constant name right=
+# wrong constant name single?
+# wrong constant name <=>
+# uninitialized constant Bundler::VersionRanges::ReqR::Endpoint::Elem
+# wrong constant name inclusive
+# wrong constant name inclusive=
+# wrong constant name version
+# wrong constant name version=
+# wrong constant name <static-init>
+# wrong constant name []
+# wrong constant name members
+# wrong constant name <static-init>
+# wrong constant name []
+# wrong constant name members
+# wrong constant name <static-init>
+# wrong constant name empty?
+# wrong constant name for
+# wrong constant name for_many
+# wrong constant name original_exec
+# wrong constant name original_system
+# wrong constant name unbundled_env
+# wrong constant name unbundled_exec
+# wrong constant name unbundled_system
+# wrong constant name with_unbundled_env
+# uninitialized constant CSV
+# uninitialized constant CSV
+# uninitialized constant Chalk
+# uninitialized constant Chalk
+# wrong constant name json_creatable?
+# undefined singleton method `load_stylesheet<defaultArg>1' for `CodeRay::Encoders::HTML::CSS'
+# wrong constant name load_stylesheet<defaultArg>1
+# wrong constant name load_stylesheet
+# uninitialized constant CodeRay::Encoders::Lint::DEFAULT_OPTIONS
+# wrong constant name []
+# wrong constant name members
+# uninitialized constant CodeRay::Scanners::C::DEFAULT_OPTIONS
+# uninitialized constant CodeRay::Scanners::C::Elem
+# uninitialized constant CodeRay::Scanners::C::Id
+# uninitialized constant CodeRay::Scanners::C::KINDS_NOT_LOC
+# uninitialized constant CodeRay::Scanners::C::SCANNER_STATE_INFO
+# uninitialized constant CodeRay::Scanners::C::SCAN_ERROR_MESSAGE
+# uninitialized constant CodeRay::Scanners::C::Version
+# uninitialized constant CodeRay::Scanners::CPlusPlus::DEFAULT_OPTIONS
+# uninitialized constant CodeRay::Scanners::CPlusPlus::Elem
+# uninitialized constant CodeRay::Scanners::CPlusPlus::Id
+# uninitialized constant CodeRay::Scanners::CPlusPlus::KINDS_NOT_LOC
+# uninitialized constant CodeRay::Scanners::CPlusPlus::SCANNER_STATE_INFO
+# uninitialized constant CodeRay::Scanners::CPlusPlus::SCAN_ERROR_MESSAGE
+# uninitialized constant CodeRay::Scanners::CPlusPlus::Version
+# uninitialized constant CodeRay::Scanners::CSS::DEFAULT_OPTIONS
+# uninitialized constant CodeRay::Scanners::CSS::Elem
+# uninitialized constant CodeRay::Scanners::CSS::Id
+# uninitialized constant CodeRay::Scanners::CSS::SCANNER_STATE_INFO
+# uninitialized constant CodeRay::Scanners::CSS::SCAN_ERROR_MESSAGE
+# uninitialized constant CodeRay::Scanners::CSS::Version
+# uninitialized constant CodeRay::Scanners::Clojure::DEFAULT_OPTIONS
+# uninitialized constant CodeRay::Scanners::Clojure::Elem
+# uninitialized constant CodeRay::Scanners::Clojure::Id
+# uninitialized constant CodeRay::Scanners::Clojure::KINDS_NOT_LOC
+# uninitialized constant CodeRay::Scanners::Clojure::SCANNER_STATE_INFO
+# uninitialized constant CodeRay::Scanners::Clojure::SCAN_ERROR_MESSAGE
+# uninitialized constant CodeRay::Scanners::Clojure::Version
+# uninitialized constant CodeRay::Scanners::Debug::DEFAULT_OPTIONS
+# uninitialized constant CodeRay::Scanners::Debug::Elem
+# uninitialized constant CodeRay::Scanners::Debug::Id
+# uninitialized constant CodeRay::Scanners::Debug::KINDS_NOT_LOC
+# uninitialized constant CodeRay::Scanners::Debug::SCANNER_STATE_INFO
+# uninitialized constant CodeRay::Scanners::Debug::SCAN_ERROR_MESSAGE
+# uninitialized constant CodeRay::Scanners::Debug::Version
+# uninitialized constant CodeRay::Scanners::Delphi::DEFAULT_OPTIONS
+# uninitialized constant CodeRay::Scanners::Delphi::Elem
+# uninitialized constant CodeRay::Scanners::Delphi::Id
+# uninitialized constant CodeRay::Scanners::Delphi::KINDS_NOT_LOC
+# uninitialized constant CodeRay::Scanners::Delphi::SCANNER_STATE_INFO
+# uninitialized constant CodeRay::Scanners::Delphi::SCAN_ERROR_MESSAGE
+# uninitialized constant CodeRay::Scanners::Delphi::Version
+# uninitialized constant CodeRay::Scanners::Diff::Elem
+# uninitialized constant CodeRay::Scanners::Diff::Id
+# uninitialized constant CodeRay::Scanners::Diff::KINDS_NOT_LOC
+# uninitialized constant CodeRay::Scanners::Diff::SCANNER_STATE_INFO
+# uninitialized constant CodeRay::Scanners::Diff::SCAN_ERROR_MESSAGE
+# uninitialized constant CodeRay::Scanners::Diff::Version
+# uninitialized constant CodeRay::Scanners::Go::DEFAULT_OPTIONS
+# uninitialized constant CodeRay::Scanners::Go::Elem
+# uninitialized constant CodeRay::Scanners::Go::Id
+# uninitialized constant CodeRay::Scanners::Go::KINDS_NOT_LOC
+# uninitialized constant CodeRay::Scanners::Go::SCANNER_STATE_INFO
+# uninitialized constant CodeRay::Scanners::Go::SCAN_ERROR_MESSAGE
+# uninitialized constant CodeRay::Scanners::Go::Version
+# uninitialized constant CodeRay::Scanners::HAML::DEFAULT_OPTIONS
+# uninitialized constant CodeRay::Scanners::HAML::Elem
+# uninitialized constant CodeRay::Scanners::HAML::Id
+# uninitialized constant CodeRay::Scanners::HAML::SCANNER_STATE_INFO
+# uninitialized constant CodeRay::Scanners::HAML::SCAN_ERROR_MESSAGE
+# uninitialized constant CodeRay::Scanners::HAML::Version
+# uninitialized constant CodeRay::Scanners::HTML::DEFAULT_OPTIONS
+# uninitialized constant CodeRay::Scanners::HTML::Elem
+# uninitialized constant CodeRay::Scanners::HTML::Id
+# uninitialized constant CodeRay::Scanners::HTML::SCANNER_STATE_INFO
+# uninitialized constant CodeRay::Scanners::HTML::SCAN_ERROR_MESSAGE
+# uninitialized constant CodeRay::Scanners::HTML::Version
+# uninitialized constant CodeRay::Scanners::JSON::DEFAULT_OPTIONS
+# uninitialized constant CodeRay::Scanners::JSON::Elem
+# uninitialized constant CodeRay::Scanners::JSON::Id
+# uninitialized constant CodeRay::Scanners::JSON::SCANNER_STATE_INFO
+# uninitialized constant CodeRay::Scanners::JSON::SCAN_ERROR_MESSAGE
+# uninitialized constant CodeRay::Scanners::JSON::Version
+# uninitialized constant CodeRay::Scanners::Java::DEFAULT_OPTIONS
+# uninitialized constant CodeRay::Scanners::Java::Elem
+# uninitialized constant CodeRay::Scanners::Java::Id
+# uninitialized constant CodeRay::Scanners::Java::KINDS_NOT_LOC
+# uninitialized constant CodeRay::Scanners::Java::SCANNER_STATE_INFO
+# uninitialized constant CodeRay::Scanners::Java::SCAN_ERROR_MESSAGE
+# uninitialized constant CodeRay::Scanners::Java::Version
+# uninitialized constant CodeRay::Scanners::JavaScript::DEFAULT_OPTIONS
+# uninitialized constant CodeRay::Scanners::JavaScript::Elem
+# uninitialized constant CodeRay::Scanners::JavaScript::Id
+# uninitialized constant CodeRay::Scanners::JavaScript::KINDS_NOT_LOC
+# uninitialized constant CodeRay::Scanners::JavaScript::SCANNER_STATE_INFO
+# uninitialized constant CodeRay::Scanners::JavaScript::SCAN_ERROR_MESSAGE
+# uninitialized constant CodeRay::Scanners::JavaScript::Version
+# uninitialized constant CodeRay::Scanners::Lua::DEFAULT_OPTIONS
+# uninitialized constant CodeRay::Scanners::Lua::Elem
+# uninitialized constant CodeRay::Scanners::Lua::Id
+# uninitialized constant CodeRay::Scanners::Lua::KINDS_NOT_LOC
+# uninitialized constant CodeRay::Scanners::Lua::SCANNER_STATE_INFO
+# uninitialized constant CodeRay::Scanners::Lua::SCAN_ERROR_MESSAGE
+# uninitialized constant CodeRay::Scanners::Lua::Version
+# uninitialized constant CodeRay::Scanners::Python::DEFAULT_OPTIONS
+# uninitialized constant CodeRay::Scanners::Python::Elem
+# uninitialized constant CodeRay::Scanners::Python::Id
+# uninitialized constant CodeRay::Scanners::Python::KINDS_NOT_LOC
+# uninitialized constant CodeRay::Scanners::Python::SCANNER_STATE_INFO
+# uninitialized constant CodeRay::Scanners::Python::SCAN_ERROR_MESSAGE
+# uninitialized constant CodeRay::Scanners::Python::Version
+# uninitialized constant CodeRay::Scanners::Raydebug::DEFAULT_OPTIONS
+# uninitialized constant CodeRay::Scanners::Raydebug::Elem
+# uninitialized constant CodeRay::Scanners::Raydebug::Id
+# uninitialized constant CodeRay::Scanners::Raydebug::KINDS_NOT_LOC
+# uninitialized constant CodeRay::Scanners::Raydebug::SCANNER_STATE_INFO
+# uninitialized constant CodeRay::Scanners::Raydebug::SCAN_ERROR_MESSAGE
+# uninitialized constant CodeRay::Scanners::Raydebug::Version
+# uninitialized constant CodeRay::Scanners::Ruby::DEFAULT_OPTIONS
+# uninitialized constant CodeRay::Scanners::Ruby::Elem
+# uninitialized constant CodeRay::Scanners::Ruby::Id
+# uninitialized constant CodeRay::Scanners::Ruby::KINDS_NOT_LOC
+# uninitialized constant CodeRay::Scanners::Ruby::SCANNER_STATE_INFO
+# uninitialized constant CodeRay::Scanners::Ruby::SCAN_ERROR_MESSAGE
+# uninitialized constant CodeRay::Scanners::Ruby::Version
+# uninitialized constant CodeRay::Scanners::SQL::DEFAULT_OPTIONS
+# uninitialized constant CodeRay::Scanners::SQL::Elem
+# uninitialized constant CodeRay::Scanners::SQL::Id
+# uninitialized constant CodeRay::Scanners::SQL::KINDS_NOT_LOC
+# uninitialized constant CodeRay::Scanners::SQL::SCANNER_STATE_INFO
+# uninitialized constant CodeRay::Scanners::SQL::SCAN_ERROR_MESSAGE
+# uninitialized constant CodeRay::Scanners::SQL::Version
+# undefined method `column<defaultArg>1' for class `CodeRay::Scanners::Scanner'
+# undefined method `initialize<defaultArg>1' for class `CodeRay::Scanners::Scanner'
+# undefined method `initialize<defaultArg>2' for class `CodeRay::Scanners::Scanner'
+# undefined method `line<defaultArg>1' for class `CodeRay::Scanners::Scanner'
+# undefined method `raise_inspect<defaultArg>1' for class `CodeRay::Scanners::Scanner'
+# undefined method `raise_inspect<defaultArg>2' for class `CodeRay::Scanners::Scanner'
+# undefined method `raise_inspect<defaultArg>3' for class `CodeRay::Scanners::Scanner'
+# undefined method `tokenize<defaultArg>1' for class `CodeRay::Scanners::Scanner'
+# undefined method `tokenize<defaultArg>2' for class `CodeRay::Scanners::Scanner'
+# uninitialized constant CodeRay::Scanners::Scanner::Elem
+# uninitialized constant CodeRay::Scanners::Scanner::Id
+# wrong constant name <Class:ScanError>
+# uninitialized constant CodeRay::Scanners::Scanner::Version
+# wrong constant name binary_string
+# wrong constant name column<defaultArg>1
+# wrong constant name column
+# wrong constant name each
+# wrong constant name file_extension
+# wrong constant name initialize<defaultArg>1
+# wrong constant name initialize<defaultArg>2
+# wrong constant name initialize
+# wrong constant name lang
+# wrong constant name line<defaultArg>1
+# wrong constant name line
+# wrong constant name raise_inspect<defaultArg>1
+# wrong constant name raise_inspect<defaultArg>2
+# wrong constant name raise_inspect<defaultArg>3
+# wrong constant name raise_inspect
+# wrong constant name raise_inspect_arguments
+# wrong constant name reset_instance
+# wrong constant name scan_rest
+# wrong constant name scan_tokens
+# wrong constant name scanner_state_info
+# wrong constant name set_string_from_source
+# wrong constant name set_tokens_from_options
+# wrong constant name setup
+# wrong constant name state
+# wrong constant name state=
+# wrong constant name string=
+# wrong constant name tokenize<defaultArg>1
+# wrong constant name tokenize<defaultArg>2
+# wrong constant name tokenize
+# wrong constant name tokens
+# wrong constant name tokens_last
+# wrong constant name tokens_size
+# wrong constant name <static-init>
+# undefined singleton method `encoding<defaultArg>1' for `CodeRay::Scanners::Scanner'
+# undefined singleton method `file_extension<defaultArg>1' for `CodeRay::Scanners::Scanner'
+# wrong constant name <static-init>
+# wrong constant name encode_with_encoding
+# wrong constant name encoding<defaultArg>1
+# wrong constant name encoding
+# wrong constant name file_extension<defaultArg>1
+# wrong constant name file_extension
+# wrong constant name guess_encoding
+# wrong constant name lang
+# wrong constant name normalize
+# wrong constant name to_unix
+# uninitialized constant CodeRay::Scanners::Taskpaper::DEFAULT_OPTIONS
+# uninitialized constant CodeRay::Scanners::Taskpaper::Elem
+# uninitialized constant CodeRay::Scanners::Taskpaper::Id
+# uninitialized constant CodeRay::Scanners::Taskpaper::KINDS_NOT_LOC
+# uninitialized constant CodeRay::Scanners::Taskpaper::SCANNER_STATE_INFO
+# uninitialized constant CodeRay::Scanners::Taskpaper::SCAN_ERROR_MESSAGE
+# uninitialized constant CodeRay::Scanners::Taskpaper::Version
+# uninitialized constant CodeRay::Scanners::Text::DEFAULT_OPTIONS
+# uninitialized constant CodeRay::Scanners::Text::Elem
+# uninitialized constant CodeRay::Scanners::Text::Id
+# uninitialized constant CodeRay::Scanners::Text::SCANNER_STATE_INFO
+# uninitialized constant CodeRay::Scanners::Text::SCAN_ERROR_MESSAGE
+# uninitialized constant CodeRay::Scanners::Text::Version
+# uninitialized constant CodeRay::Scanners::YAML::DEFAULT_OPTIONS
+# uninitialized constant CodeRay::Scanners::YAML::Elem
+# uninitialized constant CodeRay::Scanners::YAML::Id
+# uninitialized constant CodeRay::Scanners::YAML::SCANNER_STATE_INFO
+# uninitialized constant CodeRay::Scanners::YAML::SCAN_ERROR_MESSAGE
+# uninitialized constant CodeRay::Scanners::YAML::Version
+# undefined method `encode<defaultArg>1' for class `CodeRay::Tokens'
+# undefined method `method_missing<defaultArg>1' for class `CodeRay::Tokens'
+# uninitialized constant CodeRay::Tokens::Elem
+# wrong constant name begin_group
+# wrong constant name begin_line
+# wrong constant name count
+# wrong constant name encode<defaultArg>1
+# wrong constant name encode
+# wrong constant name end_group
+# wrong constant name end_line
+# wrong constant name method_missing<defaultArg>1
+# wrong constant name method_missing
+# wrong constant name scanner
+# wrong constant name scanner=
+# wrong constant name split_into_parts
+# wrong constant name text_token
+# wrong constant name tokens
+# wrong constant name <static-init>
+# wrong constant name polar
+# wrong constant name rect
+# wrong constant name rectangular
+# uninitialized constant Configatron
+# uninitialized constant Configatron
+# uninitialized constant Coverage
+# uninitialized constant Coverage
+# undefined method `methods<defaultArg>1' for class `Delegator'
+# undefined method `protected_methods<defaultArg>1' for class `Delegator'
+# undefined method `public_methods<defaultArg>1' for class `Delegator'
+# wrong constant name !=
+# wrong constant name ==
+# wrong constant name __getobj__
+# wrong constant name __setobj__
+# wrong constant name eql?
+# wrong constant name initialize
+# wrong constant name marshal_dump
+# wrong constant name marshal_load
+# wrong constant name method_missing
+# wrong constant name methods<defaultArg>1
+# wrong constant name methods
+# wrong constant name protected_methods<defaultArg>1
+# wrong constant name protected_methods
+# wrong constant name public_methods<defaultArg>1
+# wrong constant name public_methods
+# wrong constant name const_missing
+# wrong constant name delegating_block
+# wrong constant name public_api
+# uninitialized constant DidYouMean::ClassNameChecker
+# uninitialized constant DidYouMean::ClassNameChecker
+# uninitialized constant DidYouMean::Correctable
+# uninitialized constant DidYouMean::Correctable
+# uninitialized constant DidYouMean::Formatter
+# uninitialized constant DidYouMean::Formatter
+# uninitialized constant DidYouMean::Jaro
+# uninitialized constant DidYouMean::Jaro
+# uninitialized constant DidYouMean::JaroWinkler
+# uninitialized constant DidYouMean::JaroWinkler
+# uninitialized constant DidYouMean::Levenshtein
+# uninitialized constant DidYouMean::Levenshtein
+# uninitialized constant DidYouMean::MethodNameChecker
+# uninitialized constant DidYouMean::MethodNameChecker
+# uninitialized constant DidYouMean::NameErrorCheckers
+# uninitialized constant DidYouMean::NameErrorCheckers
+# uninitialized constant DidYouMean::NullChecker
+# uninitialized constant DidYouMean::NullChecker
+# uninitialized constant DidYouMean::SpellChecker
+# uninitialized constant DidYouMean::SpellChecker
+# uninitialized constant DidYouMean::VariableNameChecker
+# uninitialized constant DidYouMean::VariableNameChecker
+# wrong constant name children
+# wrong constant name each_child
+# undefined singleton method `mktmpdir<defaultArg>1' for `Dir'
+# wrong constant name children
+# wrong constant name each_child
+# wrong constant name empty?
+# wrong constant name exists?
+# wrong constant name mktmpdir<defaultArg>1
+# wrong constant name tmpdir
+# undefined method `def_method<defaultArg>1' for class `ERB'
+# undefined method `def_module<defaultArg>1' for class `ERB'
+# undefined method `initialize<defaultArg>4' for class `ERB'
+# undefined method `initialize<defaultArg>5' for class `ERB'
+# wrong constant name def_method<defaultArg>1
+# wrong constant name def_method
+# wrong constant name def_module<defaultArg>1
+# wrong constant name def_module
+# wrong constant name initialize<defaultArg>4
+# wrong constant name initialize<defaultArg>5
+# wrong constant name result_with_hash
+# wrong constant name _dump
+# wrong constant name convert
+# wrong constant name convpath
+# wrong constant name destination_encoding
+# wrong constant name finish
+# wrong constant name initialize
+# wrong constant name insert_output
+# wrong constant name last_error
+# wrong constant name primitive_convert
+# wrong constant name primitive_errinfo
+# wrong constant name putback
+# wrong constant name replacement
+# wrong constant name replacement=
+# wrong constant name source_encoding
+# wrong constant name asciicompat_encoding
+# wrong constant name search_convpath
+# wrong constant name destination_encoding
+# wrong constant name destination_encoding_name
+# wrong constant name error_bytes
+# wrong constant name incomplete_input?
+# wrong constant name readagain_bytes
+# wrong constant name source_encoding
+# wrong constant name source_encoding_name
+# wrong constant name destination_encoding
+# wrong constant name destination_encoding_name
+# wrong constant name error_char
+# wrong constant name source_encoding
+# wrong constant name source_encoding_name
+# wrong constant name _load
+# wrong constant name locale_charmap
+# undefined method `to_set<defaultArg>1' for module `Enumerable'
+# wrong constant name chain
+# wrong constant name chunk
+# wrong constant name chunk_while
+# wrong constant name each_entry
+# wrong constant name filter_map
+# wrong constant name grep_v
+# wrong constant name slice_after
+# wrong constant name slice_before
+# wrong constant name slice_when
+# wrong constant name sum
+# wrong constant name tally
+# wrong constant name to_set<defaultArg>1
+# wrong constant name to_set
+# wrong constant name uniq
+# wrong constant name zip
+# wrong constant name +
+# wrong constant name <Class:ArithmeticSequence>
+# wrong constant name <Class:Chain>
+# wrong constant name <Class:Producer>
+# wrong constant name each_with_index
+# uninitialized constant Enumerator::ArithmeticSequence::Elem
+# wrong constant name begin
+# wrong constant name each
+# wrong constant name end
+# wrong constant name exclude_end?
+# wrong constant name last
+# wrong constant name step
+# wrong constant name <static-init>
+# uninitialized constant Enumerator::Chain::Elem
+# wrong constant name <static-init>
+# wrong constant name each
+# wrong constant name initialize
+# wrong constant name chunk
+# wrong constant name chunk_while
+# wrong constant name eager
+# wrong constant name force
+# wrong constant name slice_when
+# wrong constant name each
+# wrong constant name <static-init>
+# wrong constant name to_proc
+# wrong constant name produce
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name gid
+# wrong constant name gid=
+# wrong constant name mem
+# wrong constant name mem=
+# wrong constant name name
+# wrong constant name name=
+# wrong constant name passwd
+# wrong constant name passwd=
+# wrong constant name []
+# wrong constant name each
+# wrong constant name members
+# wrong constant name <Class:Group>
+# wrong constant name change
+# wrong constant name change=
+# wrong constant name dir=
+# wrong constant name expire
+# wrong constant name expire=
+# wrong constant name gecos
+# wrong constant name gecos=
+# wrong constant name gid=
+# wrong constant name name=
+# wrong constant name passwd=
+# wrong constant name shell=
+# wrong constant name uclass
+# wrong constant name uclass=
+# wrong constant name uid=
+# wrong constant name []
+# wrong constant name each
+# wrong constant name members
+# wrong constant name <Class:Passwd>
+# wrong constant name full_message
+# wrong constant name exception
+# wrong constant name to_tty?
+# uninitialized constant Exception2MessageMapper
+# uninitialized constant Exception2MessageMapper
+# wrong constant name initialize
+# wrong constant name resume
+# wrong constant name yield
+# wrong constant name size?
+# wrong constant name absolute_path?
+# wrong constant name empty?
+# wrong constant name exists?
+# wrong constant name lutime
+# wrong constant name mkfifo
+# uninitialized constant FileUtils::DryRun::VERSION
+# uninitialized constant FileUtils::NoWrite::VERSION
+# uninitialized constant FileUtils::Verbose::VERSION
+# undefined method `def_delegator<defaultArg>1' for module `Forwardable'
+# undefined method `def_instance_delegator<defaultArg>1' for module `Forwardable'
+# wrong constant name def_delegator<defaultArg>1
+# wrong constant name def_delegator
+# wrong constant name def_delegators
+# wrong constant name def_instance_delegator<defaultArg>1
+# wrong constant name def_instance_delegator
+# wrong constant name def_instance_delegators
+# wrong constant name delegate
+# wrong constant name instance_delegate
+# wrong constant name _compile_method
+# wrong constant name _delegator_method
+# wrong constant name _valid_method?
+# wrong constant name debug
+# wrong constant name debug=
+# wrong constant name receiver
+# wrong constant name <static-init>
+# undefined method `garbage_collect<defaultArg>1' for module `GC'
+# undefined method `garbage_collect<defaultArg>2' for module `GC'
+# undefined method `garbage_collect<defaultArg>3' for module `GC'
+# wrong constant name garbage_collect<defaultArg>1
+# wrong constant name garbage_collect<defaultArg>2
+# wrong constant name garbage_collect<defaultArg>3
+# wrong constant name garbage_collect
+# undefined singleton method `latest_gc_info<defaultArg>1' for `GC'
+# undefined singleton method `start<defaultArg>3' for `GC'
+# undefined singleton method `stat<defaultArg>1' for `GC'
+# wrong constant name compact
+# wrong constant name latest_gc_info<defaultArg>1
+# wrong constant name latest_gc_info
+# wrong constant name start<defaultArg>3
+# wrong constant name stat<defaultArg>1
+# wrong constant name stress=
+# wrong constant name verify_compaction_references
+# wrong constant name verify_internal_consistency
+# wrong constant name verify_transient_heap_internal_consistency
+# wrong constant name <Class:S3URISigner>
+# wrong constant name _deprecated_default_specifications_dir
+# undefined method `deprecate_option<defaultArg>1' for class `Gem::Command'
+# undefined method `deprecate_option<defaultArg>2' for class `Gem::Command'
+# undefined method `deprecate_option<defaultArg>3' for class `Gem::Command'
+# undefined method `show_lookup_failure<defaultArg>2' for class `Gem::Command'
+# wrong constant name check_deprecated_options
+# wrong constant name deprecate_option<defaultArg>1
+# wrong constant name deprecate_option<defaultArg>2
+# wrong constant name deprecate_option<defaultArg>3
+# wrong constant name deprecate_option
+# wrong constant name show_lookup_failure<defaultArg>2
+# wrong constant name <=>
+# wrong constant name identity
+# undefined method `_deprecated_find_gems_with_sources<defaultArg>1' for class `Gem::DependencyInstaller'
+# undefined method `_deprecated_find_spec_by_name_and_version<defaultArg>1' for class `Gem::DependencyInstaller'
+# undefined method `_deprecated_find_spec_by_name_and_version<defaultArg>2' for class `Gem::DependencyInstaller'
+# wrong constant name _deprecated_available_set_for
+# wrong constant name _deprecated_find_gems_with_sources<defaultArg>1
+# wrong constant name _deprecated_find_gems_with_sources
+# wrong constant name _deprecated_find_spec_by_name_and_version<defaultArg>1
+# wrong constant name _deprecated_find_spec_by_name_and_version<defaultArg>2
+# wrong constant name _deprecated_find_spec_by_name_and_version
+# wrong constant name _deprecated_unpack
+# wrong constant name package
+# wrong constant name gem
+# wrong constant name oct_or_256based
+# undefined singleton method `raw_spec<defaultArg>1' for `Gem::Package'
+# wrong constant name raw_spec<defaultArg>1
+# wrong constant name raw_spec
+# wrong constant name _deprecated_fetch_size
+# wrong constant name s3_uri_signer
+# wrong constant name default_prerelease
+# wrong constant name platform
+# uninitialized constant Gem::Resolver::Molinillo::DependencyGraph::Log::Elem
+# undefined method `sign<defaultArg>1' for class `Gem::S3URISigner'
+# wrong constant name <Class:ConfigurationError>
+# wrong constant name <Class:InstanceProfileError>
+# wrong constant name <Class:S3Config>
+# wrong constant name initialize
+# wrong constant name sign<defaultArg>1
+# wrong constant name sign
+# wrong constant name uri
+# wrong constant name uri=
+# wrong constant name initialize
+# wrong constant name <static-init>
+# wrong constant name initialize
+# wrong constant name <static-init>
+# uninitialized constant Gem::S3URISigner::S3Config::Elem
+# wrong constant name access_key_id
+# wrong constant name access_key_id=
+# wrong constant name region
+# wrong constant name region=
+# wrong constant name secret_access_key
+# wrong constant name secret_access_key=
+# wrong constant name security_token
+# wrong constant name security_token=
+# wrong constant name <static-init>
+# wrong constant name []
+# wrong constant name members
+# wrong constant name <static-init>
+# wrong constant name <=>
+# uninitialized constant Gem::Specification::GENERICS
+# uninitialized constant Gem::Specification::GENERIC_CACHE
+# wrong constant name _deprecated_rubyforge_project=
+# undefined singleton method `default_stubs<defaultArg>1' for `Gem::Specification'
+# wrong constant name default_stubs<defaultArg>1
+# wrong constant name default_stubs
+# wrong constant name correct_for_windows_path
+# wrong constant name add_to_load_path
+# wrong constant name default_specifications_dir
+# wrong constant name java_platform?
+# wrong constant name source_date_epoch
+# wrong constant name suffix_regexp
+# wrong constant name <
+# wrong constant name <=
+# wrong constant name >
+# wrong constant name >=
+# wrong constant name compact
+# wrong constant name compact!
+# wrong constant name deconstruct_keys
+# wrong constant name default_proc
+# wrong constant name default_proc=
+# wrong constant name fetch_values
+# wrong constant name flatten
+# wrong constant name index
+# wrong constant name replace
+# wrong constant name slice
+# wrong constant name to_h
+# wrong constant name to_proc
+# wrong constant name transform_keys
+# wrong constant name transform_keys!
+# wrong constant name transform_values
+# wrong constant name transform_values!
+# wrong constant name update
+# wrong constant name try_convert
+# undefined method `read_nonblock<defaultArg>1' for class `IO'
+# undefined method `read_nonblock<defaultArg>2' for class `IO'
+# undefined method `write_nonblock<defaultArg>1' for class `IO'
+# wrong constant name external_encoding
+# wrong constant name nonblock
+# wrong constant name nonblock=
+# wrong constant name nonblock?
+# wrong constant name nread
+# wrong constant name pathconf
+# wrong constant name pread
+# wrong constant name pwrite
+# wrong constant name read_nonblock<defaultArg>1
+# wrong constant name read_nonblock<defaultArg>2
+# wrong constant name ready?
+# wrong constant name set_encoding_by_bom
+# wrong constant name wait
+# wrong constant name wait_readable
+# wrong constant name wait_writable
+# wrong constant name write_nonblock<defaultArg>1
+# wrong constant name write_nonblock
+# wrong constant name foreach
+# undefined method `initialize<defaultArg>1' for class `IPAddr'
+# undefined method `initialize<defaultArg>2' for class `IPAddr'
+# wrong constant name &
+# wrong constant name <<
+# wrong constant name <=>
+# wrong constant name ==
+# wrong constant name ===
+# wrong constant name >>
+# wrong constant name <Class:AddressFamilyError>
+# wrong constant name <Class:Error>
+# wrong constant name <Class:InvalidAddressError>
+# wrong constant name <Class:InvalidPrefixError>
+# wrong constant name eql?
+# wrong constant name family
+# wrong constant name hton
+# wrong constant name include?
+# wrong constant name initialize<defaultArg>1
+# wrong constant name initialize<defaultArg>2
+# wrong constant name initialize
+# wrong constant name ip6_arpa
+# wrong constant name ip6_int
+# wrong constant name ipv4?
+# wrong constant name ipv4_compat
+# wrong constant name ipv4_compat?
+# wrong constant name ipv4_mapped
+# wrong constant name ipv4_mapped?
+# wrong constant name ipv6?
+# wrong constant name link_local?
+# wrong constant name loopback?
+# wrong constant name mask
+# wrong constant name mask!
+# wrong constant name native
+# wrong constant name prefix
+# wrong constant name prefix=
+# wrong constant name private?
+# wrong constant name reverse
+# wrong constant name set
+# wrong constant name succ
+# wrong constant name to_i
+# wrong constant name to_range
+# wrong constant name to_string
+# wrong constant name |
+# wrong constant name ~
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name new_ntoh
+# wrong constant name ntop
+# wrong constant name allbits?
+# wrong constant name anybits?
+# wrong constant name digits
+# wrong constant name nobits?
+# wrong constant name pow
+# wrong constant name to_bn
+# wrong constant name sqrt
+# wrong constant name from_state
+# wrong constant name initialize
+# wrong constant name gem
+# wrong constant name itself
+# wrong constant name object_id
+# wrong constant name pretty_inspect
+# wrong constant name respond_to?
+# wrong constant name then
+# wrong constant name yield_self
+# wrong constant name at_exit
+# wrong constant name key
+# wrong constant name receiver
+# wrong constant name path
+# wrong constant name exit_value
+# wrong constant name reason
+# uninitialized constant Logger
+# uninitialized constant Logger
+# wrong constant name restore
+# uninitialized constant MessagePack
+# uninitialized constant MessagePack
+# uninitialized constant Minitest::AbstractReporter::VERSION
+# wrong constant name lock
+# wrong constant name locked?
+# wrong constant name synchronize
+# wrong constant name try_lock
+# wrong constant name unlock
+# uninitialized constant Minitest::BenchSpec::E
+# uninitialized constant Minitest::BenchSpec::PASSTHROUGH_EXCEPTIONS
+# uninitialized constant Minitest::BenchSpec::SIGNALS
+# uninitialized constant Minitest::BenchSpec::TEARDOWN_METHODS
+# uninitialized constant Minitest::BenchSpec::UNDEFINED
+# wrong constant name []
+# wrong constant name members
+# wrong constant name must_be
+# wrong constant name must_be_close_to
+# wrong constant name must_be_empty
+# wrong constant name must_be_instance_of
+# wrong constant name must_be_kind_of
+# wrong constant name must_be_nil
+# wrong constant name must_be_same_as
+# wrong constant name must_be_silent
+# wrong constant name must_be_within_epsilon
+# wrong constant name must_equal
+# wrong constant name must_include
+# wrong constant name must_match
+# wrong constant name must_output
+# wrong constant name must_raise
+# wrong constant name must_respond_to
+# wrong constant name must_throw
+# wrong constant name path_must_exist
+# wrong constant name path_wont_exist
+# wrong constant name wont_be
+# wrong constant name wont_be_close_to
+# wrong constant name wont_be_empty
+# wrong constant name wont_be_instance_of
+# wrong constant name wont_be_kind_of
+# wrong constant name wont_be_nil
+# wrong constant name wont_be_same_as
+# wrong constant name wont_be_within_epsilon
+# wrong constant name wont_equal
+# wrong constant name wont_include
+# wrong constant name wont_match
+# wrong constant name wont_respond_to
+# undefined method `__respond_to?<defaultArg>1' for class `Minitest::Mock'
+# wrong constant name ===
+# wrong constant name __respond_to?<defaultArg>1
+# wrong constant name class
+# wrong constant name inspect
+# wrong constant name instance_eval
+# wrong constant name instance_variables
+# wrong constant name object_id
+# wrong constant name public_send
+# wrong constant name send
+# wrong constant name to_s
+# uninitialized constant Minitest::Spec::E
+# uninitialized constant Minitest::Spec::PASSTHROUGH_EXCEPTIONS
+# uninitialized constant Minitest::Spec::SIGNALS
+# uninitialized constant Minitest::Spec::TEARDOWN_METHODS
+# uninitialized constant Minitest::Spec::UNDEFINED
+# uninitialized constant Minitest::Test::E
+# uninitialized constant Minitest::Test::SIGNALS
+# uninitialized constant Minitest::Test::UNDEFINED
+# wrong constant name backtrace_filter
+# wrong constant name backtrace_filter=
+# wrong constant name extensions
+# wrong constant name extensions=
+# wrong constant name info_signal
+# wrong constant name info_signal=
+# wrong constant name parallel_executor
+# wrong constant name parallel_executor=
+# wrong constant name reporter
+# wrong constant name reporter=
+# wrong constant name const_source_location
+# wrong constant name deprecate_constant
+# wrong constant name undef_method
+# wrong constant name used_modules
+# wrong constant name enter
+# wrong constant name exit
+# wrong constant name mon_check_owner
+# wrong constant name mon_enter
+# wrong constant name mon_exit
+# wrong constant name mon_locked?
+# wrong constant name mon_owned?
+# wrong constant name mon_synchronize
+# wrong constant name mon_try_enter
+# wrong constant name new_cond
+# wrong constant name synchronize
+# wrong constant name try_enter
+# wrong constant name try_mon_enter
+# wrong constant name wait_for_cond
+# wrong constant name initialize
+# wrong constant name mon_enter
+# wrong constant name mon_exit
+# wrong constant name mon_locked?
+# wrong constant name mon_owned?
+# wrong constant name mon_synchronize
+# wrong constant name mon_try_enter
+# wrong constant name new_cond
+# wrong constant name synchronize
+# wrong constant name try_mon_enter
+# undefined method `wait<defaultArg>1' for class `MonitorMixin::ConditionVariable'
+# wrong constant name broadcast
+# wrong constant name initialize
+# wrong constant name signal
+# wrong constant name wait<defaultArg>1
+# wrong constant name wait
+# wrong constant name wait_until
+# wrong constant name wait_while
+# uninitialized constant MonitorMixin::ConditionVariable::Timeout
+# uninitialized constant MonitorMixin::ConditionVariable::Timeout
+# wrong constant name extend_object
+# wrong constant name name
+# wrong constant name receiver
+# undefined method `initialize<defaultArg>4' for class `Net::BufferedIO'
+# wrong constant name initialize<defaultArg>4
+# wrong constant name write_timeout
+# wrong constant name write_timeout=
+# uninitialized constant Net::FTP
+# uninitialized constant Net::FTP
+# uninitialized constant Net::FTPConnectionError
+# uninitialized constant Net::FTPConnectionError
+# uninitialized constant Net::FTPError
+# uninitialized constant Net::FTPError
+# uninitialized constant Net::FTPPermError
+# uninitialized constant Net::FTPPermError
+# uninitialized constant Net::FTPProtoError
+# uninitialized constant Net::FTPProtoError
+# uninitialized constant Net::FTPReplyError
+# uninitialized constant Net::FTPReplyError
+# uninitialized constant Net::FTPTempError
+# uninitialized constant Net::FTPTempError
+# wrong constant name max_retries
+# wrong constant name max_retries=
+# wrong constant name max_version
+# wrong constant name max_version=
+# wrong constant name min_version
+# wrong constant name min_version=
+# wrong constant name write_timeout
+# wrong constant name write_timeout=
+# uninitialized constant Net::HTTP::DigestAuth
+# uninitialized constant Net::HTTP::DigestAuth
+# uninitialized constant Net::HTTP::Persistent
+# uninitialized constant Net::HTTP::Persistent
+# uninitialized constant Net::HTTPAlreadyReported::CODE_CLASS_TO_OBJ
+# uninitialized constant Net::HTTPAlreadyReported::CODE_TO_OBJ
+# wrong constant name <static-init>
+# uninitialized constant Net::HTTPEarlyHints::CODE_CLASS_TO_OBJ
+# uninitialized constant Net::HTTPEarlyHints::CODE_TO_OBJ
+# wrong constant name <static-init>
+# uninitialized constant Net::HTTPGatewayTimeout::CODE_CLASS_TO_OBJ
+# uninitialized constant Net::HTTPGatewayTimeout::CODE_TO_OBJ
+# wrong constant name <static-init>
+# uninitialized constant Net::HTTPLoopDetected::CODE_CLASS_TO_OBJ
+# uninitialized constant Net::HTTPLoopDetected::CODE_TO_OBJ
+# wrong constant name <static-init>
+# uninitialized constant Net::HTTPMisdirectedRequest::CODE_CLASS_TO_OBJ
+# uninitialized constant Net::HTTPMisdirectedRequest::CODE_TO_OBJ
+# wrong constant name <static-init>
+# uninitialized constant Net::HTTPNotExtended::CODE_CLASS_TO_OBJ
+# uninitialized constant Net::HTTPNotExtended::CODE_TO_OBJ
+# wrong constant name <static-init>
+# uninitialized constant Net::HTTPPayloadTooLarge::CODE_CLASS_TO_OBJ
+# uninitialized constant Net::HTTPPayloadTooLarge::CODE_TO_OBJ
+# wrong constant name <static-init>
+# uninitialized constant Net::HTTPProcessing::CODE_CLASS_TO_OBJ
+# uninitialized constant Net::HTTPProcessing::CODE_TO_OBJ
+# wrong constant name <static-init>
+# uninitialized constant Net::HTTPRangeNotSatisfiable::CODE_CLASS_TO_OBJ
+# uninitialized constant Net::HTTPRangeNotSatisfiable::CODE_TO_OBJ
+# wrong constant name <static-init>
+# uninitialized constant Net::HTTPRequestTimeout::CODE_CLASS_TO_OBJ
+# uninitialized constant Net::HTTPRequestTimeout::CODE_TO_OBJ
+# wrong constant name <static-init>
+# uninitialized constant Net::HTTPURITooLong::CODE_CLASS_TO_OBJ
+# uninitialized constant Net::HTTPURITooLong::CODE_TO_OBJ
+# wrong constant name <static-init>
+# uninitialized constant Net::HTTPVariantAlsoNegotiates::CODE_CLASS_TO_OBJ
+# uninitialized constant Net::HTTPVariantAlsoNegotiates::CODE_TO_OBJ
+# wrong constant name <static-init>
+# uninitialized constant Net::IMAP
+# uninitialized constant Net::IMAP
+# undefined method `initialize<defaultArg>1' for class `Net::ReadTimeout'
+# wrong constant name initialize<defaultArg>1
+# wrong constant name initialize
+# wrong constant name io
+# uninitialized constant Net::SMTP
+# uninitialized constant Net::SMTP
+# uninitialized constant Net::SMTPAuthenticationError
+# uninitialized constant Net::SMTPAuthenticationError
+# uninitialized constant Net::SMTPError
+# uninitialized constant Net::SMTPError
+# uninitialized constant Net::SMTPFatalError
+# uninitialized constant Net::SMTPFatalError
+# uninitialized constant Net::SMTPServerBusy
+# uninitialized constant Net::SMTPServerBusy
+# uninitialized constant Net::SMTPSyntaxError
+# uninitialized constant Net::SMTPSyntaxError
+# uninitialized constant Net::SMTPUnknownError
+# uninitialized constant Net::SMTPUnknownError
+# uninitialized constant Net::SMTPUnsupportedCommand
+# uninitialized constant Net::SMTPUnsupportedCommand
+# undefined method `initialize<defaultArg>1' for class `Net::WriteTimeout'
+# wrong constant name initialize<defaultArg>1
+# wrong constant name initialize
+# wrong constant name io
+# wrong constant name <static-init>
+# wrong constant name to_i
+# wrong constant name <static-init>
+# wrong constant name args
+# wrong constant name private_call?
+# undefined method `pry<defaultArg>1' for class `Object'
+# undefined method `pry<defaultArg>2' for class `Object'
+# undefined method `to_yaml<defaultArg>1' for class `Object'
+# uninitialized constant RUBYGEMS_ACTIVATION_MONITOR
+# wrong constant name dclone
+# wrong constant name pry<defaultArg>1
+# wrong constant name pry<defaultArg>2
+# wrong constant name pry
+# wrong constant name to_yaml<defaultArg>1
+# wrong constant name to_yaml
+# wrong constant name yaml_tag
+# wrong constant name <Class:Object>
+# wrong constant name []
+# wrong constant name []=
+# wrong constant name each
+# wrong constant name each_key
+# wrong constant name each_pair
+# wrong constant name each_value
+# wrong constant name key?
+# wrong constant name keys
+# wrong constant name length
+# wrong constant name size
+# wrong constant name values
+# undefined singleton method `garbage_collect<defaultArg>1' for `ObjectSpace'
+# undefined singleton method `garbage_collect<defaultArg>2' for `ObjectSpace'
+# undefined singleton method `garbage_collect<defaultArg>3' for `ObjectSpace'
+# wrong constant name count_objects
+# wrong constant name define_finalizer
+# wrong constant name garbage_collect<defaultArg>1
+# wrong constant name garbage_collect<defaultArg>2
+# wrong constant name garbage_collect<defaultArg>3
+# wrong constant name garbage_collect
+# wrong constant name undefine_finalizer
+# wrong constant name indefinite_length
+# wrong constant name indefinite_length=
+# wrong constant name +@
+# wrong constant name -@
+# wrong constant name /
+# wrong constant name negative?
+# uninitialized constant OpenSSL::Digest::DSS
+# uninitialized constant OpenSSL::Digest::DSS
+# uninitialized constant OpenSSL::Digest::DSS1
+# uninitialized constant OpenSSL::Digest::DSS1
+# uninitialized constant OpenSSL::Digest::SHA
+# uninitialized constant OpenSSL::Digest::SHA
+# wrong constant name <Class:KDFError>
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name hkdf
+# wrong constant name pbkdf2_hmac
+# wrong constant name scrypt
+# wrong constant name signed?
+# uninitialized constant OpenSSL::PKCS5::PKCS5Error
+# uninitialized constant OpenSSL::PKCS5::PKCS5Error
+# undefined method `to_bn<defaultArg>1' for class `OpenSSL::PKey::EC::Point'
+# wrong constant name to_bn<defaultArg>1
+# wrong constant name to_octet_string
+# wrong constant name sign_pss
+# wrong constant name verify_pss
+# wrong constant name add_certificate
+# wrong constant name alpn_protocols
+# wrong constant name alpn_protocols=
+# wrong constant name alpn_select_cb
+# wrong constant name alpn_select_cb=
+# wrong constant name enable_fallback_scsv
+# wrong constant name max_version=
+# wrong constant name min_version=
+# uninitialized constant OpenSSL::SSL::SSLSocket::BLOCK_SIZE
+# wrong constant name alpn_protocol
+# wrong constant name tmp_key
+# wrong constant name ==
+# wrong constant name ==
+# wrong constant name ==
+# wrong constant name to_utf8
+# wrong constant name ==
+# wrong constant name ==
+# wrong constant name to_der
+# wrong constant name fips_mode
+# wrong constant name additional_message
+# wrong constant name get_candidates
+# undefined method `initialize<defaultArg>1' for class `OptionParser::ParseError'
+# wrong constant name additional
+# wrong constant name additional=
+# wrong constant name initialize<defaultArg>1
+# uninitialized constant Opus
+# uninitialized constant Opus
+# undefined method `children<defaultArg>1' for class `Pathname'
+# undefined method `each_child<defaultArg>1' for class `Pathname'
+# undefined method `find<defaultArg>1' for class `Pathname'
+# wrong constant name children<defaultArg>1
+# wrong constant name each_child<defaultArg>1
+# wrong constant name empty?
+# wrong constant name find<defaultArg>1
+# wrong constant name fnmatch?
+# wrong constant name glob
+# wrong constant name make_symlink
+# wrong constant name <<
+# wrong constant name ===
+# wrong constant name >>
+# wrong constant name clone
+# wrong constant name yield
+# uninitialized constant Proc0
+# uninitialized constant Proc0
+# uninitialized constant Proc1
+# uninitialized constant Proc1
+# uninitialized constant Proc10
+# uninitialized constant Proc10
+# uninitialized constant Proc2
+# uninitialized constant Proc2
+# uninitialized constant Proc3
+# uninitialized constant Proc3
+# uninitialized constant Proc4
+# uninitialized constant Proc4
+# uninitialized constant Proc5
+# uninitialized constant Proc5
+# uninitialized constant Proc6
+# uninitialized constant Proc6
+# uninitialized constant Proc7
+# uninitialized constant Proc7
+# uninitialized constant Proc8
+# uninitialized constant Proc8
+# uninitialized constant Proc9
+# uninitialized constant Proc9
+# wrong constant name getegid
+# wrong constant name cstime
+# wrong constant name cstime=
+# wrong constant name cutime
+# wrong constant name cutime=
+# wrong constant name stime
+# wrong constant name stime=
+# wrong constant name utime
+# wrong constant name utime=
+# wrong constant name []
+# wrong constant name members
+# wrong constant name last_status
+# wrong constant name setpgrp
+# undefined method `eval<defaultArg>1' for class `Pry'
+# undefined method `initialize<defaultArg>1' for class `Pry'
+# undefined method `push_initial_binding<defaultArg>1' for class `Pry'
+# undefined method `repl<defaultArg>1' for class `Pry'
+# undefined method `set_last_result<defaultArg>1' for class `Pry'
+# wrong constant name <Class:Indent>
+# wrong constant name <Class:Slop>
+# wrong constant name <Class:Terminal>
+# wrong constant name <Class:TooSafeException>
+# wrong constant name add_sticky_local
+# wrong constant name backtrace
+# wrong constant name backtrace=
+# wrong constant name binding_stack
+# wrong constant name binding_stack=
+# wrong constant name color
+# wrong constant name color=
+# wrong constant name command_state
+# wrong constant name commands
+# wrong constant name commands=
+# wrong constant name complete
+# wrong constant name config
+# wrong constant name current_binding
+# wrong constant name current_context
+# wrong constant name custom_completions
+# wrong constant name custom_completions=
+# wrong constant name editor
+# wrong constant name editor=
+# wrong constant name eval<defaultArg>1
+# wrong constant name eval
+# wrong constant name eval_string
+# wrong constant name eval_string=
+# wrong constant name evaluate_ruby
+# wrong constant name exception_handler
+# wrong constant name exception_handler=
+# wrong constant name exec_hook
+# wrong constant name exit_value
+# wrong constant name extra_sticky_locals
+# wrong constant name extra_sticky_locals=
+# wrong constant name hooks
+# wrong constant name hooks=
+# wrong constant name initialize<defaultArg>1
+# wrong constant name initialize
+# wrong constant name inject_local
+# wrong constant name inject_sticky_locals!
+# wrong constant name input
+# wrong constant name input=
+# wrong constant name input_array
+# wrong constant name input_ring
+# wrong constant name last_dir
+# wrong constant name last_dir=
+# wrong constant name last_exception
+# wrong constant name last_exception=
+# wrong constant name last_file
+# wrong constant name last_file=
+# wrong constant name last_result
+# wrong constant name last_result=
+# wrong constant name last_result_is_exception?
+# wrong constant name memory_size
+# wrong constant name memory_size=
+# wrong constant name output
+# wrong constant name output=
+# wrong constant name output_array
+# wrong constant name output_ring
+# wrong constant name pager
+# wrong constant name pager=
+# wrong constant name pop_prompt
+# wrong constant name print
+# wrong constant name print=
+# wrong constant name process_command
+# wrong constant name process_command_safely
+# wrong constant name prompt
+# wrong constant name prompt=
+# wrong constant name push_binding
+# wrong constant name push_initial_binding<defaultArg>1
+# wrong constant name push_initial_binding
+# wrong constant name push_prompt
+# wrong constant name quiet?
+# wrong constant name raise_up
+# wrong constant name raise_up!
+# wrong constant name raise_up_common
+# wrong constant name repl<defaultArg>1
+# wrong constant name repl
+# wrong constant name reset_eval_string
+# wrong constant name run_command
+# wrong constant name select_prompt
+# wrong constant name set_last_result<defaultArg>1
+# wrong constant name set_last_result
+# wrong constant name should_print?
+# wrong constant name show_result
+# wrong constant name sticky_locals
+# wrong constant name suppress_output
+# wrong constant name suppress_output=
+# wrong constant name update_input_history
+# wrong constant name <Class:AmendLine>
+# wrong constant name <Class:Bang>
+# wrong constant name <Class:BangPry>
+# uninitialized constant Pry::Command::COLORS
+# wrong constant name <Class:Cd>
+# wrong constant name <Class:DisablePry>
+# wrong constant name <Class:Exit>
+# wrong constant name <Class:ExitAll>
+# wrong constant name <Class:FindMethod>
+# wrong constant name <Class:FixIndent>
+# wrong constant name <Class:GemCd>
+# wrong constant name <Class:GemList>
+# wrong constant name <Class:GemOpen>
+# wrong constant name <Class:Gist>
+# wrong constant name <Class:Hist>
+# wrong constant name <Class:ImportSet>
+# wrong constant name <Class:JumpTo>
+# wrong constant name <Class:Play>
+# wrong constant name <Class:PryBacktrace>
+# wrong constant name <Class:ReloadCode>
+# wrong constant name <Class:Reset>
+# wrong constant name <Class:SaveFile>
+# wrong constant name <Class:ShellCommand>
+# wrong constant name <Class:ShellMode>
+# wrong constant name <Class:ShowDoc>
+# wrong constant name <Class:ShowInput>
+# wrong constant name <Class:ShowSource>
+# wrong constant name <Class:Stat>
+# wrong constant name <Class:SwitchTo>
+# uninitialized constant Pry::Command::AmendLine::COLORS
+# uninitialized constant Pry::Command::AmendLine::VOID_VALUE
+# wrong constant name <static-init>
+# uninitialized constant Pry::Command::Bang::COLORS
+# uninitialized constant Pry::Command::Bang::VOID_VALUE
+# wrong constant name <static-init>
+# uninitialized constant Pry::Command::BangPry::COLORS
+# uninitialized constant Pry::Command::BangPry::VOID_VALUE
+# wrong constant name <static-init>
+# uninitialized constant Pry::Command::Cat::COLORS
+# uninitialized constant Pry::Command::Cat::VOID_VALUE
+# wrong constant name load_path_completions
+# uninitialized constant Pry::Command::Cat::ExceptionFormatter::COLORS
+# uninitialized constant Pry::Command::Cd::COLORS
+# uninitialized constant Pry::Command::Cd::VOID_VALUE
+# wrong constant name <static-init>
+# uninitialized constant Pry::Command::DisablePry::COLORS
+# uninitialized constant Pry::Command::DisablePry::VOID_VALUE
+# wrong constant name <static-init>
+# undefined method `reload?<defaultArg>1' for class `Pry::Command::Edit'
+# uninitialized constant Pry::Command::Edit::COLORS
+# uninitialized constant Pry::Command::Edit::VOID_VALUE
+# wrong constant name apply_runtime_patch
+# wrong constant name bad_option_combination?
+# wrong constant name code_object
+# wrong constant name ensure_file_name_is_valid
+# wrong constant name file_and_line
+# wrong constant name file_and_line_for_current_exception
+# wrong constant name file_based_exception?
+# wrong constant name file_edit
+# wrong constant name filename_argument
+# wrong constant name initial_temp_file_content
+# wrong constant name input_expression
+# wrong constant name never_reload?
+# wrong constant name patch_exception?
+# wrong constant name previously_patched?
+# wrong constant name probably_a_file?
+# wrong constant name pry_method?
+# wrong constant name reload?<defaultArg>1
+# wrong constant name reload?
+# wrong constant name reloadable?
+# wrong constant name repl_edit
+# wrong constant name repl_edit?
+# wrong constant name runtime_patch?
+# uninitialized constant Pry::Command::Exit::COLORS
+# uninitialized constant Pry::Command::Exit::VOID_VALUE
+# wrong constant name process_pop_and_return
+# wrong constant name <static-init>
+# uninitialized constant Pry::Command::ExitAll::COLORS
+# uninitialized constant Pry::Command::ExitAll::VOID_VALUE
+# wrong constant name <static-init>
+# uninitialized constant Pry::Command::ExitProgram::COLORS
+# uninitialized constant Pry::Command::ExitProgram::VOID_VALUE
+# uninitialized constant Pry::Command::FindMethod::COLORS
+# uninitialized constant Pry::Command::FindMethod::VOID_VALUE
+# wrong constant name <static-init>
+# uninitialized constant Pry::Command::FixIndent::COLORS
+# uninitialized constant Pry::Command::FixIndent::VOID_VALUE
+# wrong constant name <static-init>
+# uninitialized constant Pry::Command::GemCd::COLORS
+# uninitialized constant Pry::Command::GemCd::VOID_VALUE
+# wrong constant name complete
+# wrong constant name process
+# wrong constant name <static-init>
+# uninitialized constant Pry::Command::GemInstall::COLORS
+# uninitialized constant Pry::Command::GemInstall::VOID_VALUE
+# undefined method `process<defaultArg>1' for class `Pry::Command::GemList'
+# uninitialized constant Pry::Command::GemList::COLORS
+# uninitialized constant Pry::Command::GemList::VOID_VALUE
+# wrong constant name process<defaultArg>1
+# wrong constant name process
+# wrong constant name <static-init>
+# uninitialized constant Pry::Command::GemOpen::COLORS
+# uninitialized constant Pry::Command::GemOpen::VOID_VALUE
+# wrong constant name complete
+# wrong constant name process
+# wrong constant name <static-init>
+# uninitialized constant Pry::Command::Gist::COLORS
+# uninitialized constant Pry::Command::Gist::VOID_VALUE
+# wrong constant name clipboard_content
+# wrong constant name comment_expression_result_for_gist
+# wrong constant name gist_content
+# wrong constant name input_content
+# wrong constant name <static-init>
+# uninitialized constant Pry::Command::Help::COLORS
+# uninitialized constant Pry::Command::Help::VOID_VALUE
+# uninitialized constant Pry::Command::Hist::COLORS
+# uninitialized constant Pry::Command::Hist::VOID_VALUE
+# wrong constant name <static-init>
+# uninitialized constant Pry::Command::ImportSet::COLORS
+# uninitialized constant Pry::Command::ImportSet::VOID_VALUE
+# wrong constant name process
+# wrong constant name <static-init>
+# uninitialized constant Pry::Command::InstallCommand::COLORS
+# uninitialized constant Pry::Command::InstallCommand::VOID_VALUE
+# uninitialized constant Pry::Command::JumpTo::COLORS
+# uninitialized constant Pry::Command::JumpTo::VOID_VALUE
+# wrong constant name process
+# wrong constant name <static-init>
+# uninitialized constant Pry::Command::Ls::COLORS
+# uninitialized constant Pry::Command::Ls::VOID_VALUE
+# wrong constant name no_user_opts?
+# uninitialized constant Pry::Command::Nesting::COLORS
+# uninitialized constant Pry::Command::Nesting::VOID_VALUE
+# uninitialized constant Pry::Command::Play::COLORS
+# uninitialized constant Pry::Command::Play::VOID_VALUE
+# wrong constant name code_object
+# wrong constant name content
+# wrong constant name content_after_options
+# wrong constant name content_at_expression
+# wrong constant name default_file
+# wrong constant name file_content
+# wrong constant name perform_play
+# wrong constant name should_use_default_file?
+# wrong constant name show_input
+# wrong constant name <static-init>
+# uninitialized constant Pry::Command::PryBacktrace::COLORS
+# uninitialized constant Pry::Command::PryBacktrace::VOID_VALUE
+# wrong constant name <static-init>
+# uninitialized constant Pry::Command::RaiseUp::COLORS
+# uninitialized constant Pry::Command::RaiseUp::VOID_VALUE
+# uninitialized constant Pry::Command::ReloadCode::COLORS
+# uninitialized constant Pry::Command::ReloadCode::VOID_VALUE
+# wrong constant name <static-init>
+# uninitialized constant Pry::Command::Reset::COLORS
+# uninitialized constant Pry::Command::Reset::VOID_VALUE
+# wrong constant name <static-init>
+# uninitialized constant Pry::Command::Ri::COLORS
+# uninitialized constant Pry::Command::Ri::VOID_VALUE
+# uninitialized constant Pry::Command::SaveFile::COLORS
+# uninitialized constant Pry::Command::SaveFile::VOID_VALUE
+# wrong constant name display_content
+# wrong constant name file_name
+# wrong constant name mode
+# wrong constant name save_file
+# wrong constant name <static-init>
+# uninitialized constant Pry::Command::ShellCommand::COLORS
+# uninitialized constant Pry::Command::ShellCommand::VOID_VALUE
+# wrong constant name process
+# wrong constant name <static-init>
+# uninitialized constant Pry::Command::ShellMode::COLORS
+# uninitialized constant Pry::Command::ShellMode::VOID_VALUE
+# wrong constant name <static-init>
+# uninitialized constant Pry::Command::ShowDoc::COLORS
+# uninitialized constant Pry::Command::ShowDoc::VOID_VALUE
+# wrong constant name content_for
+# wrong constant name docs_for
+# wrong constant name render_doc_markup_for
+# wrong constant name <static-init>
+# uninitialized constant Pry::Command::ShowInfo::COLORS
+# uninitialized constant Pry::Command::ShowInfo::VOID_VALUE
+# uninitialized constant Pry::Command::ShowInput::COLORS
+# uninitialized constant Pry::Command::ShowInput::VOID_VALUE
+# wrong constant name <static-init>
+# uninitialized constant Pry::Command::ShowSource::COLORS
+# uninitialized constant Pry::Command::ShowSource::VOID_VALUE
+# wrong constant name content_for
+# wrong constant name <static-init>
+# uninitialized constant Pry::Command::Stat::COLORS
+# uninitialized constant Pry::Command::Stat::VOID_VALUE
+# wrong constant name <static-init>
+# uninitialized constant Pry::Command::SwitchTo::COLORS
+# uninitialized constant Pry::Command::SwitchTo::VOID_VALUE
+# wrong constant name process
+# wrong constant name <static-init>
+# uninitialized constant Pry::Command::ToggleColor::COLORS
+# uninitialized constant Pry::Command::ToggleColor::VOID_VALUE
+# uninitialized constant Pry::Command::Version::COLORS
+# uninitialized constant Pry::Command::Version::VOID_VALUE
+# uninitialized constant Pry::Command::Whereami::COLORS
+# uninitialized constant Pry::Command::Whereami::VOID_VALUE
+# uninitialized constant Pry::Command::Wtf::COLORS
+# uninitialized constant Pry::Command::Wtf::VOID_VALUE
+# undefined method `command<defaultArg>1' for class `Pry::CommandSet'
+# undefined method `command<defaultArg>2' for class `Pry::CommandSet'
+# wrong constant name command<defaultArg>1
+# wrong constant name command<defaultArg>2
+# uninitialized constant Pry::Config::ASSIGNMENT
+# uninitialized constant Pry::Config::INSPECT_REGEXP
+# uninitialized constant Pry::Config::NODUP
+# uninitialized constant Pry::Config::RUBYGEMS_ACTIVATION_MONITOR
+# uninitialized constant Pry::Config::Default::ASSIGNMENT
+# uninitialized constant Pry::Config::Default::INSPECT_REGEXP
+# uninitialized constant Pry::Config::Default::MEMOIZED_METHODS
+# uninitialized constant Pry::Config::Default::NODUP
+# wrong constant name auto_indent
+# wrong constant name collision_warning
+# wrong constant name color
+# wrong constant name command_completions
+# wrong constant name command_prefix
+# wrong constant name commands
+# wrong constant name completer
+# wrong constant name control_d_handler
+# wrong constant name correct_indent
+# wrong constant name default_window_size
+# wrong constant name disable_auto_reload
+# wrong constant name editor
+# wrong constant name exception_handler
+# wrong constant name exception_whitelist
+# wrong constant name exec_string
+# wrong constant name extra_sticky_locals
+# wrong constant name file_completions
+# wrong constant name gist
+# wrong constant name history
+# wrong constant name hooks
+# wrong constant name input
+# wrong constant name ls
+# wrong constant name memory_size
+# wrong constant name output
+# wrong constant name output_prefix
+# wrong constant name pager
+# wrong constant name print
+# wrong constant name prompt
+# wrong constant name prompt_name
+# wrong constant name prompt_safe_contexts
+# wrong constant name quiet
+# wrong constant name requires
+# wrong constant name should_load_local_rc
+# wrong constant name should_load_plugins
+# wrong constant name should_load_rc
+# wrong constant name should_load_requires
+# wrong constant name should_trap_interrupts
+# wrong constant name system
+# wrong constant name windows_console_warning
+# undefined method `initialize<defaultArg>1' for class `Pry::Helpers::Table'
+# undefined method `rows_to_s<defaultArg>1' for class `Pry::Helpers::Table'
+# wrong constant name ==
+# wrong constant name column_count
+# wrong constant name column_count=
+# wrong constant name columns
+# wrong constant name fits_on_line?
+# wrong constant name initialize<defaultArg>1
+# wrong constant name initialize
+# wrong constant name items
+# wrong constant name items=
+# wrong constant name rows_to_s<defaultArg>1
+# wrong constant name rows_to_s
+# wrong constant name to_a
+# wrong constant name <static-init>
+# wrong constant name black
+# wrong constant name black_on_black
+# wrong constant name black_on_blue
+# wrong constant name black_on_cyan
+# wrong constant name black_on_green
+# wrong constant name black_on_magenta
+# wrong constant name black_on_purple
+# wrong constant name black_on_red
+# wrong constant name black_on_white
+# wrong constant name black_on_yellow
+# wrong constant name blue
+# wrong constant name blue_on_black
+# wrong constant name blue_on_blue
+# wrong constant name blue_on_cyan
+# wrong constant name blue_on_green
+# wrong constant name blue_on_magenta
+# wrong constant name blue_on_purple
+# wrong constant name blue_on_red
+# wrong constant name blue_on_white
+# wrong constant name blue_on_yellow
+# wrong constant name bright_black
+# wrong constant name bright_black_on_black
+# wrong constant name bright_black_on_blue
+# wrong constant name bright_black_on_cyan
+# wrong constant name bright_black_on_green
+# wrong constant name bright_black_on_magenta
+# wrong constant name bright_black_on_purple
+# wrong constant name bright_black_on_red
+# wrong constant name bright_black_on_white
+# wrong constant name bright_black_on_yellow
+# wrong constant name bright_blue
+# wrong constant name bright_blue_on_black
+# wrong constant name bright_blue_on_blue
+# wrong constant name bright_blue_on_cyan
+# wrong constant name bright_blue_on_green
+# wrong constant name bright_blue_on_magenta
+# wrong constant name bright_blue_on_purple
+# wrong constant name bright_blue_on_red
+# wrong constant name bright_blue_on_white
+# wrong constant name bright_blue_on_yellow
+# wrong constant name bright_cyan
+# wrong constant name bright_cyan_on_black
+# wrong constant name bright_cyan_on_blue
+# wrong constant name bright_cyan_on_cyan
+# wrong constant name bright_cyan_on_green
+# wrong constant name bright_cyan_on_magenta
+# wrong constant name bright_cyan_on_purple
+# wrong constant name bright_cyan_on_red
+# wrong constant name bright_cyan_on_white
+# wrong constant name bright_cyan_on_yellow
+# wrong constant name bright_green
+# wrong constant name bright_green_on_black
+# wrong constant name bright_green_on_blue
+# wrong constant name bright_green_on_cyan
+# wrong constant name bright_green_on_green
+# wrong constant name bright_green_on_magenta
+# wrong constant name bright_green_on_purple
+# wrong constant name bright_green_on_red
+# wrong constant name bright_green_on_white
+# wrong constant name bright_green_on_yellow
+# wrong constant name bright_magenta
+# wrong constant name bright_magenta_on_black
+# wrong constant name bright_magenta_on_blue
+# wrong constant name bright_magenta_on_cyan
+# wrong constant name bright_magenta_on_green
+# wrong constant name bright_magenta_on_magenta
+# wrong constant name bright_magenta_on_purple
+# wrong constant name bright_magenta_on_red
+# wrong constant name bright_magenta_on_white
+# wrong constant name bright_magenta_on_yellow
+# wrong constant name bright_purple
+# wrong constant name bright_purple_on_black
+# wrong constant name bright_purple_on_blue
+# wrong constant name bright_purple_on_cyan
+# wrong constant name bright_purple_on_green
+# wrong constant name bright_purple_on_magenta
+# wrong constant name bright_purple_on_purple
+# wrong constant name bright_purple_on_red
+# wrong constant name bright_purple_on_white
+# wrong constant name bright_purple_on_yellow
+# wrong constant name bright_red
+# wrong constant name bright_red_on_black
+# wrong constant name bright_red_on_blue
+# wrong constant name bright_red_on_cyan
+# wrong constant name bright_red_on_green
+# wrong constant name bright_red_on_magenta
+# wrong constant name bright_red_on_purple
+# wrong constant name bright_red_on_red
+# wrong constant name bright_red_on_white
+# wrong constant name bright_red_on_yellow
+# wrong constant name bright_white
+# wrong constant name bright_white_on_black
+# wrong constant name bright_white_on_blue
+# wrong constant name bright_white_on_cyan
+# wrong constant name bright_white_on_green
+# wrong constant name bright_white_on_magenta
+# wrong constant name bright_white_on_purple
+# wrong constant name bright_white_on_red
+# wrong constant name bright_white_on_white
+# wrong constant name bright_white_on_yellow
+# wrong constant name bright_yellow
+# wrong constant name bright_yellow_on_black
+# wrong constant name bright_yellow_on_blue
+# wrong constant name bright_yellow_on_cyan
+# wrong constant name bright_yellow_on_green
+# wrong constant name bright_yellow_on_magenta
+# wrong constant name bright_yellow_on_purple
+# wrong constant name bright_yellow_on_red
+# wrong constant name bright_yellow_on_white
+# wrong constant name bright_yellow_on_yellow
+# wrong constant name cyan
+# wrong constant name cyan_on_black
+# wrong constant name cyan_on_blue
+# wrong constant name cyan_on_cyan
+# wrong constant name cyan_on_green
+# wrong constant name cyan_on_magenta
+# wrong constant name cyan_on_purple
+# wrong constant name cyan_on_red
+# wrong constant name cyan_on_white
+# wrong constant name cyan_on_yellow
+# wrong constant name green
+# wrong constant name green_on_black
+# wrong constant name green_on_blue
+# wrong constant name green_on_cyan
+# wrong constant name green_on_green
+# wrong constant name green_on_magenta
+# wrong constant name green_on_purple
+# wrong constant name green_on_red
+# wrong constant name green_on_white
+# wrong constant name green_on_yellow
+# wrong constant name magenta
+# wrong constant name magenta_on_black
+# wrong constant name magenta_on_blue
+# wrong constant name magenta_on_cyan
+# wrong constant name magenta_on_green
+# wrong constant name magenta_on_magenta
+# wrong constant name magenta_on_purple
+# wrong constant name magenta_on_red
+# wrong constant name magenta_on_white
+# wrong constant name magenta_on_yellow
+# wrong constant name purple
+# wrong constant name purple_on_black
+# wrong constant name purple_on_blue
+# wrong constant name purple_on_cyan
+# wrong constant name purple_on_green
+# wrong constant name purple_on_magenta
+# wrong constant name purple_on_purple
+# wrong constant name purple_on_red
+# wrong constant name purple_on_white
+# wrong constant name purple_on_yellow
+# wrong constant name red
+# wrong constant name red_on_black
+# wrong constant name red_on_blue
+# wrong constant name red_on_cyan
+# wrong constant name red_on_green
+# wrong constant name red_on_magenta
+# wrong constant name red_on_purple
+# wrong constant name red_on_red
+# wrong constant name red_on_white
+# wrong constant name red_on_yellow
+# wrong constant name white
+# wrong constant name white_on_black
+# wrong constant name white_on_blue
+# wrong constant name white_on_cyan
+# wrong constant name white_on_green
+# wrong constant name white_on_magenta
+# wrong constant name white_on_purple
+# wrong constant name white_on_red
+# wrong constant name white_on_white
+# wrong constant name white_on_yellow
+# wrong constant name yellow
+# wrong constant name yellow_on_black
+# wrong constant name yellow_on_blue
+# wrong constant name yellow_on_cyan
+# wrong constant name yellow_on_green
+# wrong constant name yellow_on_magenta
+# wrong constant name yellow_on_purple
+# wrong constant name yellow_on_red
+# wrong constant name yellow_on_white
+# wrong constant name yellow_on_yellow
+# undefined singleton method `tablify<defaultArg>1' for `Pry::Helpers'
+# undefined singleton method `tablify_or_one_line<defaultArg>1' for `Pry::Helpers'
+# undefined singleton method `tablify_to_screen_width<defaultArg>1' for `Pry::Helpers'
+# wrong constant name tablify<defaultArg>1
+# wrong constant name tablify
+# wrong constant name tablify_or_one_line<defaultArg>1
+# wrong constant name tablify_or_one_line
+# wrong constant name tablify_to_screen_width<defaultArg>1
+# wrong constant name tablify_to_screen_width
+# undefined method `correct_indentation<defaultArg>1' for class `Pry::Indent'
+# undefined method `track_module_nesting_end<defaultArg>1' for class `Pry::Indent'
+# wrong constant name <Class:UnparseableNestingError>
+# wrong constant name correct_indentation<defaultArg>1
+# wrong constant name correct_indentation
+# wrong constant name current_prefix
+# wrong constant name end_of_statement?
+# wrong constant name in_string?
+# wrong constant name indent
+# wrong constant name indent_level
+# wrong constant name indentation_delta
+# wrong constant name module_nesting
+# wrong constant name open_delimiters
+# wrong constant name open_delimiters_line
+# wrong constant name reset
+# wrong constant name stack
+# wrong constant name tokenize
+# wrong constant name track_delimiter
+# wrong constant name track_module_nesting
+# wrong constant name track_module_nesting_end<defaultArg>1
+# wrong constant name track_module_nesting_end
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name indent
+# wrong constant name nesting_at
+# undefined method `initialize<defaultArg>1' for class `Pry::Method'
+# undefined method `respond_to?<defaultArg>1' for class `Pry::Method'
+# undefined method `super<defaultArg>1' for class `Pry::Method'
+# wrong constant name ==
+# wrong constant name alias?
+# wrong constant name aliases
+# wrong constant name bound_method?
+# wrong constant name comment
+# wrong constant name doc
+# wrong constant name dynamically_defined?
+# wrong constant name initialize<defaultArg>1
+# wrong constant name initialize
+# wrong constant name is_a?
+# wrong constant name kind_of?
+# wrong constant name method_missing
+# wrong constant name name
+# wrong constant name name_with_owner
+# wrong constant name original_name
+# wrong constant name pry_method?
+# wrong constant name redefine
+# wrong constant name respond_to?<defaultArg>1
+# wrong constant name respond_to?
+# wrong constant name signature
+# wrong constant name singleton_method?
+# wrong constant name source
+# wrong constant name source?
+# wrong constant name source_file
+# wrong constant name source_line
+# wrong constant name source_range
+# wrong constant name source_type
+# wrong constant name super<defaultArg>1
+# wrong constant name super
+# wrong constant name unbound_method?
+# wrong constant name undefined?
+# wrong constant name visibility
+# wrong constant name wrapped
+# wrong constant name wrapped_owner
+# undefined singleton method `all_from_class<defaultArg>1' for `Pry::Method'
+# undefined singleton method `all_from_common<defaultArg>1' for `Pry::Method'
+# undefined singleton method `all_from_common<defaultArg>2' for `Pry::Method'
+# undefined singleton method `all_from_obj<defaultArg>1' for `Pry::Method'
+# undefined singleton method `from_class<defaultArg>1' for `Pry::Method'
+# undefined singleton method `from_module<defaultArg>1' for `Pry::Method'
+# undefined singleton method `from_obj<defaultArg>1' for `Pry::Method'
+# undefined singleton method `from_str<defaultArg>1' for `Pry::Method'
+# undefined singleton method `from_str<defaultArg>2' for `Pry::Method'
+# undefined singleton method `lookup_method_via_binding<defaultArg>1' for `Pry::Method'
+# wrong constant name all_from_class<defaultArg>1
+# wrong constant name all_from_class
+# wrong constant name all_from_common<defaultArg>1
+# wrong constant name all_from_common<defaultArg>2
+# wrong constant name all_from_common
+# wrong constant name all_from_obj<defaultArg>1
+# wrong constant name all_from_obj
+# wrong constant name from_binding
+# wrong constant name from_class<defaultArg>1
+# wrong constant name from_class
+# wrong constant name from_module<defaultArg>1
+# wrong constant name from_module
+# wrong constant name from_obj<defaultArg>1
+# wrong constant name from_obj
+# wrong constant name from_str<defaultArg>1
+# wrong constant name from_str<defaultArg>2
+# wrong constant name from_str
+# wrong constant name instance_method_definition?
+# wrong constant name instance_resolution_order
+# wrong constant name lookup_method_via_binding<defaultArg>1
+# wrong constant name lookup_method_via_binding
+# wrong constant name method_definition?
+# wrong constant name resolution_order
+# wrong constant name singleton_class_of
+# wrong constant name singleton_class_resolution_order
+# wrong constant name singleton_method_definition?
+# wrong constant name input
+# wrong constant name output
+# undefined method `banner<defaultArg>1' for class `Pry::Slop'
+# undefined method `command<defaultArg>1' for class `Pry::Slop'
+# undefined method `description<defaultArg>1' for class `Pry::Slop'
+# undefined method `initialize<defaultArg>1' for class `Pry::Slop'
+# undefined method `parse<defaultArg>1' for class `Pry::Slop'
+# undefined method `parse!<defaultArg>1' for class `Pry::Slop'
+# undefined method `run<defaultArg>1' for class `Pry::Slop'
+# undefined method `to_h<defaultArg>1' for class `Pry::Slop'
+# undefined method `to_hash<defaultArg>1' for class `Pry::Slop'
+# wrong constant name <Class:Commands>
+# uninitialized constant Pry::Slop::Elem
+# wrong constant name <Class:Error>
+# wrong constant name <Class:InvalidArgumentError>
+# wrong constant name <Class:InvalidCommandError>
+# wrong constant name <Class:InvalidOptionError>
+# wrong constant name <Class:MissingArgumentError>
+# wrong constant name <Class:MissingOptionError>
+# wrong constant name <Class:Option>
+# wrong constant name []
+# wrong constant name add_callback
+# wrong constant name banner<defaultArg>1
+# wrong constant name banner
+# wrong constant name banner=
+# wrong constant name command<defaultArg>1
+# wrong constant name command
+# wrong constant name config
+# wrong constant name description<defaultArg>1
+# wrong constant name description
+# wrong constant name description=
+# wrong constant name each
+# wrong constant name fetch_command
+# wrong constant name fetch_option
+# wrong constant name get
+# wrong constant name help
+# wrong constant name initialize<defaultArg>1
+# wrong constant name initialize
+# wrong constant name missing
+# wrong constant name on
+# wrong constant name opt
+# wrong constant name option
+# wrong constant name options
+# wrong constant name parse<defaultArg>1
+# wrong constant name parse
+# wrong constant name parse!<defaultArg>1
+# wrong constant name parse!
+# wrong constant name present?
+# wrong constant name run<defaultArg>1
+# wrong constant name run
+# wrong constant name separator
+# wrong constant name strict?
+# wrong constant name to_h<defaultArg>1
+# wrong constant name to_h
+# wrong constant name to_hash<defaultArg>1
+# wrong constant name to_hash
+# undefined method `banner<defaultArg>1' for class `Pry::Slop::Commands'
+# undefined method `default<defaultArg>1' for class `Pry::Slop::Commands'
+# undefined method `global<defaultArg>1' for class `Pry::Slop::Commands'
+# undefined method `initialize<defaultArg>1' for class `Pry::Slop::Commands'
+# undefined method `on<defaultArg>1' for class `Pry::Slop::Commands'
+# undefined method `parse<defaultArg>1' for class `Pry::Slop::Commands'
+# undefined method `parse!<defaultArg>1' for class `Pry::Slop::Commands'
+# uninitialized constant Pry::Slop::Commands::Elem
+# wrong constant name []
+# wrong constant name arguments
+# wrong constant name banner<defaultArg>1
+# wrong constant name banner
+# wrong constant name banner=
+# wrong constant name commands
+# wrong constant name config
+# wrong constant name default<defaultArg>1
+# wrong constant name default
+# wrong constant name each
+# wrong constant name get
+# wrong constant name global<defaultArg>1
+# wrong constant name global
+# wrong constant name help
+# wrong constant name initialize<defaultArg>1
+# wrong constant name initialize
+# wrong constant name on<defaultArg>1
+# wrong constant name on
+# wrong constant name parse<defaultArg>1
+# wrong constant name parse
+# wrong constant name parse!<defaultArg>1
+# wrong constant name parse!
+# wrong constant name present?
+# wrong constant name to_hash
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# undefined method `initialize<defaultArg>1' for class `Pry::Slop::Option'
+# wrong constant name accepts_optional_argument?
+# wrong constant name argument?
+# wrong constant name argument_in_value
+# wrong constant name argument_in_value=
+# wrong constant name as?
+# wrong constant name autocreated?
+# wrong constant name call
+# wrong constant name callback?
+# wrong constant name config
+# wrong constant name count
+# wrong constant name count=
+# wrong constant name default?
+# wrong constant name delimiter?
+# wrong constant name description
+# wrong constant name expects_argument?
+# wrong constant name help
+# wrong constant name initialize<defaultArg>1
+# wrong constant name initialize
+# wrong constant name key
+# wrong constant name limit?
+# wrong constant name long
+# wrong constant name match?
+# wrong constant name optional?
+# wrong constant name optional_argument?
+# wrong constant name required?
+# wrong constant name short
+# wrong constant name tail?
+# wrong constant name types
+# wrong constant name value
+# wrong constant name value=
+# wrong constant name <static-init>
+# undefined singleton method `optspec<defaultArg>1' for `Pry::Slop'
+# undefined singleton method `parse<defaultArg>1' for `Pry::Slop'
+# undefined singleton method `parse<defaultArg>2' for `Pry::Slop'
+# undefined singleton method `parse!<defaultArg>1' for `Pry::Slop'
+# undefined singleton method `parse!<defaultArg>2' for `Pry::Slop'
+# wrong constant name <static-init>
+# wrong constant name optspec<defaultArg>1
+# wrong constant name optspec
+# wrong constant name parse<defaultArg>1
+# wrong constant name parse<defaultArg>2
+# wrong constant name parse
+# wrong constant name parse!<defaultArg>1
+# wrong constant name parse!<defaultArg>2
+# wrong constant name parse!
+# undefined singleton method `size!<defaultArg>1' for `Pry::Terminal'
+# wrong constant name <static-init>
+# wrong constant name actual_screen_size
+# wrong constant name height!
+# wrong constant name screen_size
+# wrong constant name screen_size_according_to_ansicon_env
+# wrong constant name screen_size_according_to_env
+# wrong constant name screen_size_according_to_io_console
+# wrong constant name screen_size_according_to_readline
+# wrong constant name size!<defaultArg>1
+# wrong constant name size!
+# wrong constant name width!
+# wrong constant name eval_string
+# wrong constant name eval_string=
+# wrong constant name <static-init>
+# wrong constant name ===
+# undefined method `constants<defaultArg>1' for class `Pry::WrappedModule'
+# undefined method `respond_to?<defaultArg>1' for class `Pry::WrappedModule'
+# undefined method `super<defaultArg>1' for class `Pry::WrappedModule'
+# wrong constant name candidate
+# wrong constant name candidates
+# wrong constant name class?
+# wrong constant name constants<defaultArg>1
+# wrong constant name constants
+# wrong constant name doc
+# wrong constant name file
+# wrong constant name initialize
+# wrong constant name line
+# wrong constant name method_missing
+# wrong constant name method_prefix
+# wrong constant name module?
+# wrong constant name nonblank_name
+# wrong constant name number_of_candidates
+# wrong constant name respond_to?<defaultArg>1
+# wrong constant name respond_to?
+# wrong constant name singleton_class?
+# wrong constant name singleton_instance
+# wrong constant name source
+# wrong constant name source_file
+# wrong constant name source_line
+# wrong constant name source_location
+# wrong constant name super<defaultArg>1
+# wrong constant name super
+# wrong constant name wrapped
+# wrong constant name yard_doc
+# wrong constant name yard_docs?
+# wrong constant name yard_file
+# wrong constant name yard_line
+# wrong constant name class?
+# wrong constant name module?
+# wrong constant name nonblank_name
+# wrong constant name number_of_candidates
+# wrong constant name wrapped
+# undefined singleton method `from_str<defaultArg>1' for `Pry::WrappedModule'
+# wrong constant name from_str<defaultArg>1
+# wrong constant name from_str
+# undefined singleton method `run_command<defaultArg>1' for `Pry'
+# undefined singleton method `start<defaultArg>1' for `Pry'
+# undefined singleton method `start<defaultArg>2' for `Pry'
+# undefined singleton method `view_clip<defaultArg>1' for `Pry'
+# wrong constant name auto_resize!
+# wrong constant name binding_for
+# wrong constant name cli
+# wrong constant name cli=
+# wrong constant name color
+# wrong constant name color=
+# wrong constant name commands
+# wrong constant name commands=
+# wrong constant name config
+# wrong constant name config=
+# wrong constant name configure
+# wrong constant name critical_section
+# wrong constant name current
+# wrong constant name current_line
+# wrong constant name current_line=
+# wrong constant name custom_completions
+# wrong constant name custom_completions=
+# wrong constant name default_editor_for_platform
+# wrong constant name editor
+# wrong constant name editor=
+# wrong constant name eval_path
+# wrong constant name eval_path=
+# wrong constant name exception_handler
+# wrong constant name exception_handler=
+# wrong constant name extra_sticky_locals
+# wrong constant name extra_sticky_locals=
+# wrong constant name final_session_setup
+# wrong constant name history
+# wrong constant name history=
+# wrong constant name hooks
+# wrong constant name hooks=
+# wrong constant name in_critical_section?
+# wrong constant name init
+# wrong constant name initial_session?
+# wrong constant name initial_session_setup
+# wrong constant name input
+# wrong constant name input=
+# wrong constant name last_internal_error
+# wrong constant name last_internal_error=
+# wrong constant name lazy
+# wrong constant name line_buffer
+# wrong constant name line_buffer=
+# wrong constant name load_file_at_toplevel
+# wrong constant name load_file_through_repl
+# wrong constant name load_history
+# wrong constant name load_plugins
+# wrong constant name load_rc_files
+# wrong constant name load_requires
+# wrong constant name load_traps
+# wrong constant name load_win32console
+# wrong constant name locate_plugins
+# wrong constant name main
+# wrong constant name memory_size
+# wrong constant name memory_size=
+# wrong constant name output
+# wrong constant name output=
+# wrong constant name pager
+# wrong constant name pager=
+# wrong constant name plugins
+# wrong constant name print
+# wrong constant name print=
+# wrong constant name prompt
+# wrong constant name prompt=
+# wrong constant name quiet
+# wrong constant name quiet=
+# wrong constant name rc_files_to_load
+# wrong constant name real_path_to
+# wrong constant name reset_defaults
+# wrong constant name run_command<defaultArg>1
+# wrong constant name run_command
+# wrong constant name start<defaultArg>1
+# wrong constant name start<defaultArg>2
+# wrong constant name start
+# wrong constant name toplevel_binding
+# wrong constant name toplevel_binding=
+# wrong constant name view_clip<defaultArg>1
+# wrong constant name view_clip
+# wrong constant name <Class:Stream>
+# wrong constant name <Class:Visitors>
+# wrong constant name <Class:Emitter>
+# undefined method `end_document<defaultArg>1' for class `Psych::Stream::Emitter'
+# uninitialized constant Psych::Stream::Emitter::EVENTS
+# uninitialized constant Psych::Stream::Emitter::OPTIONS
+# wrong constant name end_document<defaultArg>1
+# wrong constant name end_document
+# wrong constant name <static-init>
+# wrong constant name <Class:JSONTree>
+# wrong constant name <Class:Visitor>
+# wrong constant name <Class:YAMLTree>
+# uninitialized constant Psych::Visitors::JSONTree::DISPATCH
+# undefined singleton method `create<defaultArg>1' for `Psych::Visitors::JSONTree'
+# wrong constant name <static-init>
+# wrong constant name create<defaultArg>1
+# wrong constant name create
+# wrong constant name accept
+# wrong constant name <static-init>
+# undefined method `start<defaultArg>1' for class `Psych::Visitors::YAMLTree'
+# wrong constant name <<
+# uninitialized constant Psych::Visitors::YAMLTree::DISPATCH
+# wrong constant name finish
+# wrong constant name finished
+# wrong constant name finished?
+# wrong constant name initialize
+# wrong constant name push
+# wrong constant name start<defaultArg>1
+# wrong constant name start
+# wrong constant name started
+# wrong constant name started?
+# wrong constant name tree
+# wrong constant name visit_Array
+# wrong constant name visit_BasicObject
+# wrong constant name visit_BigDecimal
+# wrong constant name visit_Class
+# wrong constant name visit_Complex
+# wrong constant name visit_Date
+# wrong constant name visit_DateTime
+# wrong constant name visit_Delegator
+# wrong constant name visit_Encoding
+# wrong constant name visit_Enumerator
+# wrong constant name visit_Exception
+# wrong constant name visit_FalseClass
+# wrong constant name visit_Float
+# wrong constant name visit_Hash
+# wrong constant name visit_Integer
+# wrong constant name visit_Module
+# wrong constant name visit_NameError
+# wrong constant name visit_NilClass
+# wrong constant name visit_Object
+# wrong constant name visit_Psych_Omap
+# wrong constant name visit_Psych_Set
+# wrong constant name visit_Range
+# wrong constant name visit_Rational
+# wrong constant name visit_Regexp
+# wrong constant name visit_String
+# wrong constant name visit_Struct
+# wrong constant name visit_Symbol
+# wrong constant name visit_Time
+# wrong constant name visit_TrueClass
+# undefined singleton method `create<defaultArg>1' for `Psych::Visitors::YAMLTree'
+# undefined singleton method `create<defaultArg>2' for `Psych::Visitors::YAMLTree'
+# wrong constant name <static-init>
+# wrong constant name create<defaultArg>1
+# wrong constant name create<defaultArg>2
+# wrong constant name create
+# uninitialized constant Racc
+# uninitialized constant Racc
+# undefined method `alphanumeric<defaultArg>1' for module `Random::Formatter'
+# undefined method `random_bytes<defaultArg>1' for module `Random::Formatter'
+# undefined method `urlsafe_base64<defaultArg>1' for module `Random::Formatter'
+# undefined method `urlsafe_base64<defaultArg>2' for module `Random::Formatter'
+# wrong constant name alphanumeric<defaultArg>1
+# wrong constant name alphanumeric
+# wrong constant name random_bytes<defaultArg>1
+# wrong constant name urlsafe_base64<defaultArg>1
+# wrong constant name urlsafe_base64<defaultArg>2
+# wrong constant name bytes
+# wrong constant name urandom
+# wrong constant name %
+# wrong constant name entries
+# wrong constant name to_a
+# undefined singleton method `expand<defaultArg>1' for `RbConfig'
+# undefined singleton method `fire_update!<defaultArg>1' for `RbConfig'
+# undefined singleton method `fire_update!<defaultArg>2' for `RbConfig'
+# wrong constant name expand<defaultArg>1
+# wrong constant name expand
+# wrong constant name fire_update!<defaultArg>1
+# wrong constant name fire_update!<defaultArg>2
+# wrong constant name fire_update!
+# wrong constant name ruby
+# wrong constant name match?
+# uninitialized constant Ripper
+# uninitialized constant Ripper
+# wrong constant name <Class:Node>
+# undefined method `pretty_print_children<defaultArg>1' for class `RubyVM::AbstractSyntaxTree::Node'
+# wrong constant name children
+# wrong constant name first_column
+# wrong constant name first_lineno
+# wrong constant name last_column
+# wrong constant name last_lineno
+# wrong constant name pretty_print_children<defaultArg>1
+# wrong constant name pretty_print_children
+# wrong constant name type
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name of
+# wrong constant name parse
+# wrong constant name parse_file
+# wrong constant name absolute_path
+# wrong constant name base_label
+# wrong constant name disasm
+# wrong constant name disassemble
+# wrong constant name each_child
+# wrong constant name eval
+# wrong constant name first_lineno
+# wrong constant name label
+# wrong constant name path
+# wrong constant name to_a
+# wrong constant name to_binary
+# wrong constant name trace_points
+# wrong constant name compile
+# wrong constant name compile_file
+# wrong constant name compile_option
+# wrong constant name compile_option=
+# wrong constant name disasm
+# wrong constant name disassemble
+# wrong constant name load_from_binary
+# wrong constant name load_from_binary_extra_data
+# wrong constant name of
+# wrong constant name <static-init>
+# wrong constant name enabled?
+# wrong constant name pause
+# wrong constant name resume
+# wrong constant name stat
+# undefined method `flatten_merge<defaultArg>1' for class `Set'
+# undefined method `initialize<defaultArg>1' for class `Set'
+# wrong constant name ==
+# wrong constant name ===
+# wrong constant name compare_by_identity
+# wrong constant name compare_by_identity?
+# wrong constant name divide
+# wrong constant name eql?
+# wrong constant name flatten_merge<defaultArg>1
+# wrong constant name flatten_merge
+# wrong constant name initialize<defaultArg>1
+# wrong constant name pretty_print
+# wrong constant name pretty_print_cycle
+# wrong constant name reset
+# wrong constant name <static-init>
+# wrong constant name escape
+# wrong constant name join
+# wrong constant name shellescape
+# wrong constant name shelljoin
+# wrong constant name shellsplit
+# wrong constant name shellwords
+# wrong constant name split
+# wrong constant name signm
+# wrong constant name signo
+# undefined method `def_delegator<defaultArg>1' for module `SingleForwardable'
+# undefined method `def_single_delegator<defaultArg>1' for module `SingleForwardable'
+# wrong constant name def_delegator<defaultArg>1
+# wrong constant name def_delegator
+# wrong constant name def_delegators
+# wrong constant name def_single_delegator<defaultArg>1
+# wrong constant name def_single_delegator
+# wrong constant name def_single_delegators
+# wrong constant name delegate
+# wrong constant name single_delegate
+# uninitialized constant Singleton
+# uninitialized constant Singleton
+# uninitialized constant Socket::APPEND
+# uninitialized constant Socket::BINARY
+# uninitialized constant Socket::CREAT
+# uninitialized constant Socket::DSYNC
+# uninitialized constant Socket::EXCL
+# uninitialized constant Socket::FNM_CASEFOLD
+# uninitialized constant Socket::FNM_DOTMATCH
+# uninitialized constant Socket::FNM_EXTGLOB
+# uninitialized constant Socket::FNM_NOESCAPE
+# uninitialized constant Socket::FNM_PATHNAME
+# uninitialized constant Socket::FNM_SHORTNAME
+# uninitialized constant Socket::FNM_SYSCASE
+# uninitialized constant Socket::LOCK_EX
+# uninitialized constant Socket::LOCK_NB
+# uninitialized constant Socket::LOCK_SH
+# uninitialized constant Socket::LOCK_UN
+# uninitialized constant Socket::NOCTTY
+# uninitialized constant Socket::NOFOLLOW
+# uninitialized constant Socket::NONBLOCK
+# uninitialized constant Socket::NULL
+# uninitialized constant Socket::RDONLY
+# uninitialized constant Socket::RDWR
+# uninitialized constant Socket::SEEK_CUR
+# uninitialized constant Socket::SEEK_DATA
+# uninitialized constant Socket::SEEK_END
+# uninitialized constant Socket::SEEK_HOLE
+# uninitialized constant Socket::SEEK_SET
+# uninitialized constant Socket::SHARE_DELETE
+# uninitialized constant Socket::SYNC
+# uninitialized constant Socket::TRUNC
+# uninitialized constant Socket::WRONLY
+# wrong constant name []
+# wrong constant name members
+# uninitialized constant Sorbet::Private::GemGeneratorTracepoint::ClassDefinition::Elem
+# wrong constant name defs
+# wrong constant name defs=
+# wrong constant name id
+# wrong constant name id=
+# wrong constant name klass
+# wrong constant name klass=
+# wrong constant name <static-init>
+# wrong constant name []
+# wrong constant name members
+# wrong constant name initialize
+# wrong constant name serialize
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name add_to_context
+# wrong constant name disable_tracepoints
+# wrong constant name finish
+# wrong constant name install_tracepoints
+# wrong constant name on_method_added
+# wrong constant name on_module_created
+# wrong constant name on_module_extended
+# wrong constant name on_module_included
+# wrong constant name pre_cache_module_methods
+# wrong constant name register_delegate_class
+# wrong constant name start
+# wrong constant name trace
+# wrong constant name trace_results
+# wrong constant name my_require
+# wrong constant name <static-init>
+# wrong constant name cyan
+# wrong constant name emojify
+# wrong constant name init
+# wrong constant name main
+# wrong constant name make_step
+# wrong constant name usage
+# wrong constant name yellow
+# uninitialized constant Sorbet::Private::Static
+# uninitialized constant Sorbet::Private::Static
+# uninitialized constant SortedSet::InspectKey
+# wrong constant name initialize
+# wrong constant name setup
+# wrong constant name result
+# wrong constant name []=
+# wrong constant name casecmp?
+# wrong constant name each_grapheme_cluster
+# wrong constant name encode!
+# wrong constant name grapheme_clusters
+# wrong constant name reverse!
+# wrong constant name shellescape
+# wrong constant name shellsplit
+# wrong constant name succ!
+# wrong constant name undump
+# wrong constant name unicode_normalize
+# wrong constant name unicode_normalize!
+# wrong constant name unicode_normalized?
+# wrong constant name unpack1
+# wrong constant name length
+# wrong constant name set_encoding_by_bom
+# wrong constant name truncate
+# wrong constant name <<
+# wrong constant name []
+# wrong constant name beginning_of_line?
+# wrong constant name bol?
+# wrong constant name captures
+# wrong constant name charpos
+# wrong constant name check
+# wrong constant name check_until
+# wrong constant name clear
+# wrong constant name concat
+# wrong constant name empty?
+# wrong constant name exist?
+# wrong constant name fixed_anchor?
+# wrong constant name get_byte
+# wrong constant name getbyte
+# wrong constant name initialize
+# wrong constant name match?
+# wrong constant name matched
+# wrong constant name matched?
+# wrong constant name matched_size
+# wrong constant name peek
+# wrong constant name peep
+# wrong constant name pointer
+# wrong constant name pointer=
+# wrong constant name pos
+# wrong constant name pos=
+# wrong constant name post_match
+# wrong constant name pre_match
+# wrong constant name reset
+# wrong constant name rest
+# wrong constant name rest?
+# wrong constant name rest_size
+# wrong constant name restsize
+# wrong constant name scan_full
+# wrong constant name scan_until
+# wrong constant name search_full
+# wrong constant name size
+# wrong constant name skip
+# wrong constant name skip_until
+# wrong constant name string
+# wrong constant name string=
+# wrong constant name terminate
+# wrong constant name unscan
+# wrong constant name values_at
+# wrong constant name must_C_version
+# wrong constant name []
+# wrong constant name []=
+# wrong constant name deconstruct
+# wrong constant name deconstruct_keys
+# wrong constant name dig
+# wrong constant name each_pair
+# wrong constant name filter
+# wrong constant name length
+# wrong constant name members
+# wrong constant name select
+# wrong constant name size
+# wrong constant name to_a
+# wrong constant name to_h
+# wrong constant name values
+# wrong constant name values_at
+# wrong constant name <Class:Struct>
+# wrong constant name errno
+# wrong constant name status
+# wrong constant name success?
+# wrong constant name T.noreturn
+# wrong constant name T.noreturn
+# wrong constant name T.untyped
+# undefined method `close<defaultArg>1' for class `Tempfile'
+# undefined method `initialize<defaultArg>1' for class `Tempfile'
+# undefined method `initialize<defaultArg>2' for class `Tempfile'
+# undefined method `initialize<defaultArg>3' for class `Tempfile'
+# wrong constant name <Class:Remover>
+# wrong constant name _close
+# wrong constant name close<defaultArg>1
+# wrong constant name initialize<defaultArg>1
+# wrong constant name initialize<defaultArg>2
+# wrong constant name initialize<defaultArg>3
+# wrong constant name inspect
+# wrong constant name call
+# wrong constant name initialize
+# wrong constant name <static-init>
+# wrong constant name ceil
+# wrong constant name floor
+# undefined method `enable<defaultArg>1' for class `TracePoint'
+# undefined method `enable<defaultArg>2' for class `TracePoint'
+# undefined method `enable<defaultArg>3' for class `TracePoint'
+# wrong constant name enable<defaultArg>1
+# wrong constant name enable<defaultArg>2
+# wrong constant name enable<defaultArg>3
+# wrong constant name eval_script
+# wrong constant name event
+# wrong constant name instruction_sequence
+# wrong constant name parameters
+# wrong constant name stat
+# wrong constant name new
+# wrong constant name <Class:File>
+# wrong constant name decode
+# wrong constant name encode
+# wrong constant name escape
+# wrong constant name unescape
+# wrong constant name set_typecode
+# wrong constant name typecode
+# wrong constant name typecode=
+# undefined singleton method `new2<defaultArg>1' for `URI::FTP'
+# undefined singleton method `new2<defaultArg>2' for `URI::FTP'
+# wrong constant name new2<defaultArg>1
+# wrong constant name new2<defaultArg>2
+# wrong constant name new2
+# uninitialized constant URI::File::ABS_PATH
+# uninitialized constant URI::File::ABS_URI
+# uninitialized constant URI::File::ABS_URI_REF
+# uninitialized constant URI::File::DEFAULT_PARSER
+# uninitialized constant URI::File::ESCAPED
+# uninitialized constant URI::File::FRAGMENT
+# uninitialized constant URI::File::HOST
+# uninitialized constant URI::File::OPAQUE
+# uninitialized constant URI::File::PORT
+# uninitialized constant URI::File::QUERY
+# uninitialized constant URI::File::REGISTRY
+# uninitialized constant URI::File::REL_PATH
+# uninitialized constant URI::File::REL_URI
+# uninitialized constant URI::File::REL_URI_REF
+# uninitialized constant URI::File::RFC3986_PARSER
+# uninitialized constant URI::File::SCHEME
+# uninitialized constant URI::File::TBLDECWWWCOMP_
+# uninitialized constant URI::File::TBLENCWWWCOMP_
+# uninitialized constant URI::File::UNSAFE
+# uninitialized constant URI::File::URI_REF
+# uninitialized constant URI::File::USERINFO
+# uninitialized constant URI::File::USE_REGISTRY
+# uninitialized constant URI::File::VERSION
+# uninitialized constant URI::File::VERSION_CODE
+# uninitialized constant URI::File::WEB_ENCODINGS_
+# wrong constant name check_password
+# wrong constant name check_user
+# wrong constant name check_userinfo
+# wrong constant name set_userinfo
+# wrong constant name <static-init>
+# wrong constant name attributes
+# wrong constant name attributes=
+# wrong constant name dn
+# wrong constant name dn=
+# wrong constant name extensions
+# wrong constant name extensions=
+# wrong constant name filter
+# wrong constant name filter=
+# wrong constant name initialize
+# wrong constant name scope
+# wrong constant name scope=
+# wrong constant name set_attributes
+# wrong constant name set_dn
+# wrong constant name set_extensions
+# wrong constant name set_filter
+# wrong constant name set_scope
+# wrong constant name headers
+# wrong constant name headers=
+# wrong constant name initialize
+# wrong constant name set_headers
+# wrong constant name set_to
+# wrong constant name to
+# wrong constant name to=
+# wrong constant name to_mailtext
+# wrong constant name to_rfc822text
+# undefined method `escape<defaultArg>1' for class `URI::RFC2396_Parser'
+# undefined method `extract<defaultArg>1' for class `URI::RFC2396_Parser'
+# undefined method `initialize<defaultArg>1' for class `URI::RFC2396_Parser'
+# undefined method `make_regexp<defaultArg>1' for class `URI::RFC2396_Parser'
+# undefined method `unescape<defaultArg>1' for class `URI::RFC2396_Parser'
+# wrong constant name escape<defaultArg>1
+# wrong constant name escape
+# wrong constant name extract<defaultArg>1
+# wrong constant name extract
+# wrong constant name initialize<defaultArg>1
+# wrong constant name initialize
+# wrong constant name join
+# wrong constant name make_regexp<defaultArg>1
+# wrong constant name make_regexp
+# wrong constant name parse
+# wrong constant name pattern
+# wrong constant name regexp
+# wrong constant name split
+# wrong constant name unescape<defaultArg>1
+# wrong constant name unescape
+# wrong constant name join
+# wrong constant name parse
+# wrong constant name regexp
+# wrong constant name split
+# wrong constant name make_components_hash
+# undefined singleton method `extract<defaultArg>1' for `URI'
+# undefined singleton method `regexp<defaultArg>1' for `URI'
+# wrong constant name extract<defaultArg>1
+# wrong constant name get_encoding
+# wrong constant name regexp<defaultArg>1
+# wrong constant name bind_call
+# wrong constant name clone
+# wrong constant name original_name
+# wrong constant name tag
+# wrong constant name value
+# wrong constant name <static-init>
+# uninitialized constant WEBrick
+# uninitialized constant WEBrick
+# wrong constant name warn
+# wrong constant name <Class:BadAlias>
+# wrong constant name <Class:ClassLoader>
+# wrong constant name <Class:Coder>
+# wrong constant name <Class:DisallowedClass>
+# wrong constant name <Class:Emitter>
+# wrong constant name <Class:Exception>
+# wrong constant name <Class:Handler>
+# wrong constant name <Class:Handlers>
+# wrong constant name <Class:JSON>
+# wrong constant name <Class:Nodes>
+# wrong constant name <Class:Omap>
+# wrong constant name <Class:Parser>
+# wrong constant name <Class:ScalarScanner>
+# wrong constant name <Class:Set>
+# wrong constant name <Class:Stream>
+# wrong constant name <Class:Streaming>
+# wrong constant name <Class:SyntaxError>
+# wrong constant name <Class:TreeBuilder>
+# wrong constant name <Class:Visitors>
+# wrong constant name <static-init>
+# wrong constant name <Class:Restricted>
+# wrong constant name big_decimal
+# wrong constant name complex
+# wrong constant name date
+# wrong constant name date_time
+# wrong constant name exception
+# wrong constant name load
+# wrong constant name object
+# wrong constant name psych_omap
+# wrong constant name psych_set
+# wrong constant name range
+# wrong constant name rational
+# wrong constant name regexp
+# wrong constant name struct
+# wrong constant name symbol
+# wrong constant name symbolize
+# uninitialized constant Psych::ClassLoader::Restricted::BIG_DECIMAL
+# uninitialized constant Psych::ClassLoader::Restricted::CACHE
+# uninitialized constant Psych::ClassLoader::Restricted::COMPLEX
+# uninitialized constant Psych::ClassLoader::Restricted::DATE
+# uninitialized constant Psych::ClassLoader::Restricted::DATE_TIME
+# uninitialized constant Psych::ClassLoader::Restricted::EXCEPTION
+# uninitialized constant Psych::ClassLoader::Restricted::OBJECT
+# uninitialized constant Psych::ClassLoader::Restricted::PSYCH_OMAP
+# uninitialized constant Psych::ClassLoader::Restricted::PSYCH_SET
+# uninitialized constant Psych::ClassLoader::Restricted::RANGE
+# uninitialized constant Psych::ClassLoader::Restricted::RATIONAL
+# uninitialized constant Psych::ClassLoader::Restricted::REGEXP
+# uninitialized constant Psych::ClassLoader::Restricted::STRUCT
+# uninitialized constant Psych::ClassLoader::Restricted::SYMBOL
+# wrong constant name initialize
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# undefined method `map<defaultArg>1' for class `Psych::Coder'
+# undefined method `map<defaultArg>2' for class `Psych::Coder'
+# wrong constant name []
+# wrong constant name []=
+# wrong constant name add
+# wrong constant name implicit
+# wrong constant name implicit=
+# wrong constant name initialize
+# wrong constant name map<defaultArg>1
+# wrong constant name map<defaultArg>2
+# wrong constant name map
+# wrong constant name map=
+# wrong constant name object
+# wrong constant name object=
+# wrong constant name represent_map
+# wrong constant name represent_object
+# wrong constant name represent_scalar
+# wrong constant name represent_seq
+# wrong constant name scalar
+# wrong constant name scalar=
+# wrong constant name seq
+# wrong constant name seq=
+# wrong constant name style
+# wrong constant name style=
+# wrong constant name tag
+# wrong constant name tag=
+# wrong constant name type
+# wrong constant name <static-init>
+# wrong constant name initialize
+# wrong constant name <static-init>
+# uninitialized constant Psych::Emitter::EVENTS
+# uninitialized constant Psych::Emitter::OPTIONS
+# wrong constant name alias
+# wrong constant name canonical
+# wrong constant name canonical=
+# wrong constant name end_document
+# wrong constant name indentation
+# wrong constant name indentation=
+# wrong constant name initialize
+# wrong constant name line_width
+# wrong constant name line_width=
+# wrong constant name scalar
+# wrong constant name start_document
+# wrong constant name start_mapping
+# wrong constant name start_sequence
+# wrong constant name start_stream
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name <Class:DumperOptions>
+# wrong constant name alias
+# wrong constant name empty
+# wrong constant name end_document
+# wrong constant name end_mapping
+# wrong constant name end_sequence
+# wrong constant name end_stream
+# wrong constant name event_location
+# wrong constant name scalar
+# wrong constant name start_document
+# wrong constant name start_mapping
+# wrong constant name start_sequence
+# wrong constant name start_stream
+# wrong constant name streaming?
+# wrong constant name canonical
+# wrong constant name canonical=
+# wrong constant name indentation
+# wrong constant name indentation=
+# wrong constant name line_width
+# wrong constant name line_width=
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name <Class:DocumentStream>
+# uninitialized constant Psych::Handlers::DocumentStream::EVENTS
+# uninitialized constant Psych::Handlers::DocumentStream::OPTIONS
+# wrong constant name initialize
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name <Class:RubyEvents>
+# wrong constant name <Class:Stream>
+# wrong constant name <Class:TreeBuilder>
+# wrong constant name <Class:YAMLEvents>
+# wrong constant name visit_DateTime
+# wrong constant name visit_String
+# wrong constant name visit_Symbol
+# wrong constant name visit_Time
+# wrong constant name <static-init>
+# uninitialized constant Psych::JSON::Stream::DISPATCH
+# wrong constant name <Class:Emitter>
+# uninitialized constant Psych::JSON::Stream::Emitter::EVENTS
+# uninitialized constant Psych::JSON::Stream::Emitter::OPTIONS
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# uninitialized constant Psych::JSON::TreeBuilder::EVENTS
+# uninitialized constant Psych::JSON::TreeBuilder::OPTIONS
+# wrong constant name <static-init>
+# undefined method `end_document<defaultArg>1' for module `Psych::JSON::YAMLEvents'
+# wrong constant name end_document<defaultArg>1
+# wrong constant name end_document
+# wrong constant name scalar
+# wrong constant name start_document
+# wrong constant name start_mapping
+# wrong constant name start_sequence
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name <Class:Alias>
+# wrong constant name <Class:Document>
+# wrong constant name <Class:Mapping>
+# wrong constant name <Class:Node>
+# wrong constant name <Class:Scalar>
+# wrong constant name <Class:Sequence>
+# wrong constant name <Class:Stream>
+# uninitialized constant Psych::Nodes::Alias::Elem
+# wrong constant name anchor
+# wrong constant name anchor=
+# wrong constant name initialize
+# wrong constant name <static-init>
+# undefined method `initialize<defaultArg>1' for class `Psych::Nodes::Document'
+# undefined method `initialize<defaultArg>2' for class `Psych::Nodes::Document'
+# undefined method `initialize<defaultArg>3' for class `Psych::Nodes::Document'
+# uninitialized constant Psych::Nodes::Document::Elem
+# wrong constant name implicit
+# wrong constant name implicit=
+# wrong constant name implicit_end
+# wrong constant name implicit_end=
+# wrong constant name initialize<defaultArg>1
+# wrong constant name initialize<defaultArg>2
+# wrong constant name initialize<defaultArg>3
+# wrong constant name initialize
+# wrong constant name root
+# wrong constant name tag_directives
+# wrong constant name tag_directives=
+# wrong constant name version
+# wrong constant name version=
+# wrong constant name <static-init>
+# undefined method `initialize<defaultArg>1' for class `Psych::Nodes::Mapping'
+# undefined method `initialize<defaultArg>2' for class `Psych::Nodes::Mapping'
+# undefined method `initialize<defaultArg>3' for class `Psych::Nodes::Mapping'
+# undefined method `initialize<defaultArg>4' for class `Psych::Nodes::Mapping'
+# uninitialized constant Psych::Nodes::Mapping::Elem
+# wrong constant name anchor
+# wrong constant name anchor=
+# wrong constant name implicit
+# wrong constant name implicit=
+# wrong constant name initialize<defaultArg>1
+# wrong constant name initialize<defaultArg>2
+# wrong constant name initialize<defaultArg>3
+# wrong constant name initialize<defaultArg>4
+# wrong constant name initialize
+# wrong constant name style
+# wrong constant name style=
+# wrong constant name tag=
+# wrong constant name <static-init>
+# undefined method `to_yaml<defaultArg>1' for class `Psych::Nodes::Node'
+# undefined method `to_yaml<defaultArg>2' for class `Psych::Nodes::Node'
+# undefined method `yaml<defaultArg>1' for class `Psych::Nodes::Node'
+# undefined method `yaml<defaultArg>2' for class `Psych::Nodes::Node'
+# uninitialized constant Psych::Nodes::Node::Elem
+# wrong constant name alias?
+# wrong constant name children
+# wrong constant name document?
+# wrong constant name each
+# wrong constant name end_column
+# wrong constant name end_column=
+# wrong constant name end_line
+# wrong constant name end_line=
+# wrong constant name mapping?
+# wrong constant name scalar?
+# wrong constant name sequence?
+# wrong constant name start_column
+# wrong constant name start_column=
+# wrong constant name start_line
+# wrong constant name start_line=
+# wrong constant name stream?
+# wrong constant name tag
+# wrong constant name to_ruby
+# wrong constant name to_yaml<defaultArg>1
+# wrong constant name to_yaml<defaultArg>2
+# wrong constant name to_yaml
+# wrong constant name transform
+# wrong constant name yaml<defaultArg>1
+# wrong constant name yaml<defaultArg>2
+# wrong constant name yaml
+# wrong constant name <static-init>
+# undefined method `initialize<defaultArg>1' for class `Psych::Nodes::Scalar'
+# undefined method `initialize<defaultArg>2' for class `Psych::Nodes::Scalar'
+# undefined method `initialize<defaultArg>3' for class `Psych::Nodes::Scalar'
+# undefined method `initialize<defaultArg>4' for class `Psych::Nodes::Scalar'
+# undefined method `initialize<defaultArg>5' for class `Psych::Nodes::Scalar'
+# uninitialized constant Psych::Nodes::Scalar::Elem
+# wrong constant name anchor
+# wrong constant name anchor=
+# wrong constant name initialize<defaultArg>1
+# wrong constant name initialize<defaultArg>2
+# wrong constant name initialize<defaultArg>3
+# wrong constant name initialize<defaultArg>4
+# wrong constant name initialize<defaultArg>5
+# wrong constant name initialize
+# wrong constant name plain
+# wrong constant name plain=
+# wrong constant name quoted
+# wrong constant name quoted=
+# wrong constant name style
+# wrong constant name style=
+# wrong constant name tag=
+# wrong constant name value
+# wrong constant name value=
+# wrong constant name <static-init>
+# undefined method `initialize<defaultArg>1' for class `Psych::Nodes::Sequence'
+# undefined method `initialize<defaultArg>2' for class `Psych::Nodes::Sequence'
+# undefined method `initialize<defaultArg>3' for class `Psych::Nodes::Sequence'
+# undefined method `initialize<defaultArg>4' for class `Psych::Nodes::Sequence'
+# uninitialized constant Psych::Nodes::Sequence::Elem
+# wrong constant name anchor
+# wrong constant name anchor=
+# wrong constant name implicit
+# wrong constant name implicit=
+# wrong constant name initialize<defaultArg>1
+# wrong constant name initialize<defaultArg>2
+# wrong constant name initialize<defaultArg>3
+# wrong constant name initialize<defaultArg>4
+# wrong constant name initialize
+# wrong constant name style
+# wrong constant name style=
+# wrong constant name tag=
+# wrong constant name <static-init>
+# undefined method `initialize<defaultArg>1' for class `Psych::Nodes::Stream'
+# uninitialized constant Psych::Nodes::Stream::Elem
+# wrong constant name encoding
+# wrong constant name encoding=
+# wrong constant name initialize<defaultArg>1
+# wrong constant name initialize
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# uninitialized constant Psych::Omap::Elem
+# uninitialized constant Psych::Omap::K
+# uninitialized constant Psych::Omap::V
+# wrong constant name <static-init>
+# undefined method `initialize<defaultArg>1' for class `Psych::Parser'
+# wrong constant name <Class:Mark>
+# wrong constant name external_encoding=
+# wrong constant name handler
+# wrong constant name handler=
+# wrong constant name initialize<defaultArg>1
+# wrong constant name initialize
+# wrong constant name mark
+# wrong constant name parse
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name class_loader
+# wrong constant name initialize
+# wrong constant name parse_int
+# wrong constant name parse_time
+# wrong constant name tokenize
+# wrong constant name <static-init>
+# uninitialized constant Psych::Set::Elem
+# uninitialized constant Psych::Set::K
+# uninitialized constant Psych::Set::V
+# wrong constant name <static-init>
+# uninitialized constant Psych::Stream::DISPATCH
+# wrong constant name <static-init>
+# undefined method `start<defaultArg>1' for module `Psych::Streaming'
+# wrong constant name <Class:ClassMethods>
+# wrong constant name start<defaultArg>1
+# wrong constant name start
+# wrong constant name new
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name column
+# wrong constant name context
+# wrong constant name file
+# wrong constant name initialize
+# wrong constant name line
+# wrong constant name offset
+# wrong constant name problem
+# wrong constant name <static-init>
+# undefined method `end_document<defaultArg>1' for class `Psych::TreeBuilder'
+# uninitialized constant Psych::TreeBuilder::EVENTS
+# uninitialized constant Psych::TreeBuilder::OPTIONS
+# wrong constant name end_document<defaultArg>1
+# wrong constant name end_document
+# wrong constant name root
+# wrong constant name <static-init>
+# wrong constant name <Class:DepthFirst>
+# wrong constant name <Class:Emitter>
+# wrong constant name <Class:NoAliasRuby>
+# wrong constant name <Class:ToRuby>
+# uninitialized constant Psych::Visitors::DepthFirst::DISPATCH
+# wrong constant name initialize
+# wrong constant name <static-init>
+# undefined method `initialize<defaultArg>1' for class `Psych::Visitors::Emitter'
+# uninitialized constant Psych::Visitors::Emitter::DISPATCH
+# wrong constant name initialize<defaultArg>1
+# wrong constant name initialize
+# wrong constant name visit_Psych_Nodes_Alias
+# wrong constant name visit_Psych_Nodes_Document
+# wrong constant name visit_Psych_Nodes_Mapping
+# wrong constant name visit_Psych_Nodes_Scalar
+# wrong constant name visit_Psych_Nodes_Sequence
+# wrong constant name visit_Psych_Nodes_Stream
+# wrong constant name <static-init>
+# uninitialized constant Psych::Visitors::NoAliasRuby::DISPATCH
+# uninitialized constant Psych::Visitors::NoAliasRuby::SHOVEL
+# wrong constant name <static-init>
+# uninitialized constant Psych::Visitors::ToRuby::DISPATCH
+# wrong constant name class_loader
+# wrong constant name initialize
+# wrong constant name visit_Psych_Nodes_Alias
+# wrong constant name visit_Psych_Nodes_Document
+# wrong constant name visit_Psych_Nodes_Mapping
+# wrong constant name visit_Psych_Nodes_Scalar
+# wrong constant name visit_Psych_Nodes_Sequence
+# wrong constant name visit_Psych_Nodes_Stream
+# wrong constant name <static-init>
+# wrong constant name create
+# wrong constant name <static-init>
+# undefined singleton method `dump<defaultArg>1' for `Psych'
+# undefined singleton method `dump<defaultArg>2' for `Psych'
+# undefined singleton method `load<defaultArg>1' for `Psych'
+# undefined singleton method `load<defaultArg>2' for `Psych'
+# undefined singleton method `load<defaultArg>3' for `Psych'
+# undefined singleton method `load<defaultArg>4' for `Psych'
+# undefined singleton method `load_file<defaultArg>1' for `Psych'
+# undefined singleton method `load_stream<defaultArg>1' for `Psych'
+# undefined singleton method `load_stream<defaultArg>2' for `Psych'
+# undefined singleton method `load_stream<defaultArg>3' for `Psych'
+# undefined singleton method `parse<defaultArg>1' for `Psych'
+# undefined singleton method `parse<defaultArg>2' for `Psych'
+# undefined singleton method `parse<defaultArg>3' for `Psych'
+# undefined singleton method `parse_file<defaultArg>1' for `Psych'
+# undefined singleton method `parse_stream<defaultArg>1' for `Psych'
+# undefined singleton method `parse_stream<defaultArg>2' for `Psych'
+# undefined singleton method `safe_load<defaultArg>10' for `Psych'
+# undefined singleton method `safe_load<defaultArg>1' for `Psych'
+# undefined singleton method `safe_load<defaultArg>2' for `Psych'
+# undefined singleton method `safe_load<defaultArg>3' for `Psych'
+# undefined singleton method `safe_load<defaultArg>4' for `Psych'
+# undefined singleton method `safe_load<defaultArg>5' for `Psych'
+# undefined singleton method `safe_load<defaultArg>6' for `Psych'
+# undefined singleton method `safe_load<defaultArg>7' for `Psych'
+# undefined singleton method `safe_load<defaultArg>8' for `Psych'
+# undefined singleton method `safe_load<defaultArg>9' for `Psych'
+# wrong constant name <static-init>
+# wrong constant name add_builtin_type
+# wrong constant name add_domain_type
+# wrong constant name add_tag
+# wrong constant name domain_types
+# wrong constant name domain_types=
+# wrong constant name dump<defaultArg>1
+# wrong constant name dump<defaultArg>2
+# wrong constant name dump
+# wrong constant name dump_stream
+# wrong constant name dump_tags
+# wrong constant name dump_tags=
+# wrong constant name libyaml_version
+# wrong constant name load<defaultArg>1
+# wrong constant name load<defaultArg>2
+# wrong constant name load<defaultArg>3
+# wrong constant name load<defaultArg>4
+# wrong constant name load
+# wrong constant name load_file<defaultArg>1
+# wrong constant name load_file
+# wrong constant name load_stream<defaultArg>1
+# wrong constant name load_stream<defaultArg>2
+# wrong constant name load_stream<defaultArg>3
+# wrong constant name load_stream
+# wrong constant name load_tags
+# wrong constant name load_tags=
+# wrong constant name parse<defaultArg>1
+# wrong constant name parse<defaultArg>2
+# wrong constant name parse<defaultArg>3
+# wrong constant name parse
+# wrong constant name parse_file<defaultArg>1
+# wrong constant name parse_file
+# wrong constant name parse_stream<defaultArg>1
+# wrong constant name parse_stream<defaultArg>2
+# wrong constant name parse_stream
+# wrong constant name parser
+# wrong constant name remove_type
+# wrong constant name safe_load<defaultArg>10
+# wrong constant name safe_load<defaultArg>1
+# wrong constant name safe_load<defaultArg>2
+# wrong constant name safe_load<defaultArg>3
+# wrong constant name safe_load<defaultArg>4
+# wrong constant name safe_load<defaultArg>5
+# wrong constant name safe_load<defaultArg>6
+# wrong constant name safe_load<defaultArg>7
+# wrong constant name safe_load<defaultArg>8
+# wrong constant name safe_load<defaultArg>9
+# wrong constant name safe_load
+# wrong constant name to_json
+# wrong constant name <Class:BufError>
+# wrong constant name <Class:DataError>
+# wrong constant name <Class:Deflate>
+# wrong constant name <Class:Error>
+# wrong constant name <Class:GzipFile>
+# wrong constant name <Class:GzipReader>
+# wrong constant name <Class:GzipWriter>
+# wrong constant name <Class:Inflate>
+# wrong constant name <Class:MemError>
+# wrong constant name <Class:NeedDict>
+# wrong constant name <Class:StreamEnd>
+# wrong constant name <Class:StreamError>
+# wrong constant name <Class:VersionError>
+# wrong constant name <Class:ZStream>
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name <<
+# wrong constant name deflate
+# wrong constant name flush
+# wrong constant name initialize
+# wrong constant name params
+# wrong constant name set_dictionary
+# wrong constant name <static-init>
+# wrong constant name deflate
+# wrong constant name <static-init>
+# wrong constant name <Class:CRCError>
+# wrong constant name <Class:Error>
+# wrong constant name <Class:LengthError>
+# wrong constant name <Class:NoFooter>
+# wrong constant name close
+# wrong constant name closed?
+# wrong constant name comment
+# wrong constant name crc
+# wrong constant name finish
+# wrong constant name level
+# wrong constant name mtime
+# wrong constant name orig_name
+# wrong constant name os_code
+# wrong constant name sync
+# wrong constant name sync=
+# wrong constant name to_io
+# wrong constant name <static-init>
+# wrong constant name input
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name wrap
+# uninitialized constant Zlib::GzipReader::Elem
+# wrong constant name bytes
+# wrong constant name each
+# wrong constant name each_byte
+# wrong constant name each_char
+# wrong constant name each_line
+# wrong constant name eof
+# wrong constant name eof?
+# wrong constant name external_encoding
+# wrong constant name getbyte
+# wrong constant name getc
+# wrong constant name initialize
+# wrong constant name lineno
+# wrong constant name lineno=
+# wrong constant name lines
+# wrong constant name pos
+# wrong constant name read
+# wrong constant name readbyte
+# wrong constant name readchar
+# wrong constant name readpartial
+# wrong constant name rewind
+# wrong constant name tell
+# wrong constant name ungetbyte
+# wrong constant name ungetc
+# wrong constant name unused
+# wrong constant name <static-init>
+# wrong constant name <<
+# wrong constant name comment=
+# wrong constant name flush
+# wrong constant name initialize
+# wrong constant name mtime=
+# wrong constant name orig_name=
+# wrong constant name pos
+# wrong constant name tell
+# wrong constant name write
+# wrong constant name <static-init>
+# wrong constant name <<
+# wrong constant name add_dictionary
+# wrong constant name inflate
+# wrong constant name initialize
+# wrong constant name set_dictionary
+# wrong constant name sync
+# wrong constant name sync_point?
+# wrong constant name <static-init>
+# wrong constant name inflate
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name adler
+# wrong constant name avail_in
+# wrong constant name avail_out
+# wrong constant name avail_out=
+# wrong constant name close
+# wrong constant name closed?
+# wrong constant name data_type
+# wrong constant name end
+# wrong constant name ended?
+# wrong constant name finish
+# wrong constant name finished?
+# wrong constant name flush_next_in
+# wrong constant name flush_next_out
+# wrong constant name reset
+# wrong constant name stream_end?
+# wrong constant name total_in
+# wrong constant name total_out
+# wrong constant name <static-init>
+# wrong constant name <static-init>
+# wrong constant name adler32
+# wrong constant name adler32_combine
+# wrong constant name crc32
+# wrong constant name crc32_combine
+# wrong constant name crc_table
+# wrong constant name deflate
+# wrong constant name gunzip
+# wrong constant name gzip
+# wrong constant name inflate
+# wrong constant name zlib_version
diff --git a/2019/ruby/sorbet/rbi/hidden-definitions/hidden.rbi b/2019/ruby/sorbet/rbi/hidden-definitions/hidden.rbi
new file mode 100644
index 0000000..89517e3
--- /dev/null
+++ b/2019/ruby/sorbet/rbi/hidden-definitions/hidden.rbi
@@ -0,0 +1,7488 @@
+# This file is autogenerated. Do not edit it by hand. Regenerate it with:
+#   srb rbi hidden-definitions
+
+# typed: autogenerated
+
+class Addrinfo
+  def connect_internal(local_addrinfo, timeout=T.unsafe(nil)); end
+end
+
+class Array
+  include ::JSON::Ext::Generator::GeneratorMethods::Array
+  def bsearch(); end
+
+  def bsearch_index(); end
+
+  def collect!(); end
+
+  def deconstruct(); end
+
+  def dig(*_); end
+
+  def flatten!(*_); end
+
+  def intersection(*_); end
+
+  def pack(fmt, buffer: T.unsafe(nil)); end
+
+  def replace(_); end
+
+  def shelljoin(); end
+
+  def to_h(); end
+end
+
+class Array
+  def self.try_convert(_); end
+end
+
+class BasicObject
+  def __binding__(); end
+end
+
+BasicObject::BasicObject = BasicObject
+
+class BigDecimal
+  def clone(); end
+  EXCEPTION_NaN = ::T.let(nil, ::T.untyped)
+  SIGN_NaN = ::T.let(nil, ::T.untyped)
+  VERSION = ::T.let(nil, ::T.untyped)
+end
+
+class BigDecimal
+  def self.interpret_loosely(_); end
+end
+
+class Binding
+  def clone(); end
+
+  def irb(); end
+end
+
+class Bundler::Dependency
+  def branch(); end
+
+  def expanded_platforms(); end
+
+  def git(); end
+end
+
+Bundler::Deprecate = Gem::Deprecate
+
+class Bundler::Env
+end
+
+class Bundler::Env
+  def self.environment(); end
+
+  def self.report(options=T.unsafe(nil)); end
+
+  def self.write(io); end
+end
+
+class Bundler::Fetcher
+  def fetch_spec(spec); end
+
+  def fetchers(); end
+
+  def http_proxy(); end
+
+  def initialize(remote); end
+
+  def specs(gem_names, source); end
+
+  def specs_with_retry(gem_names, source); end
+
+  def uri(); end
+
+  def use_api(); end
+
+  def user_agent(); end
+  FAIL_ERRORS = ::T.let(nil, ::T.untyped)
+  FETCHERS = ::T.let(nil, ::T.untyped)
+  HTTP_ERRORS = ::T.let(nil, ::T.untyped)
+  NET_ERRORS = ::T.let(nil, ::T.untyped)
+end
+
+class Bundler::Fetcher::AuthenticationRequiredError
+  def initialize(remote_uri); end
+end
+
+class Bundler::Fetcher::BadAuthenticationError
+  def initialize(remote_uri); end
+end
+
+class Bundler::Fetcher::Base
+  def api_fetcher?(); end
+
+  def available?(); end
+
+  def display_uri(); end
+
+  def downloader(); end
+
+  def fetch_uri(); end
+
+  def initialize(downloader, remote, display_uri); end
+
+  def remote(); end
+
+  def remote_uri(); end
+end
+
+class Bundler::Fetcher::Base
+end
+
+class Bundler::Fetcher::CertificateFailureError
+  def initialize(remote_uri); end
+end
+
+class Bundler::Fetcher::CompactIndex
+  def available?(*args, &blk); end
+
+  def fetch_spec(*args, &blk); end
+
+  def specs(*args, &blk); end
+
+  def specs_for_names(gem_names); end
+end
+
+class Bundler::Fetcher::CompactIndex::ClientFetcher
+  def call(path, headers); end
+
+  def fetcher(); end
+
+  def fetcher=(_); end
+
+  def ui(); end
+
+  def ui=(_); end
+end
+
+class Bundler::Fetcher::CompactIndex::ClientFetcher
+  def self.[](*_); end
+
+  def self.members(); end
+end
+
+class Bundler::Fetcher::CompactIndex
+  def self.compact_index_request(method_name); end
+end
+
+class Bundler::Fetcher::Dependency
+  def dependency_api_uri(gem_names=T.unsafe(nil)); end
+
+  def dependency_specs(gem_names); end
+
+  def get_formatted_specs_and_deps(gem_list); end
+
+  def specs(gem_names, full_dependency_list=T.unsafe(nil), last_spec_list=T.unsafe(nil)); end
+
+  def unmarshalled_dep_gems(gem_names); end
+end
+
+class Bundler::Fetcher::Dependency
+end
+
+class Bundler::Fetcher::Downloader
+  def connection(); end
+
+  def fetch(uri, headers=T.unsafe(nil), counter=T.unsafe(nil)); end
+
+  def initialize(connection, redirect_limit); end
+
+  def redirect_limit(); end
+
+  def request(uri, headers); end
+end
+
+class Bundler::Fetcher::Downloader
+end
+
+class Bundler::Fetcher::Index
+  def fetch_spec(spec); end
+
+  def specs(_gem_names); end
+end
+
+class Bundler::Fetcher::Index
+end
+
+class Bundler::Fetcher::SSLError
+  def initialize(msg=T.unsafe(nil)); end
+end
+
+class Bundler::Fetcher::TooManyRequestsError
+end
+
+class Bundler::Fetcher::TooManyRequestsError
+end
+
+class Bundler::Fetcher
+  def self.api_timeout(); end
+
+  def self.api_timeout=(api_timeout); end
+
+  def self.disable_endpoint(); end
+
+  def self.disable_endpoint=(disable_endpoint); end
+
+  def self.max_retries(); end
+
+  def self.max_retries=(max_retries); end
+
+  def self.redirect_limit(); end
+
+  def self.redirect_limit=(redirect_limit); end
+end
+
+module Bundler::FileUtils
+  VERSION = ::T.let(nil, ::T.untyped)
+end
+
+class Bundler::FileUtils::Entry_
+  def link(dest); end
+end
+
+module Bundler::FileUtils
+  def self.cp_lr(src, dest, noop: T.unsafe(nil), verbose: T.unsafe(nil), dereference_root: T.unsafe(nil), remove_destination: T.unsafe(nil)); end
+
+  def self.link_entry(src, dest, dereference_root=T.unsafe(nil), remove_destination=T.unsafe(nil)); end
+end
+
+class Bundler::GemHelper
+  def allowed_push_host(); end
+
+  def already_tagged?(); end
+
+  def base(); end
+
+  def build_gem(); end
+
+  def built_gem_path(); end
+
+  def clean?(); end
+
+  def committed?(); end
+
+  def gem_key(); end
+
+  def gem_push?(); end
+
+  def gem_push_host(); end
+
+  def gemspec(); end
+
+  def git_push(remote=T.unsafe(nil)); end
+
+  def guard_clean(); end
+
+  def initialize(base=T.unsafe(nil), name=T.unsafe(nil)); end
+
+  def install(); end
+
+  def install_gem(built_gem_path=T.unsafe(nil), local=T.unsafe(nil)); end
+
+  def name(); end
+
+  def perform_git_push(options=T.unsafe(nil)); end
+
+  def rubygem_push(path); end
+
+  def sh(cmd, &block); end
+
+  def sh_with_input(cmd); end
+
+  def sh_with_status(cmd, &block); end
+
+  def spec_path(); end
+
+  def tag_version(); end
+
+  def version(); end
+
+  def version_tag(); end
+end
+
+class Bundler::GemHelper
+  def self.gemspec(&block); end
+
+  def self.install_tasks(opts=T.unsafe(nil)); end
+
+  def self.instance(); end
+
+  def self.instance=(instance); end
+end
+
+class Bundler::GemRemoteFetcher
+end
+
+class Bundler::GemRemoteFetcher
+end
+
+class Bundler::GemVersionPromoter
+  def initialize(locked_specs=T.unsafe(nil), unlock_gems=T.unsafe(nil)); end
+
+  def level(); end
+
+  def level=(value); end
+
+  def locked_specs(); end
+
+  def major?(); end
+
+  def minor?(); end
+
+  def prerelease_specified(); end
+
+  def prerelease_specified=(prerelease_specified); end
+
+  def sort_versions(dep, spec_groups); end
+
+  def strict(); end
+
+  def strict=(strict); end
+
+  def unlock_gems(); end
+  DEBUG = ::T.let(nil, ::T.untyped)
+end
+
+class Bundler::GemVersionPromoter
+end
+
+class Bundler::Graph
+  def edge_options(); end
+
+  def groups(); end
+
+  def initialize(env, output_file, show_version=T.unsafe(nil), show_requirements=T.unsafe(nil), output_format=T.unsafe(nil), without=T.unsafe(nil)); end
+
+  def node_options(); end
+
+  def output_file(); end
+
+  def output_format(); end
+
+  def relations(); end
+
+  def viz(); end
+  GRAPH_NAME = ::T.let(nil, ::T.untyped)
+end
+
+class Bundler::Graph::GraphVizClient
+  def g(); end
+
+  def initialize(graph_instance); end
+
+  def run(); end
+end
+
+class Bundler::Graph::GraphVizClient
+end
+
+class Bundler::Graph
+end
+
+class Bundler::Index
+  include ::Enumerable
+end
+
+class Bundler::Injector
+  def initialize(deps, options=T.unsafe(nil)); end
+
+  def inject(gemfile_path, lockfile_path); end
+
+  def remove(gemfile_path, lockfile_path); end
+  INJECTED_GEMS = ::T.let(nil, ::T.untyped)
+end
+
+class Bundler::Injector
+  def self.inject(new_deps, options=T.unsafe(nil)); end
+
+  def self.remove(gems, options=T.unsafe(nil)); end
+end
+
+class Bundler::Installer
+  def generate_bundler_executable_stubs(spec, options=T.unsafe(nil)); end
+
+  def generate_standalone_bundler_executable_stubs(spec); end
+
+  def initialize(root, definition); end
+
+  def post_install_messages(); end
+
+  def run(options); end
+end
+
+class Bundler::Installer
+  def self.ambiguous_gems(); end
+
+  def self.ambiguous_gems=(ambiguous_gems); end
+
+  def self.install(root, definition, options=T.unsafe(nil)); end
+end
+
+class Bundler::Molinillo::DependencyGraph
+  include ::Enumerable
+end
+
+class Bundler::Molinillo::DependencyGraph::Log
+  extend ::Enumerable
+end
+
+class Bundler::Molinillo::DependencyGraph::Vertex
+  def _recursive_predecessors(vertices=T.unsafe(nil)); end
+
+  def _recursive_successors(vertices=T.unsafe(nil)); end
+end
+
+module Bundler::Plugin::API::Source
+  def ==(other); end
+
+  def app_cache_dirname(); end
+
+  def app_cache_path(custom_path=T.unsafe(nil)); end
+
+  def bundler_plugin_api_source?(); end
+
+  def cache(spec, custom_path=T.unsafe(nil)); end
+
+  def cached!(); end
+
+  def can_lock?(spec); end
+
+  def dependency_names(); end
+
+  def dependency_names=(dependency_names); end
+
+  def double_check_for(*_); end
+
+  def eql?(other); end
+
+  def fetch_gemspec_files(); end
+
+  def gem_install_dir(); end
+
+  def hash(); end
+
+  def include?(other); end
+
+  def initialize(opts); end
+
+  def install(spec, opts); end
+
+  def install_path(); end
+
+  def installed?(); end
+
+  def name(); end
+
+  def options(); end
+
+  def options_to_lock(); end
+
+  def post_install(spec, disable_exts=T.unsafe(nil)); end
+
+  def remote!(); end
+
+  def root(); end
+
+  def specs(); end
+
+  def to_lock(); end
+
+  def to_s(); end
+
+  def unlock!(); end
+
+  def unmet_deps(); end
+
+  def uri(); end
+
+  def uri_hash(); end
+end
+
+module Bundler::Plugin::API::Source
+end
+
+module Bundler::Plugin::Events
+  GEM_AFTER_INSTALL = ::T.let(nil, ::T.untyped)
+  GEM_AFTER_INSTALL_ALL = ::T.let(nil, ::T.untyped)
+  GEM_BEFORE_INSTALL = ::T.let(nil, ::T.untyped)
+  GEM_BEFORE_INSTALL_ALL = ::T.let(nil, ::T.untyped)
+end
+
+class Bundler::Plugin::Index
+  def installed_plugins(); end
+
+  def plugin_commands(plugin); end
+end
+
+class Bundler::Plugin::Index::CommandConflict
+  def initialize(plugin, commands); end
+end
+
+class Bundler::Plugin::Index::CommandConflict
+end
+
+class Bundler::Plugin::Index::SourceConflict
+  def initialize(plugin, sources); end
+end
+
+class Bundler::Plugin::Index::SourceConflict
+end
+
+class Bundler::Plugin::Installer
+  def install(names, options); end
+
+  def install_definition(definition); end
+end
+
+class Bundler::Plugin::Installer::Git
+  def generate_bin(spec, disable_extensions=T.unsafe(nil)); end
+end
+
+class Bundler::Plugin::Installer::Git
+end
+
+class Bundler::Plugin::Installer::Rubygems
+end
+
+class Bundler::Plugin::Installer::Rubygems
+end
+
+class Bundler::Plugin::Installer
+end
+
+class Bundler::Plugin::SourceList
+end
+
+class Bundler::Plugin::SourceList
+end
+
+module Bundler::Plugin
+  def self.list(); end
+end
+
+class Bundler::ProcessLock
+end
+
+class Bundler::ProcessLock
+  def self.lock(bundle_path=T.unsafe(nil)); end
+end
+
+class Bundler::Retry
+  def attempt(&block); end
+
+  def attempts(&block); end
+
+  def current_run(); end
+
+  def current_run=(current_run); end
+
+  def initialize(name, exceptions=T.unsafe(nil), retries=T.unsafe(nil)); end
+
+  def name(); end
+
+  def name=(name); end
+
+  def total_runs(); end
+
+  def total_runs=(total_runs); end
+end
+
+class Bundler::Retry
+  def self.attempts(); end
+
+  def self.default_attempts(); end
+
+  def self.default_retries(); end
+end
+
+class Bundler::RubyGemsGemInstaller
+end
+
+class Bundler::RubyGemsGemInstaller
+end
+
+class Bundler::RubygemsIntegration
+  def add_to_load_path(paths); end
+
+  def all_specs(); end
+
+  def backport_ext_builder_monitor(); end
+
+  def correct_for_windows_path(path); end
+
+  def default_stubs(); end
+
+  def find_name(name); end
+
+  def gem_remote_fetcher(); end
+
+  def stub_rubygems(specs); end
+
+  def use_gemdeps(gemfile); end
+end
+
+class Bundler::Settings::Mirror
+  def ==(other); end
+
+  def fallback_timeout(); end
+
+  def fallback_timeout=(timeout); end
+
+  def initialize(uri=T.unsafe(nil), fallback_timeout=T.unsafe(nil)); end
+
+  def uri(); end
+
+  def uri=(uri); end
+
+  def valid?(); end
+
+  def validate!(probe=T.unsafe(nil)); end
+  DEFAULT_FALLBACK_TIMEOUT = ::T.let(nil, ::T.untyped)
+end
+
+class Bundler::Settings::Mirror
+end
+
+class Bundler::Settings::Mirrors
+  def each(&blk); end
+
+  def for(uri); end
+
+  def initialize(prober=T.unsafe(nil)); end
+
+  def parse(key, value); end
+end
+
+class Bundler::Settings::Mirrors
+end
+
+class Bundler::Settings::Validator
+end
+
+class Bundler::Settings::Validator::Rule
+  def description(); end
+
+  def fail!(key, value, *reasons); end
+
+  def initialize(keys, description, &validate); end
+
+  def k(key); end
+
+  def set(settings, key, value, *reasons); end
+
+  def validate!(key, value, settings); end
+end
+
+class Bundler::Settings::Validator::Rule
+end
+
+class Bundler::Settings::Validator
+  def self.validate!(key, value, settings); end
+end
+
+class Bundler::SpecSet
+  include ::Enumerable
+end
+
+class Bundler::Thor
+  include ::Bundler::Thor::Base
+  include ::Bundler::Thor::Invocation
+  include ::Bundler::Thor::Shell
+  def help(command=T.unsafe(nil), subcommand=T.unsafe(nil)); end
+  Correctable = ::T.let(nil, ::T.untyped)
+  HELP_MAPPINGS = ::T.let(nil, ::T.untyped)
+  TEMPLATE_EXTNAME = ::T.let(nil, ::T.untyped)
+  THOR_RESERVED_WORDS = ::T.let(nil, ::T.untyped)
+end
+
+module Bundler::Thor::Actions
+  def _cleanup_options_and_set(options, key); end
+
+  def _shared_configuration(); end
+
+  def action(instance); end
+
+  def add_file(destination, *args, &block); end
+
+  def add_link(destination, *args); end
+
+  def append_file(path, *args, &block); end
+
+  def append_to_file(path, *args, &block); end
+
+  def apply(path, config=T.unsafe(nil)); end
+
+  def behavior(); end
+
+  def behavior=(behavior); end
+
+  def chmod(path, mode, config=T.unsafe(nil)); end
+
+  def comment_lines(path, flag, *args); end
+
+  def copy_file(source, *args, &block); end
+
+  def create_file(destination, *args, &block); end
+
+  def create_link(destination, *args); end
+
+  def destination_root(); end
+
+  def destination_root=(root); end
+
+  def directory(source, *args, &block); end
+
+  def empty_directory(destination, config=T.unsafe(nil)); end
+
+  def find_in_source_paths(file); end
+
+  def get(source, *args, &block); end
+
+  def gsub_file(path, flag, *args, &block); end
+
+  def in_root(); end
+
+  def initialize(args=T.unsafe(nil), options=T.unsafe(nil), config=T.unsafe(nil)); end
+
+  def inject_into_class(path, klass, *args, &block); end
+
+  def inject_into_file(destination, *args, &block); end
+
+  def inject_into_module(path, module_name, *args, &block); end
+
+  def insert_into_file(destination, *args, &block); end
+
+  def inside(dir=T.unsafe(nil), config=T.unsafe(nil), &block); end
+
+  def link_file(source, *args); end
+
+  def prepend_file(path, *args, &block); end
+
+  def prepend_to_file(path, *args, &block); end
+
+  def relative_to_original_destination_root(path, remove_dot=T.unsafe(nil)); end
+
+  def remove_dir(path, config=T.unsafe(nil)); end
+
+  def remove_file(path, config=T.unsafe(nil)); end
+
+  def run(command, config=T.unsafe(nil)); end
+
+  def run_ruby_script(command, config=T.unsafe(nil)); end
+
+  def source_paths(); end
+
+  def template(source, *args, &block); end
+
+  def thor(command, *args); end
+
+  def uncomment_lines(path, flag, *args); end
+  WARNINGS = ::T.let(nil, ::T.untyped)
+end
+
+class Bundler::Thor::Actions::CapturableERB
+end
+
+class Bundler::Thor::Actions::CapturableERB
+end
+
+module Bundler::Thor::Actions::ClassMethods
+  def add_runtime_options!(); end
+
+  def source_paths(); end
+
+  def source_paths_for_search(); end
+
+  def source_root(path=T.unsafe(nil)); end
+end
+
+module Bundler::Thor::Actions::ClassMethods
+end
+
+class Bundler::Thor::Actions::CreateFile
+  def data(); end
+
+  def force_on_collision?(); end
+
+  def force_or_skip_or_conflict(force, skip, &block); end
+
+  def identical?(); end
+
+  def initialize(base, destination, data, config=T.unsafe(nil)); end
+
+  def on_conflict_behavior(&block); end
+
+  def render(); end
+end
+
+class Bundler::Thor::Actions::CreateFile
+end
+
+class Bundler::Thor::Actions::CreateLink
+end
+
+class Bundler::Thor::Actions::CreateLink
+end
+
+class Bundler::Thor::Actions::Directory
+  def execute!(); end
+
+  def file_level_lookup(previous_lookup); end
+
+  def files(lookup); end
+
+  def initialize(base, source, destination=T.unsafe(nil), config=T.unsafe(nil), &block); end
+
+  def source(); end
+end
+
+class Bundler::Thor::Actions::Directory
+end
+
+class Bundler::Thor::Actions::EmptyDirectory
+  def base(); end
+
+  def config(); end
+
+  def convert_encoded_instructions(filename); end
+
+  def destination(); end
+
+  def destination=(destination); end
+
+  def exists?(); end
+
+  def given_destination(); end
+
+  def initialize(base, destination, config=T.unsafe(nil)); end
+
+  def invoke!(); end
+
+  def invoke_with_conflict_check(&block); end
+
+  def on_conflict_behavior(); end
+
+  def on_file_clash_behavior(); end
+
+  def pretend?(); end
+
+  def relative_destination(); end
+
+  def revoke!(); end
+
+  def say_status(status, color); end
+end
+
+class Bundler::Thor::Actions::EmptyDirectory
+end
+
+class Bundler::Thor::Actions::InjectIntoFile
+  def behavior(); end
+
+  def flag(); end
+
+  def initialize(base, destination, data, config); end
+
+  def replace!(regexp, string, force); end
+
+  def replacement(); end
+
+  def say_status(behavior, warning: T.unsafe(nil), color: T.unsafe(nil)); end
+end
+
+class Bundler::Thor::Actions::InjectIntoFile
+end
+
+module Bundler::Thor::Actions
+  def self.included(base); end
+end
+
+class Bundler::Thor::AmbiguousCommandError
+end
+
+class Bundler::Thor::AmbiguousCommandError
+end
+
+Bundler::Thor::AmbiguousTaskError = Bundler::Thor::AmbiguousCommandError
+
+class Bundler::Thor::Argument
+  def banner(); end
+
+  def default(); end
+
+  def default_banner(); end
+
+  def description(); end
+
+  def enum(); end
+
+  def human_name(); end
+
+  def initialize(name, options=T.unsafe(nil)); end
+
+  def name(); end
+
+  def required(); end
+
+  def required?(); end
+
+  def show_default?(); end
+
+  def type(); end
+
+  def usage(); end
+
+  def valid_type?(type); end
+
+  def validate!(); end
+  VALID_TYPES = ::T.let(nil, ::T.untyped)
+end
+
+class Bundler::Thor::Argument
+end
+
+class Bundler::Thor::Arguments
+  def initialize(arguments=T.unsafe(nil)); end
+
+  def parse(args); end
+
+  def remaining(); end
+  NUMERIC = ::T.let(nil, ::T.untyped)
+end
+
+class Bundler::Thor::Arguments
+  def self.parse(*args); end
+
+  def self.split(args); end
+end
+
+module Bundler::Thor::Base
+  def args(); end
+
+  def args=(args); end
+
+  def initialize(args=T.unsafe(nil), local_options=T.unsafe(nil), config=T.unsafe(nil)); end
+
+  def options(); end
+
+  def options=(options); end
+
+  def parent_options(); end
+
+  def parent_options=(parent_options); end
+end
+
+module Bundler::Thor::Base::ClassMethods
+  def all_commands(); end
+
+  def all_tasks(); end
+
+  def argument(name, options=T.unsafe(nil)); end
+
+  def arguments(); end
+
+  def attr_accessor(*_); end
+
+  def attr_reader(*_); end
+
+  def attr_writer(*_); end
+
+  def baseclass(); end
+
+  def basename(); end
+
+  def build_option(name, options, scope); end
+
+  def build_options(options, scope); end
+
+  def check_default_type(); end
+
+  def check_default_type!(); end
+
+  def check_default_type?(); end
+
+  def check_unknown_options(); end
+
+  def check_unknown_options!(); end
+
+  def check_unknown_options?(config); end
+
+  def class_option(name, options=T.unsafe(nil)); end
+
+  def class_options(options=T.unsafe(nil)); end
+
+  def class_options_help(shell, groups=T.unsafe(nil)); end
+
+  def commands(); end
+
+  def create_command(meth); end
+
+  def create_task(meth); end
+
+  def disable_required_check?(command_name); end
+
+  def dispatch(command, given_args, given_opts, config); end
+
+  def exit_on_failure?(); end
+
+  def find_and_refresh_command(name); end
+
+  def find_and_refresh_task(name); end
+
+  def from_superclass(method, default=T.unsafe(nil)); end
+
+  def group(name=T.unsafe(nil)); end
+
+  def handle_argument_error(command, error, args, arity); end
+
+  def handle_no_command_error(command, has_namespace=T.unsafe(nil)); end
+
+  def handle_no_task_error(command, has_namespace=T.unsafe(nil)); end
+
+  def inherited(klass); end
+
+  def initialize_added(); end
+
+  def is_thor_reserved_word?(word, type); end
+
+  def method_added(meth); end
+
+  def namespace(name=T.unsafe(nil)); end
+
+  def no_commands(); end
+
+  def no_tasks(); end
+
+  def print_options(shell, options, group_name=T.unsafe(nil)); end
+
+  def public_command(*names); end
+
+  def public_task(*names); end
+
+  def remove_argument(*names); end
+
+  def remove_class_option(*names); end
+
+  def remove_command(*names); end
+
+  def remove_task(*names); end
+
+  def start(given_args=T.unsafe(nil), config=T.unsafe(nil)); end
+
+  def stop_on_unknown_option?(command_name); end
+
+  def strict_args_position(); end
+
+  def strict_args_position!(); end
+
+  def strict_args_position?(config); end
+
+  def tasks(); end
+end
+
+module Bundler::Thor::Base::ClassMethods
+end
+
+module Bundler::Thor::Base
+  def self.included(base); end
+
+  def self.register_klass_file(klass); end
+
+  def self.shell(); end
+
+  def self.shell=(shell); end
+
+  def self.subclass_files(); end
+
+  def self.subclasses(); end
+end
+
+class Bundler::Thor::Command
+  def formatted_usage(klass, namespace=T.unsafe(nil), subcommand=T.unsafe(nil)); end
+
+  def handle_argument_error?(instance, error, caller); end
+
+  def handle_no_method_error?(instance, error, caller); end
+
+  def hidden?(); end
+
+  def initialize(name, description, long_description, usage, options=T.unsafe(nil)); end
+
+  def local_method?(instance, name); end
+
+  def not_debugging?(instance); end
+
+  def private_method?(instance); end
+
+  def public_method?(instance); end
+
+  def required_arguments_for(klass, usage); end
+
+  def required_options(); end
+
+  def run(instance, args=T.unsafe(nil)); end
+
+  def sans_backtrace(backtrace, caller); end
+  FILE_REGEXP = ::T.let(nil, ::T.untyped)
+end
+
+class Bundler::Thor::Command
+end
+
+module Bundler::Thor::CoreExt
+end
+
+class Bundler::Thor::CoreExt::HashWithIndifferentAccess
+  def [](key); end
+
+  def []=(key, value); end
+
+  def convert_key(key); end
+
+  def delete(key); end
+
+  def fetch(key, *args); end
+
+  def initialize(hash=T.unsafe(nil)); end
+
+  def key?(key); end
+
+  def merge(other); end
+
+  def merge!(other); end
+
+  def method_missing(method, *args); end
+
+  def replace(other_hash); end
+
+  def reverse_merge(other); end
+
+  def reverse_merge!(other_hash); end
+
+  def values_at(*indices); end
+end
+
+class Bundler::Thor::CoreExt::HashWithIndifferentAccess
+end
+
+module Bundler::Thor::CoreExt
+end
+
+class Bundler::Thor::DynamicCommand
+  def initialize(name, options=T.unsafe(nil)); end
+end
+
+class Bundler::Thor::DynamicCommand
+end
+
+Bundler::Thor::DynamicTask = Bundler::Thor::DynamicCommand
+
+class Bundler::Thor::Error
+end
+
+class Bundler::Thor::Error
+end
+
+class Bundler::Thor::Group
+  include ::Bundler::Thor::Base
+  include ::Bundler::Thor::Invocation
+  include ::Bundler::Thor::Shell
+  def _invoke_for_class_method(klass, command=T.unsafe(nil), *args, &block); end
+end
+
+class Bundler::Thor::Group
+  extend ::Bundler::Thor::Base::ClassMethods
+  extend ::Bundler::Thor::Invocation::ClassMethods
+  def self.banner(); end
+
+  def self.desc(description=T.unsafe(nil)); end
+
+  def self.get_options_from_invocations(group_options, base_options); end
+
+  def self.handle_argument_error(command, error, _args, arity); end
+
+  def self.help(shell); end
+
+  def self.invocation_blocks(); end
+
+  def self.invocations(); end
+
+  def self.invoke(*names, &block); end
+
+  def self.invoke_from_option(*names, &block); end
+
+  def self.printable_commands(*_); end
+
+  def self.printable_tasks(*_); end
+
+  def self.remove_invocation(*names); end
+
+  def self.self_command(); end
+
+  def self.self_task(); end
+end
+
+class Bundler::Thor::HiddenCommand
+end
+
+class Bundler::Thor::HiddenCommand
+end
+
+Bundler::Thor::HiddenTask = Bundler::Thor::HiddenCommand
+
+module Bundler::Thor::Invocation
+  def _parse_initialization_options(args, opts, config); end
+
+  def _retrieve_class_and_command(name, sent_command=T.unsafe(nil)); end
+
+  def _retrieve_class_and_task(name, sent_command=T.unsafe(nil)); end
+
+  def _shared_configuration(); end
+
+  def current_command_chain(); end
+
+  def initialize(args=T.unsafe(nil), options=T.unsafe(nil), config=T.unsafe(nil), &block); end
+
+  def invoke(name=T.unsafe(nil), *args); end
+
+  def invoke_all(); end
+
+  def invoke_command(command, *args); end
+
+  def invoke_task(command, *args); end
+
+  def invoke_with_padding(*args); end
+end
+
+module Bundler::Thor::Invocation::ClassMethods
+  def prepare_for_invocation(key, name); end
+end
+
+module Bundler::Thor::Invocation::ClassMethods
+end
+
+module Bundler::Thor::Invocation
+  def self.included(base); end
+end
+
+class Bundler::Thor::InvocationError
+end
+
+class Bundler::Thor::InvocationError
+end
+
+module Bundler::Thor::LineEditor
+end
+
+class Bundler::Thor::LineEditor::Basic
+  def initialize(prompt, options); end
+
+  def options(); end
+
+  def prompt(); end
+
+  def readline(); end
+end
+
+class Bundler::Thor::LineEditor::Basic
+  def self.available?(); end
+end
+
+class Bundler::Thor::LineEditor::Readline
+end
+
+class Bundler::Thor::LineEditor::Readline::PathCompletion
+  def initialize(text); end
+
+  def matches(); end
+end
+
+class Bundler::Thor::LineEditor::Readline::PathCompletion
+end
+
+class Bundler::Thor::LineEditor::Readline
+end
+
+module Bundler::Thor::LineEditor
+  def self.best_available(); end
+
+  def self.readline(prompt, options=T.unsafe(nil)); end
+end
+
+class Bundler::Thor::MalformattedArgumentError
+end
+
+class Bundler::Thor::MalformattedArgumentError
+end
+
+class Bundler::Thor::Option
+  def aliases(); end
+
+  def array?(); end
+
+  def boolean?(); end
+
+  def dasherize(str); end
+
+  def dasherized?(); end
+
+  def group(); end
+
+  def hash?(); end
+
+  def hide(); end
+
+  def lazy_default(); end
+
+  def numeric?(); end
+
+  def repeatable(); end
+
+  def string?(); end
+
+  def switch_name(); end
+
+  def undasherize(str); end
+
+  def usage(padding=T.unsafe(nil)); end
+
+  def validate_default_type!(); end
+  VALID_TYPES = ::T.let(nil, ::T.untyped)
+end
+
+class Bundler::Thor::Option
+  def self.parse(key, value); end
+end
+
+class Bundler::Thor::Options
+  def assign_result!(option, result); end
+
+  def check_unknown!(); end
+
+  def current_is_switch?(); end
+
+  def current_is_switch_formatted?(); end
+
+  def initialize(hash_options=T.unsafe(nil), defaults=T.unsafe(nil), stop_on_unknown=T.unsafe(nil), disable_required_check=T.unsafe(nil)); end
+
+  def normalize_switch(arg); end
+
+  def parse_boolean(switch); end
+
+  def parse_peek(switch, option); end
+
+  def parsing_options?(); end
+
+  def switch?(arg); end
+
+  def switch_option(arg); end
+  EQ_RE = ::T.let(nil, ::T.untyped)
+  LONG_RE = ::T.let(nil, ::T.untyped)
+  OPTS_END = ::T.let(nil, ::T.untyped)
+  SHORT_NUM = ::T.let(nil, ::T.untyped)
+  SHORT_RE = ::T.let(nil, ::T.untyped)
+  SHORT_SQ_RE = ::T.let(nil, ::T.untyped)
+end
+
+class Bundler::Thor::Options
+  def self.to_switches(options); end
+end
+
+class Bundler::Thor::RequiredArgumentMissingError
+end
+
+class Bundler::Thor::RequiredArgumentMissingError
+end
+
+module Bundler::Thor::Sandbox
+end
+
+module Bundler::Thor::Sandbox
+end
+
+module Bundler::Thor::Shell
+  def _shared_configuration(); end
+
+  def ask(*args, &block); end
+
+  def error(*args, &block); end
+
+  def file_collision(*args, &block); end
+
+  def initialize(args=T.unsafe(nil), options=T.unsafe(nil), config=T.unsafe(nil)); end
+
+  def no?(*args, &block); end
+
+  def print_in_columns(*args, &block); end
+
+  def print_table(*args, &block); end
+
+  def print_wrapped(*args, &block); end
+
+  def say(*args, &block); end
+
+  def say_status(*args, &block); end
+
+  def set_color(*args, &block); end
+
+  def shell(); end
+
+  def shell=(shell); end
+
+  def terminal_width(*args, &block); end
+
+  def with_padding(); end
+
+  def yes?(*args, &block); end
+  SHELL_DELEGATED_METHODS = ::T.let(nil, ::T.untyped)
+end
+
+class Bundler::Thor::Shell::Basic
+  def as_unicode(); end
+
+  def ask(statement, *args); end
+
+  def ask_filtered(statement, color, options); end
+
+  def ask_simply(statement, color, options); end
+
+  def base(); end
+
+  def base=(base); end
+
+  def can_display_colors?(); end
+
+  def dynamic_width(); end
+
+  def dynamic_width_stty(); end
+
+  def dynamic_width_tput(); end
+
+  def error(statement); end
+
+  def file_collision(destination); end
+
+  def file_collision_help(); end
+
+  def git_merge_tool(); end
+
+  def indent(count=T.unsafe(nil)); end
+
+  def is?(value); end
+
+  def lookup_color(color); end
+
+  def merge(destination, content); end
+
+  def merge_tool(); end
+
+  def mute(); end
+
+  def mute?(); end
+
+  def no?(statement, color=T.unsafe(nil)); end
+
+  def padding(); end
+
+  def padding=(value); end
+
+  def prepare_message(message, *color); end
+
+  def print_in_columns(array); end
+
+  def print_table(array, options=T.unsafe(nil)); end
+
+  def print_wrapped(message, options=T.unsafe(nil)); end
+
+  def quiet?(); end
+
+  def say(message=T.unsafe(nil), color=T.unsafe(nil), force_new_line=T.unsafe(nil)); end
+
+  def say_status(status, message, log_status=T.unsafe(nil)); end
+
+  def set_color(string, *_); end
+
+  def show_diff(destination, content); end
+
+  def stderr(); end
+
+  def stdout(); end
+
+  def terminal_width(); end
+
+  def truncate(string, width); end
+
+  def unix?(); end
+
+  def yes?(statement, color=T.unsafe(nil)); end
+  DEFAULT_TERMINAL_WIDTH = ::T.let(nil, ::T.untyped)
+end
+
+class Bundler::Thor::Shell::Basic
+end
+
+class Bundler::Thor::Shell::Color
+  def are_colors_disabled?(); end
+
+  def diff_lcs_loaded?(); end
+
+  def output_diff_line(diff); end
+
+  def set_color(string, *colors); end
+  BLACK = ::T.let(nil, ::T.untyped)
+  BLUE = ::T.let(nil, ::T.untyped)
+  BOLD = ::T.let(nil, ::T.untyped)
+  CLEAR = ::T.let(nil, ::T.untyped)
+  CYAN = ::T.let(nil, ::T.untyped)
+  GREEN = ::T.let(nil, ::T.untyped)
+  MAGENTA = ::T.let(nil, ::T.untyped)
+  ON_BLACK = ::T.let(nil, ::T.untyped)
+  ON_BLUE = ::T.let(nil, ::T.untyped)
+  ON_CYAN = ::T.let(nil, ::T.untyped)
+  ON_GREEN = ::T.let(nil, ::T.untyped)
+  ON_MAGENTA = ::T.let(nil, ::T.untyped)
+  ON_RED = ::T.let(nil, ::T.untyped)
+  ON_WHITE = ::T.let(nil, ::T.untyped)
+  ON_YELLOW = ::T.let(nil, ::T.untyped)
+  RED = ::T.let(nil, ::T.untyped)
+  WHITE = ::T.let(nil, ::T.untyped)
+  YELLOW = ::T.let(nil, ::T.untyped)
+end
+
+class Bundler::Thor::Shell::Color
+end
+
+class Bundler::Thor::Shell::HTML
+  def ask(statement, color=T.unsafe(nil)); end
+
+  def diff_lcs_loaded?(); end
+
+  def output_diff_line(diff); end
+
+  def set_color(string, *colors); end
+  BLACK = ::T.let(nil, ::T.untyped)
+  BLUE = ::T.let(nil, ::T.untyped)
+  BOLD = ::T.let(nil, ::T.untyped)
+  CYAN = ::T.let(nil, ::T.untyped)
+  GREEN = ::T.let(nil, ::T.untyped)
+  MAGENTA = ::T.let(nil, ::T.untyped)
+  ON_BLACK = ::T.let(nil, ::T.untyped)
+  ON_BLUE = ::T.let(nil, ::T.untyped)
+  ON_CYAN = ::T.let(nil, ::T.untyped)
+  ON_GREEN = ::T.let(nil, ::T.untyped)
+  ON_MAGENTA = ::T.let(nil, ::T.untyped)
+  ON_RED = ::T.let(nil, ::T.untyped)
+  ON_WHITE = ::T.let(nil, ::T.untyped)
+  ON_YELLOW = ::T.let(nil, ::T.untyped)
+  RED = ::T.let(nil, ::T.untyped)
+  WHITE = ::T.let(nil, ::T.untyped)
+  YELLOW = ::T.let(nil, ::T.untyped)
+end
+
+class Bundler::Thor::Shell::HTML
+end
+
+module Bundler::Thor::Shell
+end
+
+Bundler::Thor::Task = Bundler::Thor::Command
+
+class Bundler::Thor::UndefinedCommandError
+  def all_commands(); end
+
+  def command(); end
+
+  def initialize(command, all_commands, namespace); end
+end
+
+class Bundler::Thor::UndefinedCommandError::SpellChecker
+  def corrections(); end
+
+  def error(); end
+
+  def initialize(error); end
+
+  def spell_checker(); end
+end
+
+class Bundler::Thor::UndefinedCommandError::SpellChecker
+end
+
+class Bundler::Thor::UndefinedCommandError
+end
+
+Bundler::Thor::UndefinedTaskError = Bundler::Thor::UndefinedCommandError
+
+class Bundler::Thor::UnknownArgumentError
+  def initialize(switches, unknown); end
+
+  def switches(); end
+
+  def unknown(); end
+end
+
+class Bundler::Thor::UnknownArgumentError::SpellChecker
+  def corrections(); end
+
+  def error(); end
+
+  def initialize(error); end
+
+  def spell_checker(); end
+end
+
+class Bundler::Thor::UnknownArgumentError::SpellChecker
+end
+
+class Bundler::Thor::UnknownArgumentError
+end
+
+module Bundler::Thor::Util
+end
+
+module Bundler::Thor::Util
+  def self.camel_case(str); end
+
+  def self.escape_globs(path); end
+
+  def self.find_by_namespace(namespace); end
+
+  def self.find_class_and_command_by_namespace(namespace, fallback=T.unsafe(nil)); end
+
+  def self.find_class_and_task_by_namespace(namespace, fallback=T.unsafe(nil)); end
+
+  def self.globs_for(path); end
+
+  def self.load_thorfile(path, content=T.unsafe(nil), debug=T.unsafe(nil)); end
+
+  def self.namespace_from_thor_class(constant); end
+
+  def self.namespaces_in_content(contents, file=T.unsafe(nil)); end
+
+  def self.ruby_command(); end
+
+  def self.snake_case(str); end
+
+  def self.thor_classes_in(klass); end
+
+  def self.thor_root(); end
+
+  def self.thor_root_glob(); end
+
+  def self.user_home(); end
+end
+
+class Bundler::Thor
+  extend ::Bundler::Thor::Base::ClassMethods
+  extend ::Bundler::Thor::Invocation::ClassMethods
+  def self.banner(command, namespace=T.unsafe(nil), subcommand=T.unsafe(nil)); end
+
+  def self.check_unknown_options!(options=T.unsafe(nil)); end
+
+  def self.command_help(shell, command_name); end
+
+  def self.default_command(meth=T.unsafe(nil)); end
+
+  def self.default_task(meth=T.unsafe(nil)); end
+
+  def self.desc(usage, description, options=T.unsafe(nil)); end
+
+  def self.disable_required_check(); end
+
+  def self.disable_required_check!(*command_names); end
+
+  def self.disable_required_check?(command); end
+
+  def self.dispatch(meth, given_args, given_opts, config); end
+
+  def self.dynamic_command_class(); end
+
+  def self.find_command_possibilities(meth); end
+
+  def self.find_task_possibilities(meth); end
+
+  def self.help(shell, subcommand=T.unsafe(nil)); end
+
+  def self.long_desc(long_description, options=T.unsafe(nil)); end
+
+  def self.map(mappings=T.unsafe(nil), **kw); end
+
+  def self.method_option(name, options=T.unsafe(nil)); end
+
+  def self.method_options(options=T.unsafe(nil)); end
+
+  def self.normalize_command_name(meth); end
+
+  def self.normalize_task_name(meth); end
+
+  def self.option(name, options=T.unsafe(nil)); end
+
+  def self.options(options=T.unsafe(nil)); end
+
+  def self.package_name(name, _=T.unsafe(nil)); end
+
+  def self.printable_commands(all=T.unsafe(nil), subcommand=T.unsafe(nil)); end
+
+  def self.printable_tasks(all=T.unsafe(nil), subcommand=T.unsafe(nil)); end
+
+  def self.register(klass, subcommand_name, usage, description, options=T.unsafe(nil)); end
+
+  def self.retrieve_command_name(args); end
+
+  def self.retrieve_task_name(args); end
+
+  def self.stop_on_unknown_option(); end
+
+  def self.stop_on_unknown_option!(*command_names); end
+
+  def self.stop_on_unknown_option?(command); end
+
+  def self.subcommand(subcommand, subcommand_class); end
+
+  def self.subcommand_classes(); end
+
+  def self.subcommand_help(cmd); end
+
+  def self.subcommands(); end
+
+  def self.subtask(subcommand, subcommand_class); end
+
+  def self.subtask_help(cmd); end
+
+  def self.subtasks(); end
+
+  def self.task_help(shell, command_name); end
+end
+
+class Bundler::UI::Shell
+  def add_color(string, *color); end
+
+  def ask(msg); end
+
+  def confirm(msg, newline=T.unsafe(nil)); end
+
+  def debug(msg, newline=T.unsafe(nil)); end
+
+  def debug?(); end
+
+  def error(msg, newline=T.unsafe(nil)); end
+
+  def info(msg, newline=T.unsafe(nil)); end
+
+  def initialize(options=T.unsafe(nil)); end
+
+  def level(name=T.unsafe(nil)); end
+
+  def level=(level); end
+
+  def no?(); end
+
+  def quiet?(); end
+
+  def shell=(shell); end
+
+  def silence(&blk); end
+
+  def trace(e, newline=T.unsafe(nil), force=T.unsafe(nil)); end
+
+  def unprinted_warnings(); end
+
+  def warn(msg, newline=T.unsafe(nil)); end
+
+  def yes?(msg); end
+  LEVELS = ::T.let(nil, ::T.untyped)
+end
+
+class Bundler::UI::Shell
+end
+
+module Bundler::VersionRanges
+end
+
+class Bundler::VersionRanges::NEq
+  def version(); end
+
+  def version=(_); end
+end
+
+class Bundler::VersionRanges::NEq
+  def self.[](*_); end
+
+  def self.members(); end
+end
+
+class Bundler::VersionRanges::ReqR
+  def cover?(v); end
+
+  def empty?(); end
+
+  def left(); end
+
+  def left=(_); end
+
+  def right(); end
+
+  def right=(_); end
+
+  def single?(); end
+  INFINITY = ::T.let(nil, ::T.untyped)
+  UNIVERSAL = ::T.let(nil, ::T.untyped)
+  ZERO = ::T.let(nil, ::T.untyped)
+end
+
+class Bundler::VersionRanges::ReqR::Endpoint
+  def inclusive(); end
+
+  def inclusive=(_); end
+
+  def version(); end
+
+  def version=(_); end
+end
+
+class Bundler::VersionRanges::ReqR::Endpoint
+  def self.[](*_); end
+
+  def self.members(); end
+end
+
+class Bundler::VersionRanges::ReqR
+  def self.[](*_); end
+
+  def self.members(); end
+end
+
+module Bundler::VersionRanges
+  def self.empty?(ranges, neqs); end
+
+  def self.for(requirement); end
+
+  def self.for_many(requirements); end
+end
+
+module Bundler
+  def self.original_exec(*args); end
+
+  def self.original_system(*args); end
+
+  def self.unbundled_env(); end
+
+  def self.unbundled_exec(*args); end
+
+  def self.unbundled_system(*args); end
+
+  def self.with_unbundled_env(); end
+end
+
+class Class
+  def json_creatable?(); end
+end
+
+CodeRay::Encoders::Encoder::PLUGIN_HOST = CodeRay::Encoders
+
+class CodeRay::Encoders::HTML::CSS
+  def self.load_stylesheet(style=T.unsafe(nil)); end
+end
+
+class CodeRay::Encoders::Lint
+  FILE_EXTENSION = ::T.let(nil, ::T.untyped)
+end
+
+class CodeRay::Encoders::Statistic::TypeStats
+  def self.[](*_); end
+
+  def self.members(); end
+end
+
+class CodeRay::Scanners::C
+end
+
+class CodeRay::Scanners::CPlusPlus
+end
+
+class CodeRay::Scanners::CSS
+end
+
+class CodeRay::Scanners::Clojure
+end
+
+class CodeRay::Scanners::Debug
+end
+
+class CodeRay::Scanners::Delphi
+end
+
+class CodeRay::Scanners::Diff
+end
+
+class CodeRay::Scanners::Go
+end
+
+class CodeRay::Scanners::HAML
+end
+
+class CodeRay::Scanners::HTML
+end
+
+class CodeRay::Scanners::JSON
+end
+
+class CodeRay::Scanners::Java
+end
+
+class CodeRay::Scanners::JavaScript
+end
+
+class CodeRay::Scanners::Lua
+end
+
+class CodeRay::Scanners::Python
+end
+
+class CodeRay::Scanners::Raydebug
+end
+
+class CodeRay::Scanners::Ruby
+end
+
+class CodeRay::Scanners::SQL
+end
+
+class CodeRay::Scanners::Scanner
+  include ::Enumerable
+  def binary_string(); end
+
+  def column(pos=T.unsafe(nil)); end
+
+  def each(&block); end
+
+  def file_extension(); end
+
+  def initialize(code=T.unsafe(nil), options=T.unsafe(nil)); end
+
+  def lang(); end
+
+  def line(pos=T.unsafe(nil)); end
+
+  def raise_inspect(message, tokens, state=T.unsafe(nil), ambit=T.unsafe(nil), backtrace=T.unsafe(nil)); end
+
+  def raise_inspect_arguments(message, tokens, state, ambit); end
+
+  def reset_instance(); end
+
+  def scan_rest(); end
+
+  def scan_tokens(tokens, options); end
+
+  def scanner_state_info(state); end
+
+  def set_string_from_source(source); end
+
+  def set_tokens_from_options(options); end
+
+  def setup(); end
+
+  def state(); end
+
+  def state=(state); end
+
+  def string=(code); end
+
+  def tokenize(source=T.unsafe(nil), options=T.unsafe(nil)); end
+
+  def tokens(); end
+
+  def tokens_last(tokens, n); end
+
+  def tokens_size(tokens); end
+  DEFAULT_OPTIONS = ::T.let(nil, ::T.untyped)
+  KINDS_NOT_LOC = ::T.let(nil, ::T.untyped)
+  SCANNER_STATE_INFO = ::T.let(nil, ::T.untyped)
+  SCAN_ERROR_MESSAGE = ::T.let(nil, ::T.untyped)
+end
+
+CodeRay::Scanners::Scanner::PLUGIN_HOST = CodeRay::Scanners
+
+class CodeRay::Scanners::Scanner::ScanError
+end
+
+class CodeRay::Scanners::Scanner::ScanError
+end
+
+class CodeRay::Scanners::Scanner
+  extend ::CodeRay::Plugin
+  def self.encode_with_encoding(code, target_encoding); end
+
+  def self.encoding(name=T.unsafe(nil)); end
+
+  def self.file_extension(extension=T.unsafe(nil)); end
+
+  def self.guess_encoding(s); end
+
+  def self.lang(); end
+
+  def self.normalize(code); end
+
+  def self.to_unix(code); end
+end
+
+class CodeRay::Scanners::Taskpaper
+end
+
+class CodeRay::Scanners::Text
+end
+
+class CodeRay::Scanners::YAML
+end
+
+CodeRay::Styles::Style::PLUGIN_HOST = CodeRay::Styles
+
+class CodeRay::Tokens
+  def begin_group(kind); end
+
+  def begin_line(kind); end
+
+  def count(); end
+
+  def encode(encoder, options=T.unsafe(nil)); end
+
+  def end_group(kind); end
+
+  def end_line(kind); end
+
+  def method_missing(meth, options=T.unsafe(nil)); end
+
+  def scanner(); end
+
+  def scanner=(scanner); end
+
+  def split_into_parts(*sizes); end
+
+  def text_token(*_); end
+
+  def tokens(*_); end
+end
+
+class CodeRay::Tokens
+end
+
+class Complex
+  def self.polar(*_); end
+
+  def self.rect(*_); end
+
+  def self.rectangular(*_); end
+end
+
+class Delegator
+  def !=(obj); end
+
+  def ==(obj); end
+
+  def __getobj__(); end
+
+  def __setobj__(obj); end
+
+  def eql?(obj); end
+
+  def initialize(obj); end
+
+  def marshal_dump(); end
+
+  def marshal_load(data); end
+
+  def method_missing(m, *args, &block); end
+
+  def methods(all=T.unsafe(nil)); end
+
+  def protected_methods(all=T.unsafe(nil)); end
+
+  def public_methods(all=T.unsafe(nil)); end
+end
+
+class Delegator
+  def self.const_missing(n); end
+
+  def self.delegating_block(mid); end
+
+  def self.public_api(); end
+end
+
+class Dir
+  def children(); end
+
+  def each_child(); end
+end
+
+module Dir::Tmpname
+  UNUSABLE_CHARS = ::T.let(nil, ::T.untyped)
+end
+
+class Dir
+  def self.children(*_); end
+
+  def self.each_child(*_); end
+
+  def self.empty?(_); end
+
+  def self.exists?(_); end
+
+  def self.tmpdir(); end
+end
+
+class ERB
+  def def_method(mod, methodname, fname=T.unsafe(nil)); end
+
+  def def_module(methodname=T.unsafe(nil)); end
+
+  def result_with_hash(hash); end
+end
+
+class Encoding
+  def _dump(*_); end
+  CESU_8 = ::T.let(nil, ::T.untyped)
+end
+
+class Encoding::Converter
+  def convert(_); end
+
+  def convpath(); end
+
+  def destination_encoding(); end
+
+  def finish(); end
+
+  def initialize(*_); end
+
+  def insert_output(_); end
+
+  def last_error(); end
+
+  def primitive_convert(*_); end
+
+  def primitive_errinfo(); end
+
+  def putback(*_); end
+
+  def replacement(); end
+
+  def replacement=(replacement); end
+
+  def source_encoding(); end
+end
+
+class Encoding::Converter
+  def self.asciicompat_encoding(_); end
+
+  def self.search_convpath(*_); end
+end
+
+class Encoding::InvalidByteSequenceError
+  def destination_encoding(); end
+
+  def destination_encoding_name(); end
+
+  def error_bytes(); end
+
+  def incomplete_input?(); end
+
+  def readagain_bytes(); end
+
+  def source_encoding(); end
+
+  def source_encoding_name(); end
+end
+
+class Encoding::UndefinedConversionError
+  def destination_encoding(); end
+
+  def destination_encoding_name(); end
+
+  def error_char(); end
+
+  def source_encoding(); end
+
+  def source_encoding_name(); end
+end
+
+class Encoding
+  def self._load(_); end
+
+  def self.locale_charmap(); end
+end
+
+module Enumerable
+  def chain(*_); end
+
+  def chunk(); end
+
+  def chunk_while(); end
+
+  def each_entry(*_); end
+
+  def filter_map(); end
+
+  def grep_v(_); end
+
+  def slice_after(*_); end
+
+  def slice_before(*_); end
+
+  def slice_when(); end
+
+  def sum(*_); end
+
+  def tally(); end
+
+  def to_set(klass=T.unsafe(nil), *args, &block); end
+
+  def uniq(); end
+
+  def zip(*_); end
+end
+
+class Enumerator
+  def +(_); end
+
+  def each_with_index(); end
+end
+
+class Enumerator::ArithmeticSequence
+  def begin(); end
+
+  def each(&blk); end
+
+  def end(); end
+
+  def exclude_end?(); end
+
+  def last(*_); end
+
+  def step(); end
+end
+
+class Enumerator::ArithmeticSequence
+end
+
+class Enumerator::Chain
+end
+
+class Enumerator::Chain
+end
+
+class Enumerator::Generator
+  def each(*_, &blk); end
+
+  def initialize(*_); end
+end
+
+class Enumerator::Lazy
+  def chunk(*_); end
+
+  def chunk_while(*_); end
+
+  def eager(); end
+
+  def force(*_); end
+
+  def slice_when(*_); end
+end
+
+class Enumerator::Producer
+  def each(&blk); end
+end
+
+class Enumerator::Producer
+end
+
+class Enumerator::Yielder
+  def to_proc(); end
+end
+
+class Enumerator
+  def self.produce(*_); end
+end
+
+class Errno::EAUTH
+  Errno = ::T.let(nil, ::T.untyped)
+end
+
+class Errno::EAUTH
+end
+
+class Errno::EBADARCH
+  Errno = ::T.let(nil, ::T.untyped)
+end
+
+class Errno::EBADARCH
+end
+
+class Errno::EBADEXEC
+  Errno = ::T.let(nil, ::T.untyped)
+end
+
+class Errno::EBADEXEC
+end
+
+class Errno::EBADMACHO
+  Errno = ::T.let(nil, ::T.untyped)
+end
+
+class Errno::EBADMACHO
+end
+
+class Errno::EBADRPC
+  Errno = ::T.let(nil, ::T.untyped)
+end
+
+class Errno::EBADRPC
+end
+
+Errno::ECAPMODE = Errno::NOERROR
+
+Errno::EDEADLOCK = Errno::NOERROR
+
+class Errno::EDEVERR
+  Errno = ::T.let(nil, ::T.untyped)
+end
+
+class Errno::EDEVERR
+end
+
+Errno::EDOOFUS = Errno::NOERROR
+
+class Errno::EFTYPE
+  Errno = ::T.let(nil, ::T.untyped)
+end
+
+class Errno::EFTYPE
+end
+
+Errno::EIPSEC = Errno::NOERROR
+
+class Errno::ELAST
+  Errno = ::T.let(nil, ::T.untyped)
+end
+
+class Errno::ELAST
+end
+
+class Errno::ENEEDAUTH
+  Errno = ::T.let(nil, ::T.untyped)
+end
+
+class Errno::ENEEDAUTH
+end
+
+class Errno::ENOATTR
+  Errno = ::T.let(nil, ::T.untyped)
+end
+
+class Errno::ENOATTR
+end
+
+class Errno::ENOPOLICY
+  Errno = ::T.let(nil, ::T.untyped)
+end
+
+class Errno::ENOPOLICY
+end
+
+Errno::ENOTCAPABLE = Errno::NOERROR
+
+class Errno::ENOTSUP
+  Errno = ::T.let(nil, ::T.untyped)
+end
+
+class Errno::ENOTSUP
+end
+
+class Errno::EPROCLIM
+  Errno = ::T.let(nil, ::T.untyped)
+end
+
+class Errno::EPROCLIM
+end
+
+class Errno::EPROCUNAVAIL
+  Errno = ::T.let(nil, ::T.untyped)
+end
+
+class Errno::EPROCUNAVAIL
+end
+
+class Errno::EPROGMISMATCH
+  Errno = ::T.let(nil, ::T.untyped)
+end
+
+class Errno::EPROGMISMATCH
+end
+
+class Errno::EPROGUNAVAIL
+  Errno = ::T.let(nil, ::T.untyped)
+end
+
+class Errno::EPROGUNAVAIL
+end
+
+class Errno::EPWROFF
+  Errno = ::T.let(nil, ::T.untyped)
+end
+
+class Errno::EPWROFF
+end
+
+Errno::EQFULL = Errno::ELAST
+
+class Errno::ERPCMISMATCH
+  Errno = ::T.let(nil, ::T.untyped)
+end
+
+class Errno::ERPCMISMATCH
+end
+
+class Errno::ESHLIBVERS
+  Errno = ::T.let(nil, ::T.untyped)
+end
+
+class Errno::ESHLIBVERS
+end
+
+module Etc
+  VERSION = ::T.let(nil, ::T.untyped)
+end
+
+class Etc::Group
+  def gid(); end
+
+  def gid=(_); end
+
+  def mem(); end
+
+  def mem=(_); end
+
+  def name(); end
+
+  def name=(_); end
+
+  def passwd(); end
+
+  def passwd=(_); end
+end
+
+class Etc::Group
+  extend ::Enumerable
+  def self.[](*_); end
+
+  def self.each(&blk); end
+
+  def self.members(); end
+end
+
+class Etc::Passwd
+  def change(); end
+
+  def change=(_); end
+
+  def dir=(_); end
+
+  def expire(); end
+
+  def expire=(_); end
+
+  def gecos(); end
+
+  def gecos=(_); end
+
+  def gid=(_); end
+
+  def name=(_); end
+
+  def passwd=(_); end
+
+  def shell=(_); end
+
+  def uclass(); end
+
+  def uclass=(_); end
+
+  def uid=(_); end
+end
+
+class Etc::Passwd
+  extend ::Enumerable
+  def self.[](*_); end
+
+  def self.each(&blk); end
+
+  def self.members(); end
+end
+
+class Exception
+  def full_message(*_); end
+end
+
+class Exception
+  def self.exception(*_); end
+
+  def self.to_tty?(); end
+end
+
+class FalseClass
+  include ::JSON::Ext::Generator::GeneratorMethods::FalseClass
+end
+
+class Fiber
+  def initialize(*_); end
+
+  def resume(*_); end
+end
+
+class Fiber
+  def self.yield(*_); end
+end
+
+class File
+  Separator = ::T.let(nil, ::T.untyped)
+end
+
+class File::Stat
+  def size?(); end
+end
+
+class File
+  def self.absolute_path?(_); end
+
+  def self.empty?(_); end
+
+  def self.exists?(_); end
+
+  def self.lutime(*_); end
+
+  def self.mkfifo(*_); end
+end
+
+module FileUtils
+  include ::FileUtils::StreamUtils_
+end
+
+module FileUtils::DryRun
+  include ::FileUtils
+  include ::FileUtils::StreamUtils_
+  include ::FileUtils::LowMethods
+end
+
+module FileUtils::DryRun
+  extend ::FileUtils::DryRun
+  extend ::FileUtils
+  extend ::FileUtils::StreamUtils_
+  extend ::FileUtils::LowMethods
+end
+
+module FileUtils::NoWrite
+  include ::FileUtils
+  include ::FileUtils::StreamUtils_
+  include ::FileUtils::LowMethods
+end
+
+module FileUtils::NoWrite
+  extend ::FileUtils::NoWrite
+  extend ::FileUtils
+  extend ::FileUtils::StreamUtils_
+  extend ::FileUtils::LowMethods
+end
+
+module FileUtils::Verbose
+  include ::FileUtils
+  include ::FileUtils::StreamUtils_
+end
+
+module FileUtils::Verbose
+  extend ::FileUtils::Verbose
+  extend ::FileUtils
+  extend ::FileUtils::StreamUtils_
+end
+
+module FileUtils
+  extend ::FileUtils::StreamUtils_
+end
+
+class Float
+  include ::JSON::Ext::Generator::GeneratorMethods::Float
+end
+
+module Forwardable
+  def def_delegator(accessor, method, ali=T.unsafe(nil)); end
+
+  def def_delegators(accessor, *methods); end
+
+  def def_instance_delegator(accessor, method, ali=T.unsafe(nil)); end
+
+  def def_instance_delegators(accessor, *methods); end
+
+  def delegate(hash); end
+
+  def instance_delegate(hash); end
+  VERSION = ::T.let(nil, ::T.untyped)
+end
+
+module Forwardable
+  def self._compile_method(src, file, line); end
+
+  def self._delegator_method(obj, accessor, method, ali); end
+
+  def self._valid_method?(method); end
+
+  def self.debug(); end
+
+  def self.debug=(debug); end
+end
+
+class FrozenError
+  def receiver(); end
+end
+
+class FrozenError
+end
+
+module GC
+  def garbage_collect(full_mark: T.unsafe(nil), immediate_mark: T.unsafe(nil), immediate_sweep: T.unsafe(nil)); end
+end
+
+module GC
+  def self.compact(); end
+
+  def self.latest_gc_info(hash_or_key=T.unsafe(nil)); end
+
+  def self.stress=(flag); end
+
+  def self.verify_compaction_references(*_); end
+
+  def self.verify_internal_consistency(); end
+
+  def self.verify_transient_heap_internal_consistency(); end
+end
+
+module Gem
+  UNTAINT = ::T.let(nil, ::T.untyped)
+end
+
+class Gem::BasicSpecification
+  def self._deprecated_default_specifications_dir(); end
+end
+
+class Gem::Command
+  def check_deprecated_options(options); end
+
+  def deprecate_option(short_name: T.unsafe(nil), long_name: T.unsafe(nil), version: T.unsafe(nil)); end
+
+end
+
+class Gem::Dependency
+  def identity(); end
+end
+
+class Gem::DependencyInstaller
+  def _deprecated_available_set_for(dep_or_name, version); end
+
+  def _deprecated_find_gems_with_sources(dep, best_only=T.unsafe(nil)); end
+
+  def _deprecated_find_spec_by_name_and_version(gem_name, version=T.unsafe(nil), prerelease=T.unsafe(nil)); end
+end
+
+class Gem::Installer
+  def _deprecated_unpack(directory); end
+
+  def package(); end
+end
+
+class Gem::Package
+  def gem(); end
+end
+
+class Gem::Package::TarHeader
+  def self.oct_or_256based(str); end
+end
+
+class Gem::Package
+  def self.raw_spec(path, security_policy=T.unsafe(nil)); end
+end
+
+class Gem::RemoteFetcher
+  def _deprecated_fetch_size(uri); end
+
+  def s3_uri_signer(uri); end
+end
+
+class Gem::RemoteFetcher
+  extend ::Gem::Deprecate
+end
+
+class Gem::Requirement
+  DefaultPrereleaseRequirement = ::T.let(nil, ::T.untyped)
+end
+
+class Gem::Requirement
+  def self.default_prerelease(); end
+end
+
+class Gem::Resolver::ActivationRequest
+  def platform(); end
+end
+
+class Gem::Resolver::Molinillo::DependencyGraph::Log
+  extend ::Enumerable
+end
+
+class Gem::S3URISigner
+  def initialize(uri); end
+
+  def sign(expiration=T.unsafe(nil)); end
+
+  def uri(); end
+
+  def uri=(uri); end
+  BASE64_URI_TRANSLATE = ::T.let(nil, ::T.untyped)
+  EC2_IAM_INFO = ::T.let(nil, ::T.untyped)
+  EC2_IAM_SECURITY_CREDENTIALS = ::T.let(nil, ::T.untyped)
+end
+
+class Gem::S3URISigner::ConfigurationError
+  def initialize(message); end
+end
+
+class Gem::S3URISigner::ConfigurationError
+end
+
+class Gem::S3URISigner::InstanceProfileError
+  def initialize(message); end
+end
+
+class Gem::S3URISigner::InstanceProfileError
+end
+
+class Gem::S3URISigner::S3Config
+  def access_key_id(); end
+
+  def access_key_id=(_); end
+
+  def region(); end
+
+  def region=(_); end
+
+  def secret_access_key(); end
+
+  def secret_access_key=(_); end
+
+  def security_token(); end
+
+  def security_token=(_); end
+end
+
+class Gem::S3URISigner::S3Config
+  def self.[](*_); end
+
+  def self.members(); end
+end
+
+class Gem::S3URISigner
+end
+
+class Gem::Specification
+  def _deprecated_rubyforge_project=(_deprecated_rubyforge_project); end
+  LOAD_CACHE_MUTEX = ::T.let(nil, ::T.untyped)
+end
+
+class Gem::Specification
+  extend ::Enumerable
+  def self.default_stubs(pattern=T.unsafe(nil)); end
+end
+
+class Gem::SpecificationPolicy
+  include ::Gem::UserInteraction
+  include ::Gem::DefaultUserInteraction
+  include ::Gem::Text
+end
+
+module Gem::Util
+  def self.correct_for_windows_path(path); end
+end
+
+module Gem
+  def self.add_to_load_path(*paths); end
+
+  def self.default_specifications_dir(); end
+
+  def self.java_platform?(); end
+
+  def self.source_date_epoch(); end
+
+  def self.suffix_regexp(); end
+end
+
+class Hash
+  include ::JSON::Ext::Generator::GeneratorMethods::Hash
+  def <(_); end
+
+  def <=(_); end
+
+  def >(_); end
+
+  def >=(_); end
+
+  def compact(); end
+
+  def compact!(); end
+
+  def deconstruct_keys(_); end
+
+  def default_proc(); end
+
+  def default_proc=(default_proc); end
+
+  def fetch_values(*_); end
+
+  def flatten(*_); end
+
+  def index(_); end
+
+  def replace(_); end
+
+  def slice(*_); end
+
+  def to_h(); end
+
+  def to_proc(); end
+
+  def transform_keys(); end
+
+  def transform_keys!(); end
+
+  def transform_values(); end
+
+  def transform_values!(); end
+
+  def update(*_); end
+end
+
+class Hash
+  def self.try_convert(_); end
+end
+
+class IO
+  def external_encoding(); end
+
+  def nonblock(*_); end
+
+  def nonblock=(nonblock); end
+
+  def nonblock?(); end
+
+  def nread(); end
+
+  def pathconf(_); end
+
+  def pread(*_); end
+
+  def pwrite(_, _1); end
+
+  def ready?(); end
+
+  def set_encoding_by_bom(); end
+
+  def wait(*_); end
+
+  def wait_readable(*_); end
+
+  def wait_writable(*_); end
+
+  def write_nonblock(buf, exception: T.unsafe(nil)); end
+end
+
+IO::EWOULDBLOCKWaitReadable = IO::EAGAINWaitReadable
+
+IO::EWOULDBLOCKWaitWritable = IO::EAGAINWaitWritable
+
+class IO
+  def self.foreach(*_); end
+end
+
+class IPAddr
+  include ::Comparable
+  def &(other); end
+
+  def <<(num); end
+
+  def ==(other); end
+
+  def ===(other); end
+
+  def >>(num); end
+
+  def eql?(other); end
+
+  def family(); end
+
+  def hton(); end
+
+  def include?(other); end
+
+  def initialize(addr=T.unsafe(nil), family=T.unsafe(nil)); end
+
+  def ip6_arpa(); end
+
+  def ip6_int(); end
+
+  def ipv4?(); end
+
+  def ipv4_compat(); end
+
+  def ipv4_compat?(); end
+
+  def ipv4_mapped(); end
+
+  def ipv4_mapped?(); end
+
+  def ipv6?(); end
+
+  def link_local?(); end
+
+  def loopback?(); end
+
+  def mask(prefixlen); end
+
+  def mask!(mask); end
+
+  def native(); end
+
+  def prefix(); end
+
+  def prefix=(prefix); end
+
+  def private?(); end
+
+  def reverse(); end
+
+  def set(addr, *family); end
+
+  def succ(); end
+
+  def to_i(); end
+
+  def to_range(); end
+
+  def to_string(); end
+
+  def |(other); end
+
+  def ~(); end
+  IN4MASK = ::T.let(nil, ::T.untyped)
+  IN6FORMAT = ::T.let(nil, ::T.untyped)
+  IN6MASK = ::T.let(nil, ::T.untyped)
+  RE_IPV4ADDRLIKE = ::T.let(nil, ::T.untyped)
+  RE_IPV6ADDRLIKE_COMPRESSED = ::T.let(nil, ::T.untyped)
+  RE_IPV6ADDRLIKE_FULL = ::T.let(nil, ::T.untyped)
+end
+
+class IPAddr::AddressFamilyError
+end
+
+class IPAddr::AddressFamilyError
+end
+
+class IPAddr::Error
+end
+
+class IPAddr::Error
+end
+
+class IPAddr::InvalidAddressError
+end
+
+class IPAddr::InvalidAddressError
+end
+
+class IPAddr::InvalidPrefixError
+end
+
+class IPAddr::InvalidPrefixError
+end
+
+class IPAddr
+  def self.new_ntoh(addr); end
+
+  def self.ntop(addr); end
+end
+
+class Integer
+  include ::JSON::Ext::Generator::GeneratorMethods::Integer
+  def allbits?(_); end
+
+  def anybits?(_); end
+
+  def digits(*_); end
+
+  def nobits?(_); end
+
+  def pow(*_); end
+
+  def to_bn(); end
+  GMP_VERSION = ::T.let(nil, ::T.untyped)
+end
+
+class Integer
+  def self.sqrt(_); end
+end
+
+class JSON::Ext::Generator::State
+  def self.from_state(_); end
+end
+
+class JSON::Ext::Parser
+  def initialize(*_); end
+end
+
+JSON::Parser = JSON::Ext::Parser
+
+JSON::State = JSON::Ext::Generator::State
+
+JSON::UnparserError = JSON::GeneratorError
+
+module Kernel
+  def gem(dep, *reqs); end
+
+  def itself(); end
+
+  def object_id(); end
+
+  def pretty_inspect(); end
+
+  def respond_to?(*_); end
+
+  def then(); end
+
+  def yield_self(); end
+end
+
+module Kernel
+  def self.at_exit(); end
+end
+
+class KeyError
+  def key(); end
+
+  def receiver(); end
+end
+
+class LoadError
+  def path(); end
+end
+
+class LocalJumpError
+  def exit_value(); end
+
+  def reason(); end
+end
+
+module Marshal
+  def self.restore(*_); end
+end
+
+Methods = T::Private::Methods
+
+class Minitest::AbstractReporter
+  def lock(); end
+
+  def locked?(); end
+
+  def synchronize(&block); end
+
+  def try_lock(); end
+
+  def unlock(); end
+end
+
+class Minitest::BenchSpec
+  include ::Minitest::Spec::DSL::InstanceMethods
+end
+
+class Minitest::Expectation
+  def self.[](*_); end
+
+  def self.members(); end
+end
+
+module Minitest::Expectations
+  def must_be(*args); end
+
+  def must_be_close_to(*args); end
+
+  def must_be_empty(*args); end
+
+  def must_be_instance_of(*args); end
+
+  def must_be_kind_of(*args); end
+
+  def must_be_nil(*args); end
+
+  def must_be_same_as(*args); end
+
+  def must_be_silent(*args); end
+
+  def must_be_within_epsilon(*args); end
+
+  def must_equal(*args); end
+
+  def must_include(*args); end
+
+  def must_match(*args); end
+
+  def must_output(*args); end
+
+  def must_raise(*args); end
+
+  def must_respond_to(*args); end
+
+  def must_throw(*args); end
+
+  def path_must_exist(*args); end
+
+  def path_wont_exist(*args); end
+
+  def wont_be(*args); end
+
+  def wont_be_close_to(*args); end
+
+  def wont_be_empty(*args); end
+
+  def wont_be_instance_of(*args); end
+
+  def wont_be_kind_of(*args); end
+
+  def wont_be_nil(*args); end
+
+  def wont_be_same_as(*args); end
+
+  def wont_be_within_epsilon(*args); end
+
+  def wont_equal(*args); end
+
+  def wont_include(*args); end
+
+  def wont_match(*args); end
+
+  def wont_respond_to(*args); end
+end
+
+class Minitest::Mock
+  def ===(*args, &b); end
+
+  def class(*args, &b); end
+
+  def inspect(*args, &b); end
+
+  def instance_eval(*args, &b); end
+
+  def instance_variables(*args, &b); end
+
+  def object_id(*args, &b); end
+
+  def public_send(*args, &b); end
+
+  def send(*args, &b); end
+
+  def to_s(*args, &b); end
+end
+
+class Minitest::Spec
+  include ::Minitest::Spec::DSL::InstanceMethods
+end
+
+class Minitest::Test
+  include ::Minitest::Parallel::Test
+end
+
+module Minitest
+  def self.backtrace_filter(); end
+
+  def self.backtrace_filter=(backtrace_filter); end
+
+  def self.extensions(); end
+
+  def self.extensions=(extensions); end
+
+  def self.info_signal(); end
+
+  def self.info_signal=(info_signal); end
+
+  def self.parallel_executor(); end
+
+  def self.parallel_executor=(parallel_executor); end
+
+  def self.reporter(); end
+
+  def self.reporter=(reporter); end
+end
+
+class Module
+  def const_source_location(*_); end
+
+  def deprecate_constant(*_); end
+
+  def undef_method(*_); end
+end
+
+class Module
+  def self.used_modules(); end
+end
+
+class Monitor
+  def enter(); end
+
+  def exit(); end
+
+  def mon_check_owner(); end
+
+  def mon_enter(); end
+
+  def mon_exit(); end
+
+  def mon_locked?(); end
+
+  def mon_owned?(); end
+
+  def mon_synchronize(); end
+
+  def mon_try_enter(); end
+
+  def new_cond(); end
+
+  def synchronize(); end
+
+  def try_enter(); end
+
+  def try_mon_enter(); end
+
+  def wait_for_cond(_, _1); end
+end
+
+module MonitorMixin
+  def initialize(*args); end
+
+  def mon_enter(); end
+
+  def mon_exit(); end
+
+  def mon_locked?(); end
+
+  def mon_owned?(); end
+
+  def mon_synchronize(&b); end
+
+  def mon_try_enter(); end
+
+  def new_cond(); end
+
+  def synchronize(&b); end
+
+  def try_mon_enter(); end
+end
+
+class MonitorMixin::ConditionVariable
+  def broadcast(); end
+
+  def initialize(monitor); end
+
+  def signal(); end
+
+  def wait(timeout=T.unsafe(nil)); end
+
+  def wait_until(); end
+
+  def wait_while(); end
+end
+
+module MonitorMixin
+  def self.extend_object(obj); end
+end
+
+module Mutex_m
+  VERSION = ::T.let(nil, ::T.untyped)
+end
+
+class NameError
+  def name(); end
+
+  def receiver(); end
+end
+
+class Net::BufferedIO
+  def write_timeout(); end
+
+  def write_timeout=(write_timeout); end
+end
+
+class Net::HTTP
+  def max_retries(); end
+
+  def max_retries=(retries); end
+
+  def max_version(); end
+
+  def max_version=(max_version); end
+
+  def min_version(); end
+
+  def min_version=(min_version); end
+
+  def write_timeout(); end
+
+  def write_timeout=(sec); end
+  ENVIRONMENT_VARIABLE_IS_MULTIUSER_SAFE = ::T.let(nil, ::T.untyped)
+end
+
+Net::HTTP::ProxyMod = Net::HTTP::ProxyDelta
+
+class Net::HTTPAlreadyReported
+  HAS_BODY = ::T.let(nil, ::T.untyped)
+end
+
+class Net::HTTPAlreadyReported
+end
+
+class Net::HTTPClientError
+end
+
+Net::HTTPClientErrorCode::EXCEPTION_TYPE = Net::HTTPServerException
+
+class Net::HTTPClientError
+end
+
+Net::HTTPClientException = Net::HTTPServerException
+
+class Net::HTTPEarlyHints
+  HAS_BODY = ::T.let(nil, ::T.untyped)
+end
+
+class Net::HTTPEarlyHints
+end
+
+Net::HTTPFatalErrorCode = Net::HTTPClientError
+
+class Net::HTTPGatewayTimeout
+  HAS_BODY = ::T.let(nil, ::T.untyped)
+end
+
+class Net::HTTPGatewayTimeout
+end
+
+class Net::HTTPInformation
+end
+
+Net::HTTPInformationCode::EXCEPTION_TYPE = Net::HTTPError
+
+class Net::HTTPInformation
+end
+
+class Net::HTTPLoopDetected
+  HAS_BODY = ::T.let(nil, ::T.untyped)
+end
+
+class Net::HTTPLoopDetected
+end
+
+class Net::HTTPMisdirectedRequest
+  HAS_BODY = ::T.let(nil, ::T.untyped)
+end
+
+class Net::HTTPMisdirectedRequest
+end
+
+Net::HTTPMovedTemporarily = Net::HTTPFound
+
+Net::HTTPMultipleChoice = Net::HTTPMultipleChoices
+
+class Net::HTTPNotExtended
+  HAS_BODY = ::T.let(nil, ::T.untyped)
+end
+
+class Net::HTTPNotExtended
+end
+
+class Net::HTTPPayloadTooLarge
+  HAS_BODY = ::T.let(nil, ::T.untyped)
+end
+
+class Net::HTTPPayloadTooLarge
+end
+
+class Net::HTTPProcessing
+  HAS_BODY = ::T.let(nil, ::T.untyped)
+end
+
+class Net::HTTPProcessing
+end
+
+class Net::HTTPRangeNotSatisfiable
+  HAS_BODY = ::T.let(nil, ::T.untyped)
+end
+
+class Net::HTTPRangeNotSatisfiable
+end
+
+class Net::HTTPRedirection
+end
+
+Net::HTTPRedirectionCode::EXCEPTION_TYPE = Net::HTTPRetriableError
+
+class Net::HTTPRedirection
+end
+
+class Net::HTTPRequestTimeout
+  HAS_BODY = ::T.let(nil, ::T.untyped)
+end
+
+class Net::HTTPRequestTimeout
+end
+
+Net::HTTPRequestURITooLarge = Net::HTTPURITooLong
+
+Net::HTTPResponceReceiver = Net::HTTPResponse
+
+Net::HTTPRetriableCode = Net::HTTPRedirection
+
+class Net::HTTPServerError
+end
+
+Net::HTTPServerErrorCode::EXCEPTION_TYPE = Net::HTTPFatalError
+
+class Net::HTTPServerError
+end
+
+Net::HTTPSession = Net::HTTP
+
+class Net::HTTPSuccess
+end
+
+Net::HTTPSuccessCode::EXCEPTION_TYPE = Net::HTTPError
+
+class Net::HTTPSuccess
+end
+
+class Net::HTTPURITooLong
+  HAS_BODY = ::T.let(nil, ::T.untyped)
+end
+
+class Net::HTTPURITooLong
+end
+
+Net::HTTPUnknownResponse::EXCEPTION_TYPE = Net::HTTPError
+
+class Net::HTTPVariantAlsoNegotiates
+  HAS_BODY = ::T.let(nil, ::T.untyped)
+end
+
+class Net::HTTPVariantAlsoNegotiates
+end
+
+Net::NetPrivate::HTTPRequest = Net::HTTPRequest
+
+Net::NetPrivate::Socket = Net::InternetMessageIO
+
+Net::ProtocRetryError = Net::ProtoRetriableError
+
+class Net::ReadTimeout
+  def initialize(io=T.unsafe(nil)); end
+
+  def io(); end
+end
+
+class Net::WriteTimeout
+  def initialize(io=T.unsafe(nil)); end
+
+  def io(); end
+end
+
+class Net::WriteTimeout
+end
+
+class NilClass
+  include ::JSON::Ext::Generator::GeneratorMethods::NilClass
+  def to_i(); end
+end
+
+class NoMatchingPatternError
+end
+
+class NoMatchingPatternError
+end
+
+class NoMethodError
+  def args(); end
+
+  def private_call?(); end
+end
+
+class Object
+  include ::JSON::Ext::Generator::GeneratorMethods::Object
+  include ::Minitest::Expectations
+  include ::PP::ObjectMixin
+  def dclone(); end
+
+  def pry(object=T.unsafe(nil), hash=T.unsafe(nil)); end
+
+  def to_yaml(options=T.unsafe(nil)); end
+  ARGF = ::T.let(nil, ::T.untyped)
+  ARGV = ::T.let(nil, ::T.untyped)
+  CROSS_COMPILING = ::T.let(nil, ::T.untyped)
+  ENV = ::T.let(nil, ::T.untyped)
+  OPCODES = ::T.let(nil, ::T.untyped)
+  RUBY_COPYRIGHT = ::T.let(nil, ::T.untyped)
+  RUBY_DESCRIPTION = ::T.let(nil, ::T.untyped)
+  RUBY_ENGINE = ::T.let(nil, ::T.untyped)
+  RUBY_ENGINE_VERSION = ::T.let(nil, ::T.untyped)
+  RUBY_PATCHLEVEL = ::T.let(nil, ::T.untyped)
+  RUBY_PLATFORM = ::T.let(nil, ::T.untyped)
+  RUBY_RELEASE_DATE = ::T.let(nil, ::T.untyped)
+  RUBY_REVISION = ::T.let(nil, ::T.untyped)
+  RUBY_VERSION = ::T.let(nil, ::T.untyped)
+  STDERR = ::T.let(nil, ::T.untyped)
+  STDIN = ::T.let(nil, ::T.untyped)
+  STDOUT = ::T.let(nil, ::T.untyped)
+  TOPLEVEL_BINDING = ::T.let(nil, ::T.untyped)
+end
+
+class Object
+  def self.yaml_tag(url); end
+end
+
+class ObjectSpace::WeakMap
+  def [](_); end
+
+  def []=(_, _1); end
+
+  def each(&blk); end
+
+  def each_key(); end
+
+  def each_pair(); end
+
+  def each_value(); end
+
+  def key?(_); end
+
+  def keys(); end
+
+  def length(); end
+
+  def size(); end
+
+  def values(); end
+end
+
+module ObjectSpace
+  def self.count_objects(*_); end
+
+  def self.define_finalizer(*_); end
+
+  def self.garbage_collect(full_mark: T.unsafe(nil), immediate_mark: T.unsafe(nil), immediate_sweep: T.unsafe(nil)); end
+
+  def self.undefine_finalizer(_); end
+end
+
+class OpenSSL::ASN1::ASN1Data
+  def indefinite_length(); end
+
+  def indefinite_length=(indefinite_length); end
+end
+
+class OpenSSL::BN
+  def +@(); end
+
+  def -@(); end
+
+  def /(_); end
+
+  def negative?(); end
+end
+
+module OpenSSL::KDF
+end
+
+class OpenSSL::KDF::KDFError
+end
+
+class OpenSSL::KDF::KDFError
+end
+
+module OpenSSL::KDF
+  def self.hkdf(*_); end
+
+  def self.pbkdf2_hmac(*_); end
+
+  def self.scrypt(*_); end
+end
+
+class OpenSSL::OCSP::Request
+  def signed?(); end
+end
+
+OpenSSL::PKCS7::Signer = OpenSSL::PKCS7::SignerInfo
+
+class OpenSSL::PKey::EC
+  EXPLICIT_CURVE = ::T.let(nil, ::T.untyped)
+end
+
+class OpenSSL::PKey::EC::Point
+  def to_octet_string(_); end
+end
+
+class OpenSSL::PKey::RSA
+  def sign_pss(*_); end
+
+  def verify_pss(*_); end
+end
+
+module OpenSSL::SSL
+  OP_ALLOW_NO_DHE_KEX = ::T.let(nil, ::T.untyped)
+  OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION = ::T.let(nil, ::T.untyped)
+  OP_CRYPTOPRO_TLSEXT_BUG = ::T.let(nil, ::T.untyped)
+  OP_LEGACY_SERVER_CONNECT = ::T.let(nil, ::T.untyped)
+  OP_NO_ENCRYPT_THEN_MAC = ::T.let(nil, ::T.untyped)
+  OP_NO_RENEGOTIATION = ::T.let(nil, ::T.untyped)
+  OP_NO_TLSv1_3 = ::T.let(nil, ::T.untyped)
+  OP_SAFARI_ECDHE_ECDSA_BUG = ::T.let(nil, ::T.untyped)
+  OP_TLSEXT_PADDING = ::T.let(nil, ::T.untyped)
+  SSL2_VERSION = ::T.let(nil, ::T.untyped)
+  SSL3_VERSION = ::T.let(nil, ::T.untyped)
+  TLS1_1_VERSION = ::T.let(nil, ::T.untyped)
+  TLS1_2_VERSION = ::T.let(nil, ::T.untyped)
+  TLS1_3_VERSION = ::T.let(nil, ::T.untyped)
+  TLS1_VERSION = ::T.let(nil, ::T.untyped)
+end
+
+class OpenSSL::SSL::SSLContext
+  def add_certificate(*_); end
+
+  def alpn_protocols(); end
+
+  def alpn_protocols=(alpn_protocols); end
+
+  def alpn_select_cb(); end
+
+  def alpn_select_cb=(alpn_select_cb); end
+
+  def enable_fallback_scsv(); end
+
+  def max_version=(version); end
+
+  def min_version=(version); end
+  DEFAULT_TMP_DH_CALLBACK = ::T.let(nil, ::T.untyped)
+end
+
+class OpenSSL::SSL::SSLSocket
+  def alpn_protocol(); end
+
+  def tmp_key(); end
+end
+
+module OpenSSL::X509
+  V_FLAG_NO_CHECK_TIME = ::T.let(nil, ::T.untyped)
+  V_FLAG_TRUSTED_FIRST = ::T.let(nil, ::T.untyped)
+end
+
+class OpenSSL::X509::Attribute
+  def ==(other); end
+end
+
+class OpenSSL::X509::CRL
+  def ==(other); end
+end
+
+class OpenSSL::X509::Extension
+  def ==(other); end
+end
+
+class OpenSSL::X509::Name
+  def to_utf8(); end
+end
+
+class OpenSSL::X509::Request
+  def ==(other); end
+end
+
+class OpenSSL::X509::Revoked
+  def ==(other); end
+
+  def to_der(); end
+end
+
+module OpenSSL
+  def self.fips_mode(); end
+end
+
+class OptionParser
+  def additional_message(typ, opt); end
+end
+
+class OptionParser::List
+  def get_candidates(id); end
+end
+
+class OptionParser::ParseError
+  def additional(); end
+
+  def additional=(additional); end
+
+end
+
+class Pathname
+  def empty?(); end
+
+  def fnmatch?(*_); end
+
+  def glob(*_); end
+
+  def make_symlink(_); end
+end
+
+class Proc
+  def <<(_); end
+
+  def ===(*_); end
+
+  def >>(_); end
+
+  def clone(); end
+
+  def yield(*_); end
+end
+
+module Process
+  CLOCK_MONOTONIC_RAW_APPROX = ::T.let(nil, ::T.untyped)
+  CLOCK_UPTIME_RAW = ::T.let(nil, ::T.untyped)
+  CLOCK_UPTIME_RAW_APPROX = ::T.let(nil, ::T.untyped)
+end
+
+module Process::Sys
+  def self.getegid(); end
+end
+
+class Process::Tms
+  def cstime(); end
+
+  def cstime=(_); end
+
+  def cutime(); end
+
+  def cutime=(_); end
+
+  def stime(); end
+
+  def stime=(_); end
+
+  def utime(); end
+
+  def utime=(_); end
+end
+
+class Process::Tms
+  def self.[](*_); end
+
+  def self.members(); end
+end
+
+module Process
+  def self.last_status(); end
+
+  def self.setpgrp(); end
+end
+
+class Pry
+  def add_sticky_local(name, &block); end
+
+  def backtrace(); end
+
+  def backtrace=(backtrace); end
+
+  def binding_stack(); end
+
+  def binding_stack=(binding_stack); end
+
+  def color(); end
+
+  def color=(value); end
+
+  def command_state(); end
+
+  def commands(); end
+
+  def commands=(value); end
+
+  def complete(str); end
+
+  def config(); end
+
+  def current_binding(); end
+
+  def current_context(); end
+
+  def custom_completions(); end
+
+  def custom_completions=(custom_completions); end
+
+  def editor(); end
+
+  def editor=(value); end
+
+  def eval(line, options=T.unsafe(nil)); end
+
+  def eval_string(); end
+
+  def eval_string=(eval_string); end
+
+  def evaluate_ruby(code); end
+
+  def exception_handler(); end
+
+  def exception_handler=(value); end
+
+  def exec_hook(name, *args, &block); end
+
+  def exit_value(); end
+
+  def extra_sticky_locals(); end
+
+  def extra_sticky_locals=(value); end
+
+  def hooks(); end
+
+  def hooks=(value); end
+
+  def initialize(options=T.unsafe(nil)); end
+
+  def inject_local(name, value, b); end
+
+  def inject_sticky_locals!(); end
+
+  def input(); end
+
+  def input=(value); end
+
+  def input_array(); end
+
+  def input_ring(); end
+
+  def last_dir(); end
+
+  def last_dir=(last_dir); end
+
+  def last_exception(); end
+
+  def last_exception=(e); end
+
+  def last_file(); end
+
+  def last_file=(last_file); end
+
+  def last_result(); end
+
+  def last_result=(last_result); end
+
+  def last_result_is_exception?(); end
+
+  def memory_size(); end
+
+  def memory_size=(size); end
+
+  def output(); end
+
+  def output=(value); end
+
+  def output_array(); end
+
+  def output_ring(); end
+
+  def pager(); end
+
+  def pager=(value); end
+
+  def pop_prompt(); end
+
+  def print(); end
+
+  def print=(value); end
+
+  def process_command(val); end
+
+  def process_command_safely(val); end
+
+  def prompt(); end
+
+  def prompt=(new_prompt); end
+
+  def push_binding(object); end
+
+  def push_initial_binding(target=T.unsafe(nil)); end
+
+  def push_prompt(new_prompt); end
+
+  def quiet?(); end
+
+  def raise_up(*args); end
+
+  def raise_up!(*args); end
+
+  def raise_up_common(force, *args); end
+
+  def repl(target=T.unsafe(nil)); end
+
+  def reset_eval_string(); end
+
+  def run_command(val); end
+
+  def select_prompt(); end
+
+  def set_last_result(result, code=T.unsafe(nil)); end
+
+  def should_print?(); end
+
+  def show_result(result); end
+
+  def sticky_locals(); end
+
+  def suppress_output(); end
+
+  def suppress_output=(suppress_output); end
+
+  def update_input_history(code); end
+  BINDING_METHOD_IMPL = ::T.let(nil, ::T.untyped)
+  EMPTY_COMPLETIONS = ::T.let(nil, ::T.untyped)
+  HOME_RC_FILE = ::T.let(nil, ::T.untyped)
+  LOCAL_RC_FILE = ::T.let(nil, ::T.untyped)
+end
+
+Pry::BasicObject::Kernel = Kernel
+
+Pry::BasicObject::Pry = Pry
+
+class Pry::CodeObject
+  include ::Pry::Helpers::CommandHelpers
+  include ::Pry::Helpers::OptionsHelpers
+end
+
+class Pry::Command
+  include ::Pry::Helpers::BaseHelpers
+  include ::Pry::Helpers::CommandHelpers
+  include ::Pry::Helpers::OptionsHelpers
+  include ::Pry::Helpers::Text
+end
+
+class Pry::Command::AmendLine
+end
+
+class Pry::Command::AmendLine
+end
+
+class Pry::Command::Bang
+end
+
+class Pry::Command::Bang
+end
+
+class Pry::Command::BangPry
+end
+
+class Pry::Command::BangPry
+end
+
+class Pry::Command::Cat
+  def load_path_completions(); end
+end
+
+class Pry::Command::Cat::AbstractFormatter
+  include ::Pry::Helpers::CommandHelpers
+  include ::Pry::Helpers::OptionsHelpers
+  include ::Pry::Helpers::BaseHelpers
+end
+
+class Pry::Command::Cat::ExceptionFormatter
+  include ::Pry::Helpers::Text
+end
+
+class Pry::Command::Cd
+end
+
+class Pry::Command::Cd
+end
+
+class Pry::Command::DisablePry
+end
+
+class Pry::Command::DisablePry
+end
+
+class Pry::Command::Edit
+  def apply_runtime_patch(); end
+
+  def bad_option_combination?(); end
+
+  def code_object(); end
+
+  def ensure_file_name_is_valid(file_name); end
+
+  def file_and_line(); end
+
+  def file_and_line_for_current_exception(); end
+
+  def file_based_exception?(); end
+
+  def file_edit(); end
+
+  def filename_argument(); end
+
+  def initial_temp_file_content(); end
+
+  def input_expression(); end
+
+  def never_reload?(); end
+
+  def patch_exception?(); end
+
+  def previously_patched?(code_object); end
+
+  def probably_a_file?(str); end
+
+  def pry_method?(code_object); end
+
+  def reload?(file_name=T.unsafe(nil)); end
+
+  def reloadable?(); end
+
+  def repl_edit(); end
+
+  def repl_edit?(); end
+
+  def runtime_patch?(); end
+end
+
+class Pry::Command::Exit
+  def process_pop_and_return(); end
+end
+
+class Pry::Command::Exit
+end
+
+class Pry::Command::ExitAll
+end
+
+class Pry::Command::ExitAll
+end
+
+class Pry::Command::ExitProgram
+end
+
+class Pry::Command::FindMethod
+end
+
+class Pry::Command::FindMethod
+  extend ::Pry::Helpers::BaseHelpers
+end
+
+class Pry::Command::FixIndent
+end
+
+class Pry::Command::FixIndent
+end
+
+class Pry::Command::GemCd
+  def complete(str); end
+
+  def process(gem); end
+end
+
+class Pry::Command::GemCd
+end
+
+class Pry::Command::GemInstall
+end
+
+class Pry::Command::GemList
+  def process(pattern=T.unsafe(nil)); end
+end
+
+class Pry::Command::GemList
+end
+
+class Pry::Command::GemOpen
+  def complete(str); end
+
+  def process(gem); end
+end
+
+class Pry::Command::GemOpen
+end
+
+class Pry::Command::Gist
+  def clipboard_content(content); end
+
+  def comment_expression_result_for_gist(result); end
+
+  def gist_content(content, filename); end
+
+  def input_content(); end
+end
+
+class Pry::Command::Gist
+end
+
+class Pry::Command::Help
+end
+
+class Pry::Command::Hist
+end
+
+class Pry::Command::Hist
+end
+
+class Pry::Command::ImportSet
+  def process(_command_set_name); end
+end
+
+class Pry::Command::ImportSet
+end
+
+class Pry::Command::InstallCommand
+end
+
+class Pry::Command::JumpTo
+  def process(break_level); end
+end
+
+class Pry::Command::JumpTo
+end
+
+class Pry::Command::Ls
+  def no_user_opts?(); end
+  DEFAULT_OPTIONS = ::T.let(nil, ::T.untyped)
+end
+
+class Pry::Command::Ls::Constants
+  include ::Pry::Command::Ls::Interrogatable
+end
+
+class Pry::Command::Ls::Globals
+end
+
+class Pry::Command::Ls::InstanceVars
+  include ::Pry::Command::Ls::Interrogatable
+end
+
+class Pry::Command::Ls::LocalNames
+end
+
+class Pry::Command::Ls::LocalVars
+end
+
+class Pry::Command::Ls::Methods
+  include ::Pry::Command::Ls::Interrogatable
+  include ::Pry::Command::Ls::MethodsHelper
+  include ::Pry::Command::Ls::JRubyHacks
+end
+
+class Pry::Command::Ls::SelfMethods
+  include ::Pry::Command::Ls::Interrogatable
+  include ::Pry::Command::Ls::MethodsHelper
+  include ::Pry::Command::Ls::JRubyHacks
+end
+
+class Pry::Command::Nesting
+end
+
+class Pry::Command::Play
+  def code_object(); end
+
+  def content(); end
+
+  def content_after_options(); end
+
+  def content_at_expression(); end
+
+  def default_file(); end
+
+  def file_content(); end
+
+  def perform_play(); end
+
+  def should_use_default_file?(); end
+
+  def show_input(); end
+end
+
+class Pry::Command::Play
+end
+
+class Pry::Command::PryBacktrace
+end
+
+class Pry::Command::PryBacktrace
+end
+
+class Pry::Command::RaiseUp
+end
+
+class Pry::Command::ReloadCode
+end
+
+class Pry::Command::ReloadCode
+end
+
+class Pry::Command::Reset
+end
+
+class Pry::Command::Reset
+end
+
+class Pry::Command::Ri
+end
+
+class Pry::Command::SaveFile
+  def display_content(); end
+
+  def file_name(); end
+
+  def mode(); end
+
+  def save_file(); end
+end
+
+class Pry::Command::SaveFile
+end
+
+class Pry::Command::ShellCommand
+  def process(cmd); end
+end
+
+class Pry::Command::ShellCommand
+end
+
+class Pry::Command::ShellMode
+end
+
+class Pry::Command::ShellMode
+end
+
+class Pry::Command::ShowDoc
+  include ::Pry::Helpers::DocumentationHelpers
+  def content_for(code_object); end
+
+  def docs_for(code_object); end
+
+  def render_doc_markup_for(code_object); end
+end
+
+class Pry::Command::ShowDoc
+end
+
+class Pry::Command::ShowInfo
+end
+
+class Pry::Command::ShowInfo
+  extend ::Pry::Helpers::BaseHelpers
+end
+
+class Pry::Command::ShowInput
+end
+
+class Pry::Command::ShowInput
+end
+
+class Pry::Command::ShowSource
+  def content_for(code_object); end
+end
+
+class Pry::Command::ShowSource
+end
+
+class Pry::Command::Stat
+end
+
+class Pry::Command::Stat
+end
+
+class Pry::Command::SwitchTo
+  def process(selection); end
+end
+
+class Pry::Command::SwitchTo
+end
+
+class Pry::Command::ToggleColor
+end
+
+class Pry::Command::Version
+end
+
+class Pry::Command::Whereami
+end
+
+class Pry::Command::Wtf
+end
+
+class Pry::CommandSet
+  include ::Pry::Helpers::BaseHelpers
+end
+
+class Pry::Config
+end
+
+class Pry::Config::Default
+  def auto_indent(); end
+
+  def collision_warning(); end
+
+  def color(); end
+
+  def command_completions(); end
+
+  def command_prefix(); end
+
+  def commands(); end
+
+  def completer(); end
+
+  def control_d_handler(); end
+
+  def correct_indent(); end
+
+  def default_window_size(); end
+
+  def disable_auto_reload(); end
+
+  def editor(); end
+
+  def exception_handler(); end
+
+  def exception_whitelist(); end
+
+  def exec_string(); end
+
+  def extra_sticky_locals(); end
+
+  def file_completions(); end
+
+  def gist(); end
+
+  def history(); end
+
+  def hooks(); end
+
+  def input(); end
+
+  def ls(); end
+
+  def memory_size(); end
+
+  def output(); end
+
+  def output_prefix(); end
+
+  def pager(); end
+
+  def print(); end
+
+  def prompt(); end
+
+  def prompt_name(); end
+
+  def prompt_safe_contexts(); end
+
+  def quiet(); end
+
+  def requires(); end
+
+  def should_load_local_rc(); end
+
+  def should_load_plugins(); end
+
+  def should_load_rc(); end
+
+  def should_load_requires(); end
+
+  def should_trap_interrupts(); end
+
+  def system(); end
+
+  def windows_console_warning(); end
+end
+
+class Pry::Config::Default
+  extend ::Pry::Config::Behavior::Builder
+  extend ::Pry::Config::Memoization::ClassMethods
+end
+
+class Pry::Config
+  extend ::Pry::Config::Behavior::Builder
+end
+
+class Pry::Editor
+  include ::Pry::Helpers::CommandHelpers
+  include ::Pry::Helpers::OptionsHelpers
+end
+
+class Pry::Helpers::Table
+  def ==(other); end
+
+  def column_count(); end
+
+  def column_count=(n); end
+
+  def columns(); end
+
+  def fits_on_line?(line_length); end
+
+  def initialize(items, args, config=T.unsafe(nil)); end
+
+  def items(); end
+
+  def items=(items); end
+
+  def rows_to_s(style=T.unsafe(nil)); end
+
+  def to_a(); end
+end
+
+class Pry::Helpers::Table
+end
+
+module Pry::Helpers::Text
+  def black(text); end
+
+  def black_on_black(text); end
+
+  def black_on_blue(text); end
+
+  def black_on_cyan(text); end
+
+  def black_on_green(text); end
+
+  def black_on_magenta(text); end
+
+  def black_on_purple(text); end
+
+  def black_on_red(text); end
+
+  def black_on_white(text); end
+
+  def black_on_yellow(text); end
+
+  def blue(text); end
+
+  def blue_on_black(text); end
+
+  def blue_on_blue(text); end
+
+  def blue_on_cyan(text); end
+
+  def blue_on_green(text); end
+
+  def blue_on_magenta(text); end
+
+  def blue_on_purple(text); end
+
+  def blue_on_red(text); end
+
+  def blue_on_white(text); end
+
+  def blue_on_yellow(text); end
+
+  def bright_black(text); end
+
+  def bright_black_on_black(text); end
+
+  def bright_black_on_blue(text); end
+
+  def bright_black_on_cyan(text); end
+
+  def bright_black_on_green(text); end
+
+  def bright_black_on_magenta(text); end
+
+  def bright_black_on_purple(text); end
+
+  def bright_black_on_red(text); end
+
+  def bright_black_on_white(text); end
+
+  def bright_black_on_yellow(text); end
+
+  def bright_blue(text); end
+
+  def bright_blue_on_black(text); end
+
+  def bright_blue_on_blue(text); end
+
+  def bright_blue_on_cyan(text); end
+
+  def bright_blue_on_green(text); end
+
+  def bright_blue_on_magenta(text); end
+
+  def bright_blue_on_purple(text); end
+
+  def bright_blue_on_red(text); end
+
+  def bright_blue_on_white(text); end
+
+  def bright_blue_on_yellow(text); end
+
+  def bright_cyan(text); end
+
+  def bright_cyan_on_black(text); end
+
+  def bright_cyan_on_blue(text); end
+
+  def bright_cyan_on_cyan(text); end
+
+  def bright_cyan_on_green(text); end
+
+  def bright_cyan_on_magenta(text); end
+
+  def bright_cyan_on_purple(text); end
+
+  def bright_cyan_on_red(text); end
+
+  def bright_cyan_on_white(text); end
+
+  def bright_cyan_on_yellow(text); end
+
+  def bright_green(text); end
+
+  def bright_green_on_black(text); end
+
+  def bright_green_on_blue(text); end
+
+  def bright_green_on_cyan(text); end
+
+  def bright_green_on_green(text); end
+
+  def bright_green_on_magenta(text); end
+
+  def bright_green_on_purple(text); end
+
+  def bright_green_on_red(text); end
+
+  def bright_green_on_white(text); end
+
+  def bright_green_on_yellow(text); end
+
+  def bright_magenta(text); end
+
+  def bright_magenta_on_black(text); end
+
+  def bright_magenta_on_blue(text); end
+
+  def bright_magenta_on_cyan(text); end
+
+  def bright_magenta_on_green(text); end
+
+  def bright_magenta_on_magenta(text); end
+
+  def bright_magenta_on_purple(text); end
+
+  def bright_magenta_on_red(text); end
+
+  def bright_magenta_on_white(text); end
+
+  def bright_magenta_on_yellow(text); end
+
+  def bright_purple(text); end
+
+  def bright_purple_on_black(text); end
+
+  def bright_purple_on_blue(text); end
+
+  def bright_purple_on_cyan(text); end
+
+  def bright_purple_on_green(text); end
+
+  def bright_purple_on_magenta(text); end
+
+  def bright_purple_on_purple(text); end
+
+  def bright_purple_on_red(text); end
+
+  def bright_purple_on_white(text); end
+
+  def bright_purple_on_yellow(text); end
+
+  def bright_red(text); end
+
+  def bright_red_on_black(text); end
+
+  def bright_red_on_blue(text); end
+
+  def bright_red_on_cyan(text); end
+
+  def bright_red_on_green(text); end
+
+  def bright_red_on_magenta(text); end
+
+  def bright_red_on_purple(text); end
+
+  def bright_red_on_red(text); end
+
+  def bright_red_on_white(text); end
+
+  def bright_red_on_yellow(text); end
+
+  def bright_white(text); end
+
+  def bright_white_on_black(text); end
+
+  def bright_white_on_blue(text); end
+
+  def bright_white_on_cyan(text); end
+
+  def bright_white_on_green(text); end
+
+  def bright_white_on_magenta(text); end
+
+  def bright_white_on_purple(text); end
+
+  def bright_white_on_red(text); end
+
+  def bright_white_on_white(text); end
+
+  def bright_white_on_yellow(text); end
+
+  def bright_yellow(text); end
+
+  def bright_yellow_on_black(text); end
+
+  def bright_yellow_on_blue(text); end
+
+  def bright_yellow_on_cyan(text); end
+
+  def bright_yellow_on_green(text); end
+
+  def bright_yellow_on_magenta(text); end
+
+  def bright_yellow_on_purple(text); end
+
+  def bright_yellow_on_red(text); end
+
+  def bright_yellow_on_white(text); end
+
+  def bright_yellow_on_yellow(text); end
+
+  def cyan(text); end
+
+  def cyan_on_black(text); end
+
+  def cyan_on_blue(text); end
+
+  def cyan_on_cyan(text); end
+
+  def cyan_on_green(text); end
+
+  def cyan_on_magenta(text); end
+
+  def cyan_on_purple(text); end
+
+  def cyan_on_red(text); end
+
+  def cyan_on_white(text); end
+
+  def cyan_on_yellow(text); end
+
+  def green(text); end
+
+  def green_on_black(text); end
+
+  def green_on_blue(text); end
+
+  def green_on_cyan(text); end
+
+  def green_on_green(text); end
+
+  def green_on_magenta(text); end
+
+  def green_on_purple(text); end
+
+  def green_on_red(text); end
+
+  def green_on_white(text); end
+
+  def green_on_yellow(text); end
+
+  def magenta(text); end
+
+  def magenta_on_black(text); end
+
+  def magenta_on_blue(text); end
+
+  def magenta_on_cyan(text); end
+
+  def magenta_on_green(text); end
+
+  def magenta_on_magenta(text); end
+
+  def magenta_on_purple(text); end
+
+  def magenta_on_red(text); end
+
+  def magenta_on_white(text); end
+
+  def magenta_on_yellow(text); end
+
+  def purple(text); end
+
+  def purple_on_black(text); end
+
+  def purple_on_blue(text); end
+
+  def purple_on_cyan(text); end
+
+  def purple_on_green(text); end
+
+  def purple_on_magenta(text); end
+
+  def purple_on_purple(text); end
+
+  def purple_on_red(text); end
+
+  def purple_on_white(text); end
+
+  def purple_on_yellow(text); end
+
+  def red(text); end
+
+  def red_on_black(text); end
+
+  def red_on_blue(text); end
+
+  def red_on_cyan(text); end
+
+  def red_on_green(text); end
+
+  def red_on_magenta(text); end
+
+  def red_on_purple(text); end
+
+  def red_on_red(text); end
+
+  def red_on_white(text); end
+
+  def red_on_yellow(text); end
+
+  def white(text); end
+
+  def white_on_black(text); end
+
+  def white_on_blue(text); end
+
+  def white_on_cyan(text); end
+
+  def white_on_green(text); end
+
+  def white_on_magenta(text); end
+
+  def white_on_purple(text); end
+
+  def white_on_red(text); end
+
+  def white_on_white(text); end
+
+  def white_on_yellow(text); end
+
+  def yellow(text); end
+
+  def yellow_on_black(text); end
+
+  def yellow_on_blue(text); end
+
+  def yellow_on_cyan(text); end
+
+  def yellow_on_green(text); end
+
+  def yellow_on_magenta(text); end
+
+  def yellow_on_purple(text); end
+
+  def yellow_on_red(text); end
+
+  def yellow_on_white(text); end
+
+  def yellow_on_yellow(text); end
+end
+
+module Pry::Helpers
+  def self.tablify(things, line_length, config=T.unsafe(nil)); end
+
+  def self.tablify_or_one_line(heading, things, config=T.unsafe(nil)); end
+
+  def self.tablify_to_screen_width(things, options, config=T.unsafe(nil)); end
+end
+
+class Pry::Indent
+  include ::Pry::Helpers::BaseHelpers
+  def correct_indentation(prompt, code, overhang=T.unsafe(nil)); end
+
+  def current_prefix(); end
+
+  def end_of_statement?(last_token, last_kind); end
+
+  def in_string?(); end
+
+  def indent(input); end
+
+  def indent_level(); end
+
+  def indentation_delta(tokens); end
+
+  def module_nesting(); end
+
+  def open_delimiters(); end
+
+  def open_delimiters_line(); end
+
+  def reset(); end
+
+  def stack(); end
+
+  def tokenize(string); end
+
+  def track_delimiter(token); end
+
+  def track_module_nesting(token, kind); end
+
+  def track_module_nesting_end(token, kind=T.unsafe(nil)); end
+  IGNORE_TOKENS = ::T.let(nil, ::T.untyped)
+  MIDWAY_TOKENS = ::T.let(nil, ::T.untyped)
+  OPEN_TOKENS = ::T.let(nil, ::T.untyped)
+  OPTIONAL_DO_TOKENS = ::T.let(nil, ::T.untyped)
+  SINGLELINE_TOKENS = ::T.let(nil, ::T.untyped)
+  SPACES = ::T.let(nil, ::T.untyped)
+  STATEMENT_END_TOKENS = ::T.let(nil, ::T.untyped)
+end
+
+class Pry::Indent::UnparseableNestingError
+end
+
+class Pry::Indent::UnparseableNestingError
+end
+
+class Pry::Indent
+  def self.indent(str); end
+
+  def self.nesting_at(str, line_number); end
+end
+
+class Pry::Method
+  include ::Pry::Helpers::BaseHelpers
+  include ::Pry::Helpers::DocumentationHelpers
+  include ::Pry::CodeObject::Helpers
+  def ==(obj); end
+
+  def alias?(); end
+
+  def aliases(); end
+
+  def bound_method?(); end
+
+  def comment(); end
+
+  def doc(); end
+
+  def dynamically_defined?(); end
+
+  def initialize(method, known_info=T.unsafe(nil)); end
+
+  def is_a?(klass); end
+
+  def kind_of?(klass); end
+
+  def method_missing(method_name, *args, &block); end
+
+  def name(); end
+
+  def name_with_owner(); end
+
+  def original_name(); end
+
+  def pry_method?(); end
+
+  def redefine(source); end
+
+  def respond_to?(method_name, include_all=T.unsafe(nil)); end
+
+  def signature(); end
+
+  def singleton_method?(); end
+
+  def source(); end
+
+  def source?(); end
+
+  def source_file(); end
+
+  def source_line(); end
+
+  def source_range(); end
+
+  def source_type(); end
+
+  def super(times=T.unsafe(nil)); end
+
+  def unbound_method?(); end
+
+  def undefined?(); end
+
+  def visibility(); end
+
+  def wrapped(); end
+
+  def wrapped_owner(); end
+end
+
+class Pry::Method
+  extend ::Pry::Helpers::BaseHelpers
+  def self.all_from_class(klass, include_super=T.unsafe(nil)); end
+
+  def self.all_from_common(obj, _method_type=T.unsafe(nil), include_super=T.unsafe(nil)); end
+
+  def self.all_from_obj(obj, include_super=T.unsafe(nil)); end
+
+  def self.from_binding(b); end
+
+  def self.from_class(klass, name, target=T.unsafe(nil)); end
+
+  def self.from_module(klass, name, target=T.unsafe(nil)); end
+
+  def self.from_obj(obj, name, target=T.unsafe(nil)); end
+
+  def self.from_str(name, target=T.unsafe(nil), options=T.unsafe(nil)); end
+
+  def self.instance_method_definition?(name, definition_line); end
+
+  def self.instance_resolution_order(klass); end
+
+  def self.lookup_method_via_binding(obj, method_name, method_type, target=T.unsafe(nil)); end
+
+  def self.method_definition?(name, definition_line); end
+
+  def self.resolution_order(obj); end
+
+  def self.singleton_class_of(obj); end
+
+  def self.singleton_class_resolution_order(klass); end
+
+  def self.singleton_method_definition?(name, definition_line); end
+end
+
+class Pry::REPL
+  def input(*args, &block); end
+
+  def output(*args, &block); end
+end
+
+class Pry::REPL
+  extend ::Pry::Forwardable
+  extend ::Forwardable
+end
+
+class Pry::Slop
+  include ::Enumerable
+  def [](key); end
+
+  def add_callback(label, &block); end
+
+  def banner(banner=T.unsafe(nil)); end
+
+  def banner=(banner); end
+
+  def command(command, options=T.unsafe(nil), &block); end
+
+  def config(); end
+
+  def description(desc=T.unsafe(nil)); end
+
+  def description=(desc); end
+
+  def each(&block); end
+
+  def fetch_command(command); end
+
+  def fetch_option(key); end
+
+  def get(key); end
+
+  def help(); end
+
+  def initialize(config=T.unsafe(nil), &block); end
+
+  def missing(); end
+
+  def on(*objects, &block); end
+
+  def opt(*objects, &block); end
+
+  def option(*objects, &block); end
+
+  def options(); end
+
+  def parse(items=T.unsafe(nil), &block); end
+
+  def parse!(items=T.unsafe(nil), &block); end
+
+  def present?(*keys); end
+
+  def run(callable=T.unsafe(nil), &block); end
+
+  def separator(text); end
+
+  def strict?(); end
+
+  def to_h(include_commands=T.unsafe(nil)); end
+
+  def to_hash(include_commands=T.unsafe(nil)); end
+  DEFAULT_OPTIONS = ::T.let(nil, ::T.untyped)
+  VERSION = ::T.let(nil, ::T.untyped)
+end
+
+class Pry::Slop::Commands
+  include ::Enumerable
+  def [](key); end
+
+  def arguments(); end
+
+  def banner(banner=T.unsafe(nil)); end
+
+  def banner=(banner); end
+
+  def commands(); end
+
+  def config(); end
+
+  def default(config=T.unsafe(nil), &block); end
+
+  def each(&block); end
+
+  def get(key); end
+
+  def global(config=T.unsafe(nil), &block); end
+
+  def help(); end
+
+  def initialize(config=T.unsafe(nil), &block); end
+
+  def on(command, config=T.unsafe(nil), &block); end
+
+  def parse(items=T.unsafe(nil)); end
+
+  def parse!(items=T.unsafe(nil)); end
+
+  def present?(key); end
+
+  def to_hash(); end
+end
+
+class Pry::Slop::Commands
+end
+
+class Pry::Slop::Error
+end
+
+class Pry::Slop::Error
+end
+
+class Pry::Slop::InvalidArgumentError
+end
+
+class Pry::Slop::InvalidArgumentError
+end
+
+class Pry::Slop::InvalidCommandError
+end
+
+class Pry::Slop::InvalidCommandError
+end
+
+class Pry::Slop::InvalidOptionError
+end
+
+class Pry::Slop::InvalidOptionError
+end
+
+class Pry::Slop::MissingArgumentError
+end
+
+class Pry::Slop::MissingArgumentError
+end
+
+class Pry::Slop::MissingOptionError
+end
+
+class Pry::Slop::MissingOptionError
+end
+
+class Pry::Slop::Option
+  def accepts_optional_argument?(); end
+
+  def argument?(); end
+
+  def argument_in_value(); end
+
+  def argument_in_value=(argument_in_value); end
+
+  def as?(); end
+
+  def autocreated?(); end
+
+  def call(*objects); end
+
+  def callback?(); end
+
+  def config(); end
+
+  def count(); end
+
+  def count=(count); end
+
+  def default?(); end
+
+  def delimiter?(); end
+
+  def description(); end
+
+  def expects_argument?(); end
+
+  def help(); end
+
+  def initialize(slop, short, long, description, config=T.unsafe(nil), &block); end
+
+  def key(); end
+
+  def limit?(); end
+
+  def long(); end
+
+  def match?(); end
+
+  def optional?(); end
+
+  def optional_argument?(); end
+
+  def required?(); end
+
+  def short(); end
+
+  def tail?(); end
+
+  def types(); end
+
+  def value(); end
+
+  def value=(new_value); end
+  DEFAULT_OPTIONS = ::T.let(nil, ::T.untyped)
+end
+
+class Pry::Slop::Option
+end
+
+class Pry::Slop
+  def self.optspec(string, config=T.unsafe(nil)); end
+
+  def self.parse(items=T.unsafe(nil), config=T.unsafe(nil), &block); end
+
+  def self.parse!(items=T.unsafe(nil), config=T.unsafe(nil), &block); end
+end
+
+class Pry::Terminal
+end
+
+class Pry::Terminal
+  def self.actual_screen_size(); end
+
+  def self.height!(); end
+
+  def self.screen_size(); end
+
+  def self.screen_size_according_to_ansicon_env(); end
+
+  def self.screen_size_according_to_env(); end
+
+  def self.screen_size_according_to_io_console(); end
+
+  def self.screen_size_according_to_readline(); end
+
+  def self.size!(default=T.unsafe(nil)); end
+
+  def self.width!(); end
+end
+
+class Pry::Testable::PryTester
+  def eval_string(*args, &block); end
+
+  def eval_string=(*args, &block); end
+end
+
+module Pry::TooSafeException
+end
+
+module Pry::TooSafeException
+  def self.===(exception); end
+end
+
+class Pry::WrappedModule
+  include ::Pry::Helpers::BaseHelpers
+  include ::Pry::CodeObject::Helpers
+  def candidate(rank); end
+
+  def candidates(); end
+
+  def class?(); end
+
+  def constants(inherit=T.unsafe(nil)); end
+
+  def doc(); end
+
+  def file(); end
+
+  def initialize(mod); end
+
+  def line(); end
+
+  def method_missing(method_name, *args, &block); end
+
+  def method_prefix(); end
+
+  def module?(); end
+
+  def nonblank_name(); end
+
+  def number_of_candidates(); end
+
+  def respond_to?(method_name, include_all=T.unsafe(nil)); end
+
+  def singleton_class?(); end
+
+  def singleton_instance(); end
+
+  def source(); end
+
+  def source_file(); end
+
+  def source_line(); end
+
+  def source_location(); end
+
+  def super(times=T.unsafe(nil)); end
+
+  def wrapped(); end
+
+  def yard_doc(); end
+
+  def yard_docs?(); end
+
+  def yard_file(); end
+
+  def yard_line(); end
+end
+
+class Pry::WrappedModule::Candidate
+  include ::Pry::Helpers::DocumentationHelpers
+  include ::Pry::CodeObject::Helpers
+  def class?(*args, &block); end
+
+  def module?(*args, &block); end
+
+  def nonblank_name(*args, &block); end
+
+  def number_of_candidates(*args, &block); end
+
+  def wrapped(*args, &block); end
+end
+
+class Pry::WrappedModule::Candidate
+  extend ::Pry::Forwardable
+  extend ::Forwardable
+end
+
+class Pry::WrappedModule
+  def self.from_str(mod_name, target=T.unsafe(nil)); end
+end
+
+class Pry
+  extend ::Pry::Config::Convenience
+  def self.Method(obj); end
+
+  def self.WrappedModule(obj); end
+
+  def self.auto_resize!(); end
+
+  def self.binding_for(target); end
+
+  def self.cli(); end
+
+  def self.cli=(cli); end
+
+  def self.color(); end
+
+  def self.color=(value); end
+
+  def self.commands(); end
+
+  def self.commands=(value); end
+
+  def self.config(); end
+
+  def self.config=(config); end
+
+  def self.configure(); end
+
+  def self.critical_section(); end
+
+  def self.current(); end
+
+  def self.current_line(); end
+
+  def self.current_line=(current_line); end
+
+  def self.custom_completions(); end
+
+  def self.custom_completions=(custom_completions); end
+
+  def self.default_editor_for_platform(); end
+
+  def self.editor(); end
+
+  def self.editor=(value); end
+
+  def self.eval_path(); end
+
+  def self.eval_path=(eval_path); end
+
+  def self.exception_handler(); end
+
+  def self.exception_handler=(value); end
+
+  def self.extra_sticky_locals(); end
+
+  def self.extra_sticky_locals=(value); end
+
+  def self.final_session_setup(); end
+
+  def self.history(); end
+
+  def self.history=(history); end
+
+  def self.hooks(); end
+
+  def self.hooks=(value); end
+
+  def self.in_critical_section?(); end
+
+  def self.init(); end
+
+  def self.initial_session?(); end
+
+  def self.initial_session_setup(); end
+
+  def self.input(); end
+
+  def self.input=(value); end
+
+  def self.last_internal_error(); end
+
+  def self.last_internal_error=(last_internal_error); end
+
+  def self.lazy(&block); end
+
+  def self.line_buffer(); end
+
+  def self.line_buffer=(line_buffer); end
+
+  def self.load_file_at_toplevel(file); end
+
+  def self.load_file_through_repl(file_name); end
+
+  def self.load_history(); end
+
+  def self.load_plugins(*args, &block); end
+
+  def self.load_rc_files(); end
+
+  def self.load_requires(); end
+
+  def self.load_traps(); end
+
+  def self.load_win32console(); end
+
+  def self.locate_plugins(*args, &block); end
+
+  def self.main(); end
+
+  def self.memory_size(); end
+
+  def self.memory_size=(value); end
+
+  def self.output(); end
+
+  def self.output=(value); end
+
+  def self.pager(); end
+
+  def self.pager=(value); end
+
+  def self.plugins(*args, &block); end
+
+  def self.print(); end
+
+  def self.print=(value); end
+
+  def self.prompt(); end
+
+  def self.prompt=(value); end
+
+  def self.quiet(); end
+
+  def self.quiet=(quiet); end
+
+  def self.rc_files_to_load(); end
+
+  def self.real_path_to(file); end
+
+  def self.reset_defaults(); end
+
+  def self.run_command(command_string, options=T.unsafe(nil)); end
+
+  def self.start(target=T.unsafe(nil), options=T.unsafe(nil)); end
+
+  def self.toplevel_binding(); end
+
+  def self.toplevel_binding=(binding); end
+
+  def self.view_clip(obj, options=T.unsafe(nil)); end
+end
+
+module YAML
+end
+
+class YAML::Stream
+end
+
+class Psych::Stream::Emitter
+  def end_document(implicit_end=T.unsafe(nil)); end
+end
+
+class Psych::Stream::Emitter
+end
+
+class YAML::Stream
+end
+
+module YAML::Visitors
+end
+
+class Psych::Visitors::JSONTree
+  include ::YAML::JSON::RubyEvents
+end
+
+class Psych::Visitors::JSONTree
+  def self.create(options=T.unsafe(nil)); end
+end
+
+class Psych::Visitors::Visitor
+  def accept(target); end
+  DISPATCH = ::T.let(nil, ::T.untyped)
+end
+
+class Psych::Visitors::Visitor
+end
+
+class Psych::Visitors::YAMLTree
+  def <<(object); end
+
+  def finish(); end
+
+  def finished(); end
+
+  def finished?(); end
+
+  def initialize(emitter, ss, options); end
+
+  def push(object); end
+
+  def start(encoding=T.unsafe(nil)); end
+
+  def started(); end
+
+  def started?(); end
+
+  def tree(); end
+
+  def visit_Array(o); end
+
+  def visit_BasicObject(o); end
+
+  def visit_BigDecimal(o); end
+
+  def visit_Class(o); end
+
+  def visit_Complex(o); end
+
+  def visit_Date(o); end
+
+  def visit_DateTime(o); end
+
+  def visit_Delegator(o); end
+
+  def visit_Encoding(o); end
+
+  def visit_Enumerator(o); end
+
+  def visit_Exception(o); end
+
+  def visit_FalseClass(o); end
+
+  def visit_Float(o); end
+
+  def visit_Hash(o); end
+
+  def visit_Integer(o); end
+
+  def visit_Module(o); end
+
+  def visit_NameError(o); end
+
+  def visit_NilClass(o); end
+
+  def visit_Object(o); end
+
+  def visit_Psych_Omap(o); end
+
+  def visit_Psych_Set(o); end
+
+  def visit_Range(o); end
+
+  def visit_Rational(o); end
+
+  def visit_Regexp(o); end
+
+  def visit_String(o); end
+
+  def visit_Struct(o); end
+
+  def visit_Symbol(o); end
+
+  def visit_Time(o); end
+
+  def visit_TrueClass(o); end
+end
+
+class Psych::Visitors::YAMLTree
+  def self.create(options=T.unsafe(nil), emitter=T.unsafe(nil)); end
+end
+
+module YAML::Visitors
+end
+
+module YAML
+end
+
+module Random::Formatter
+  def alphanumeric(n=T.unsafe(nil)); end
+
+  ALPHANUMERIC = ::T.let(nil, ::T.untyped)
+end
+
+class Random
+  extend ::Random::Formatter
+  def self.bytes(_); end
+
+  def self.urandom(_); end
+end
+
+class Range
+  def %(_); end
+
+  def entries(); end
+
+  def to_a(); end
+end
+
+module RbConfig
+  def self.expand(val, config=T.unsafe(nil)); end
+
+  def self.fire_update!(key, val, mkconf=T.unsafe(nil), conf=T.unsafe(nil)); end
+
+  def self.ruby(); end
+end
+
+class Regexp
+  def match?(*_); end
+end
+
+module RubyVM::AbstractSyntaxTree
+end
+
+class RubyVM::AbstractSyntaxTree::Node
+  def children(); end
+
+  def first_column(); end
+
+  def first_lineno(); end
+
+  def last_column(); end
+
+  def last_lineno(); end
+
+  def pretty_print_children(q, names=T.unsafe(nil)); end
+
+  def type(); end
+end
+
+class RubyVM::AbstractSyntaxTree::Node
+end
+
+module RubyVM::AbstractSyntaxTree
+  def self.of(body); end
+
+  def self.parse(string); end
+
+  def self.parse_file(pathname); end
+end
+
+class RubyVM::InstructionSequence
+  def absolute_path(); end
+
+  def base_label(); end
+
+  def disasm(); end
+
+  def disassemble(); end
+
+  def each_child(); end
+
+  def eval(); end
+
+  def first_lineno(); end
+
+  def label(); end
+
+  def path(); end
+
+  def to_a(); end
+
+  def to_binary(*_); end
+
+  def trace_points(); end
+end
+
+class RubyVM::InstructionSequence
+  def self.compile(*_); end
+
+  def self.compile_file(*_); end
+
+  def self.compile_option(); end
+
+  def self.compile_option=(compile_option); end
+
+  def self.disasm(_); end
+
+  def self.disassemble(_); end
+
+  def self.load_from_binary(_); end
+
+  def self.load_from_binary_extra_data(_); end
+
+  def self.of(_); end
+end
+
+module RubyVM::MJIT
+end
+
+module RubyVM::MJIT
+  def self.enabled?(); end
+
+  def self.pause(*_); end
+
+  def self.resume(); end
+end
+
+class RubyVM
+  def self.stat(*_); end
+end
+
+ScanError = StringScanner::Error
+
+class Set
+  def ==(other); end
+
+  def ===(o); end
+
+  def compare_by_identity(); end
+
+  def compare_by_identity?(); end
+
+  def divide(&func); end
+
+  def eql?(o); end
+
+  def flatten_merge(set, seen=T.unsafe(nil)); end
+
+  def pretty_print(pp); end
+
+  def pretty_print_cycle(pp); end
+
+  def reset(); end
+  InspectKey = ::T.let(nil, ::T.untyped)
+end
+
+module Shellwords
+end
+
+module Shellwords
+  def self.escape(str); end
+
+  def self.join(array); end
+
+  def self.shellescape(str); end
+
+  def self.shelljoin(array); end
+
+  def self.shellsplit(line); end
+
+  def self.shellwords(line); end
+
+  def self.split(line); end
+end
+
+class SignalException
+  def signm(); end
+
+  def signo(); end
+end
+
+module SingleForwardable
+  def def_delegator(accessor, method, ali=T.unsafe(nil)); end
+
+  def def_delegators(accessor, *methods); end
+
+  def def_single_delegator(accessor, method, ali=T.unsafe(nil)); end
+
+  def def_single_delegators(accessor, *methods); end
+
+  def delegate(hash); end
+
+  def single_delegate(hash); end
+end
+
+class Socket
+  AF_CCITT = ::T.let(nil, ::T.untyped)
+  AF_CHAOS = ::T.let(nil, ::T.untyped)
+  AF_CNT = ::T.let(nil, ::T.untyped)
+  AF_COIP = ::T.let(nil, ::T.untyped)
+  AF_DATAKIT = ::T.let(nil, ::T.untyped)
+  AF_DLI = ::T.let(nil, ::T.untyped)
+  AF_E164 = ::T.let(nil, ::T.untyped)
+  AF_ECMA = ::T.let(nil, ::T.untyped)
+  AF_HYLINK = ::T.let(nil, ::T.untyped)
+  AF_IMPLINK = ::T.let(nil, ::T.untyped)
+  AF_ISO = ::T.let(nil, ::T.untyped)
+  AF_LAT = ::T.let(nil, ::T.untyped)
+  AF_LINK = ::T.let(nil, ::T.untyped)
+  AF_NATM = ::T.let(nil, ::T.untyped)
+  AF_NDRV = ::T.let(nil, ::T.untyped)
+  AF_NETBIOS = ::T.let(nil, ::T.untyped)
+  AF_NS = ::T.let(nil, ::T.untyped)
+  AF_OSI = ::T.let(nil, ::T.untyped)
+  AF_PPP = ::T.let(nil, ::T.untyped)
+  AF_PUP = ::T.let(nil, ::T.untyped)
+  AF_SIP = ::T.let(nil, ::T.untyped)
+  AF_SYSTEM = ::T.let(nil, ::T.untyped)
+  AI_DEFAULT = ::T.let(nil, ::T.untyped)
+  AI_MASK = ::T.let(nil, ::T.untyped)
+  AI_V4MAPPED_CFG = ::T.let(nil, ::T.untyped)
+  EAI_BADHINTS = ::T.let(nil, ::T.untyped)
+  EAI_MAX = ::T.let(nil, ::T.untyped)
+  EAI_PROTOCOL = ::T.let(nil, ::T.untyped)
+  IFF_ALTPHYS = ::T.let(nil, ::T.untyped)
+  IFF_LINK0 = ::T.let(nil, ::T.untyped)
+  IFF_LINK1 = ::T.let(nil, ::T.untyped)
+  IFF_LINK2 = ::T.let(nil, ::T.untyped)
+  IFF_OACTIVE = ::T.let(nil, ::T.untyped)
+  IFF_SIMPLEX = ::T.let(nil, ::T.untyped)
+  IPPROTO_EON = ::T.let(nil, ::T.untyped)
+  IPPROTO_GGP = ::T.let(nil, ::T.untyped)
+  IPPROTO_HELLO = ::T.let(nil, ::T.untyped)
+  IPPROTO_MAX = ::T.let(nil, ::T.untyped)
+  IPPROTO_ND = ::T.let(nil, ::T.untyped)
+  IPPROTO_XTP = ::T.let(nil, ::T.untyped)
+  IPV6_DONTFRAG = ::T.let(nil, ::T.untyped)
+  IPV6_PATHMTU = ::T.let(nil, ::T.untyped)
+  IPV6_RECVPATHMTU = ::T.let(nil, ::T.untyped)
+  IPV6_USE_MIN_MTU = ::T.let(nil, ::T.untyped)
+  IP_PORTRANGE = ::T.let(nil, ::T.untyped)
+  IP_RECVDSTADDR = ::T.let(nil, ::T.untyped)
+  IP_RECVIF = ::T.let(nil, ::T.untyped)
+  LOCAL_PEERCRED = ::T.let(nil, ::T.untyped)
+  MSG_EOF = ::T.let(nil, ::T.untyped)
+  MSG_FLUSH = ::T.let(nil, ::T.untyped)
+  MSG_HAVEMORE = ::T.let(nil, ::T.untyped)
+  MSG_HOLD = ::T.let(nil, ::T.untyped)
+  MSG_RCVMORE = ::T.let(nil, ::T.untyped)
+  MSG_SEND = ::T.let(nil, ::T.untyped)
+  PF_CCITT = ::T.let(nil, ::T.untyped)
+  PF_CHAOS = ::T.let(nil, ::T.untyped)
+  PF_CNT = ::T.let(nil, ::T.untyped)
+  PF_COIP = ::T.let(nil, ::T.untyped)
+  PF_DATAKIT = ::T.let(nil, ::T.untyped)
+  PF_DLI = ::T.let(nil, ::T.untyped)
+  PF_ECMA = ::T.let(nil, ::T.untyped)
+  PF_HYLINK = ::T.let(nil, ::T.untyped)
+  PF_IMPLINK = ::T.let(nil, ::T.untyped)
+  PF_ISO = ::T.let(nil, ::T.untyped)
+  PF_LAT = ::T.let(nil, ::T.untyped)
+  PF_LINK = ::T.let(nil, ::T.untyped)
+  PF_NATM = ::T.let(nil, ::T.untyped)
+  PF_NDRV = ::T.let(nil, ::T.untyped)
+  PF_NETBIOS = ::T.let(nil, ::T.untyped)
+  PF_NS = ::T.let(nil, ::T.untyped)
+  PF_OSI = ::T.let(nil, ::T.untyped)
+  PF_PIP = ::T.let(nil, ::T.untyped)
+  PF_PPP = ::T.let(nil, ::T.untyped)
+  PF_PUP = ::T.let(nil, ::T.untyped)
+  PF_RTIP = ::T.let(nil, ::T.untyped)
+  PF_SIP = ::T.let(nil, ::T.untyped)
+  PF_SYSTEM = ::T.let(nil, ::T.untyped)
+  PF_XTP = ::T.let(nil, ::T.untyped)
+  SCM_CREDS = ::T.let(nil, ::T.untyped)
+  SO_DONTTRUNC = ::T.let(nil, ::T.untyped)
+  SO_NKE = ::T.let(nil, ::T.untyped)
+  SO_NOSIGPIPE = ::T.let(nil, ::T.untyped)
+  SO_NREAD = ::T.let(nil, ::T.untyped)
+  SO_USELOOPBACK = ::T.let(nil, ::T.untyped)
+  SO_WANTMORE = ::T.let(nil, ::T.untyped)
+  SO_WANTOOBFLAG = ::T.let(nil, ::T.untyped)
+  TCP_NOOPT = ::T.let(nil, ::T.untyped)
+  TCP_NOPUSH = ::T.let(nil, ::T.untyped)
+end
+
+module Socket::Constants
+  AF_CCITT = ::T.let(nil, ::T.untyped)
+  AF_CHAOS = ::T.let(nil, ::T.untyped)
+  AF_CNT = ::T.let(nil, ::T.untyped)
+  AF_COIP = ::T.let(nil, ::T.untyped)
+  AF_DATAKIT = ::T.let(nil, ::T.untyped)
+  AF_DLI = ::T.let(nil, ::T.untyped)
+  AF_E164 = ::T.let(nil, ::T.untyped)
+  AF_ECMA = ::T.let(nil, ::T.untyped)
+  AF_HYLINK = ::T.let(nil, ::T.untyped)
+  AF_IMPLINK = ::T.let(nil, ::T.untyped)
+  AF_ISO = ::T.let(nil, ::T.untyped)
+  AF_LAT = ::T.let(nil, ::T.untyped)
+  AF_LINK = ::T.let(nil, ::T.untyped)
+  AF_NATM = ::T.let(nil, ::T.untyped)
+  AF_NDRV = ::T.let(nil, ::T.untyped)
+  AF_NETBIOS = ::T.let(nil, ::T.untyped)
+  AF_NS = ::T.let(nil, ::T.untyped)
+  AF_OSI = ::T.let(nil, ::T.untyped)
+  AF_PPP = ::T.let(nil, ::T.untyped)
+  AF_PUP = ::T.let(nil, ::T.untyped)
+  AF_SIP = ::T.let(nil, ::T.untyped)
+  AF_SYSTEM = ::T.let(nil, ::T.untyped)
+  AI_DEFAULT = ::T.let(nil, ::T.untyped)
+  AI_MASK = ::T.let(nil, ::T.untyped)
+  AI_V4MAPPED_CFG = ::T.let(nil, ::T.untyped)
+  EAI_BADHINTS = ::T.let(nil, ::T.untyped)
+  EAI_MAX = ::T.let(nil, ::T.untyped)
+  EAI_PROTOCOL = ::T.let(nil, ::T.untyped)
+  IFF_ALTPHYS = ::T.let(nil, ::T.untyped)
+  IFF_LINK0 = ::T.let(nil, ::T.untyped)
+  IFF_LINK1 = ::T.let(nil, ::T.untyped)
+  IFF_LINK2 = ::T.let(nil, ::T.untyped)
+  IFF_OACTIVE = ::T.let(nil, ::T.untyped)
+  IFF_SIMPLEX = ::T.let(nil, ::T.untyped)
+  IPPROTO_EON = ::T.let(nil, ::T.untyped)
+  IPPROTO_GGP = ::T.let(nil, ::T.untyped)
+  IPPROTO_HELLO = ::T.let(nil, ::T.untyped)
+  IPPROTO_MAX = ::T.let(nil, ::T.untyped)
+  IPPROTO_ND = ::T.let(nil, ::T.untyped)
+  IPPROTO_XTP = ::T.let(nil, ::T.untyped)
+  IPV6_DONTFRAG = ::T.let(nil, ::T.untyped)
+  IPV6_PATHMTU = ::T.let(nil, ::T.untyped)
+  IPV6_RECVPATHMTU = ::T.let(nil, ::T.untyped)
+  IPV6_USE_MIN_MTU = ::T.let(nil, ::T.untyped)
+  IP_PORTRANGE = ::T.let(nil, ::T.untyped)
+  IP_RECVDSTADDR = ::T.let(nil, ::T.untyped)
+  IP_RECVIF = ::T.let(nil, ::T.untyped)
+  LOCAL_PEERCRED = ::T.let(nil, ::T.untyped)
+  MSG_EOF = ::T.let(nil, ::T.untyped)
+  MSG_FLUSH = ::T.let(nil, ::T.untyped)
+  MSG_HAVEMORE = ::T.let(nil, ::T.untyped)
+  MSG_HOLD = ::T.let(nil, ::T.untyped)
+  MSG_RCVMORE = ::T.let(nil, ::T.untyped)
+  MSG_SEND = ::T.let(nil, ::T.untyped)
+  PF_CCITT = ::T.let(nil, ::T.untyped)
+  PF_CHAOS = ::T.let(nil, ::T.untyped)
+  PF_CNT = ::T.let(nil, ::T.untyped)
+  PF_COIP = ::T.let(nil, ::T.untyped)
+  PF_DATAKIT = ::T.let(nil, ::T.untyped)
+  PF_DLI = ::T.let(nil, ::T.untyped)
+  PF_ECMA = ::T.let(nil, ::T.untyped)
+  PF_HYLINK = ::T.let(nil, ::T.untyped)
+  PF_IMPLINK = ::T.let(nil, ::T.untyped)
+  PF_ISO = ::T.let(nil, ::T.untyped)
+  PF_LAT = ::T.let(nil, ::T.untyped)
+  PF_LINK = ::T.let(nil, ::T.untyped)
+  PF_NATM = ::T.let(nil, ::T.untyped)
+  PF_NDRV = ::T.let(nil, ::T.untyped)
+  PF_NETBIOS = ::T.let(nil, ::T.untyped)
+  PF_NS = ::T.let(nil, ::T.untyped)
+  PF_OSI = ::T.let(nil, ::T.untyped)
+  PF_PIP = ::T.let(nil, ::T.untyped)
+  PF_PPP = ::T.let(nil, ::T.untyped)
+  PF_PUP = ::T.let(nil, ::T.untyped)
+  PF_RTIP = ::T.let(nil, ::T.untyped)
+  PF_SIP = ::T.let(nil, ::T.untyped)
+  PF_SYSTEM = ::T.let(nil, ::T.untyped)
+  PF_XTP = ::T.let(nil, ::T.untyped)
+  SCM_CREDS = ::T.let(nil, ::T.untyped)
+  SO_DONTTRUNC = ::T.let(nil, ::T.untyped)
+  SO_NKE = ::T.let(nil, ::T.untyped)
+  SO_NOSIGPIPE = ::T.let(nil, ::T.untyped)
+  SO_NREAD = ::T.let(nil, ::T.untyped)
+  SO_USELOOPBACK = ::T.let(nil, ::T.untyped)
+  SO_WANTMORE = ::T.let(nil, ::T.untyped)
+  SO_WANTOOBFLAG = ::T.let(nil, ::T.untyped)
+  TCP_NOOPT = ::T.let(nil, ::T.untyped)
+  TCP_NOPUSH = ::T.let(nil, ::T.untyped)
+end
+
+class Sorbet::Private::ConstantLookupCache::ConstantEntry
+  def self.[](*_); end
+
+  def self.members(); end
+end
+
+class Sorbet::Private::GemGeneratorTracepoint::ClassDefinition
+  def defs(); end
+
+  def defs=(_); end
+
+  def id(); end
+
+  def id=(_); end
+
+  def klass(); end
+
+  def klass=(_); end
+end
+
+class Sorbet::Private::GemGeneratorTracepoint::ClassDefinition
+  def self.[](*_); end
+
+  def self.members(); end
+end
+
+class Sorbet::Private::GemGeneratorTracepoint::TracepointSerializer
+  def initialize(files:, delegate_classes:); end
+
+  def serialize(output_dir); end
+  BAD_METHODS = ::T.let(nil, ::T.untyped)
+  HEADER = ::T.let(nil, ::T.untyped)
+  SPECIAL_METHOD_NAMES = ::T.let(nil, ::T.untyped)
+end
+
+class Sorbet::Private::GemGeneratorTracepoint::TracepointSerializer
+end
+
+class Sorbet::Private::GemGeneratorTracepoint::Tracer
+end
+
+class Sorbet::Private::GemGeneratorTracepoint::Tracer
+  def self.add_to_context(item); end
+
+  def self.disable_tracepoints(); end
+
+  def self.finish(); end
+
+  def self.install_tracepoints(); end
+
+  def self.on_method_added(mod, method, singleton); end
+
+  def self.on_module_created(mod); end
+
+  def self.on_module_extended(extended, extender); end
+
+  def self.on_module_included(included, includer); end
+
+  def self.pre_cache_module_methods(); end
+
+  def self.register_delegate_class(klass, delegate); end
+
+  def self.start(); end
+
+  def self.trace(); end
+
+  def self.trace_results(); end
+end
+
+class Sorbet::Private::GemLoader
+  GEM_LOADER = ::T.let(nil, ::T.untyped)
+  NO_GEM = ::T.let(nil, ::T.untyped)
+end
+
+class Sorbet::Private::GemLoader
+  def self.my_require(gem); end
+end
+
+module Sorbet::Private::Main
+end
+
+module Sorbet::Private::Main
+  def self.cyan(msg); end
+
+  def self.emojify(emoji, msg); end
+
+  def self.init(); end
+
+  def self.main(argv); end
+
+  def self.make_step(step); end
+
+  def self.usage(); end
+
+  def self.yellow(msg); end
+end
+
+class SortedSet
+  def initialize(*args, &block); end
+end
+
+class SortedSet
+  def self.setup(); end
+end
+
+class StopIteration
+  def result(); end
+end
+
+class String
+  include ::JSON::Ext::Generator::GeneratorMethods::String
+  def []=(*_); end
+
+  def casecmp?(_); end
+
+  def each_grapheme_cluster(); end
+
+  def encode!(*_); end
+
+  def grapheme_clusters(); end
+
+  def reverse!(); end
+
+  def shellescape(); end
+
+  def shellsplit(); end
+
+  def succ!(); end
+
+  def undump(); end
+
+  def unicode_normalize(*_); end
+
+  def unicode_normalize!(*_); end
+
+  def unicode_normalized?(*_); end
+
+  def unpack1(fmt); end
+end
+
+class String
+  extend ::JSON::Ext::Generator::GeneratorMethods::String::Extend
+end
+
+class StringIO
+  def length(); end
+
+  def set_encoding_by_bom(); end
+
+  def truncate(_); end
+  VERSION = ::T.let(nil, ::T.untyped)
+end
+
+class StringScanner
+  def <<(_); end
+
+  def [](_); end
+
+  def beginning_of_line?(); end
+
+  def bol?(); end
+
+  def captures(); end
+
+  def charpos(); end
+
+  def check(_); end
+
+  def check_until(_); end
+
+  def clear(); end
+
+  def concat(_); end
+
+  def empty?(); end
+
+  def exist?(_); end
+
+  def fixed_anchor?(); end
+
+  def get_byte(); end
+
+  def getbyte(); end
+
+  def initialize(*_); end
+
+  def match?(_); end
+
+  def matched(); end
+
+  def matched?(); end
+
+  def matched_size(); end
+
+  def peek(_); end
+
+  def peep(_); end
+
+  def pointer(); end
+
+  def pointer=(pointer); end
+
+  def pos(); end
+
+  def pos=(pos); end
+
+  def post_match(); end
+
+  def pre_match(); end
+
+  def reset(); end
+
+  def rest(); end
+
+  def rest?(); end
+
+  def rest_size(); end
+
+  def restsize(); end
+
+  def scan_full(_, _1, _2); end
+
+  def scan_until(_); end
+
+  def search_full(_, _1, _2); end
+
+  def size(); end
+
+  def skip(_); end
+
+  def skip_until(_); end
+
+  def string(); end
+
+  def string=(string); end
+
+  def terminate(); end
+
+  def unscan(); end
+
+  def values_at(*_); end
+  Id = ::T.let(nil, ::T.untyped)
+  Version = ::T.let(nil, ::T.untyped)
+end
+
+class StringScanner
+  def self.must_C_version(); end
+end
+
+class Struct
+  def [](_); end
+
+  def []=(_, _1); end
+
+  def deconstruct(); end
+
+  def deconstruct_keys(_); end
+
+  def dig(*_); end
+
+  def each_pair(); end
+
+  def filter(*_); end
+
+  def length(); end
+
+  def members(); end
+
+  def select(*_); end
+
+  def size(); end
+
+  def to_a(); end
+
+  def to_h(); end
+
+  def values(); end
+
+  def values_at(*_); end
+end
+
+Struct::Group = Etc::Group
+
+Struct::Passwd = Etc::Passwd
+
+Struct::Tms = Process::Tms
+
+class SystemCallError
+  def errno(); end
+end
+
+class SystemExit
+  def status(); end
+
+  def success?(); end
+end
+
+class Tempfile
+  def _close(); end
+
+  def inspect(); end
+end
+
+class Tempfile::Remover
+  def call(*args); end
+
+  def initialize(tmpfile); end
+end
+
+class Tempfile::Remover
+end
+
+class Time
+  def ceil(*_); end
+
+  def floor(*_); end
+end
+
+class TracePoint
+  def eval_script(); end
+
+  def event(); end
+
+  def instruction_sequence(); end
+
+  def parameters(); end
+
+  def stat(); end
+end
+
+class TracePoint
+  def self.new(*events); end
+end
+
+class TrueClass
+  include ::JSON::Ext::Generator::GeneratorMethods::TrueClass
+end
+
+module URI
+  include ::URI::RFC2396_REGEXP
+end
+
+module URI::Escape
+  def decode(*arg); end
+
+  def encode(*arg); end
+
+  def escape(*arg); end
+
+  def unescape(*arg); end
+end
+
+class URI::FTP
+  def set_typecode(v); end
+
+  def typecode(); end
+
+  def typecode=(typecode); end
+end
+
+class URI::FTP
+  def self.new2(user, password, host, port, path, typecode=T.unsafe(nil), arg_check=T.unsafe(nil)); end
+end
+
+class URI::File
+  def check_password(user); end
+
+  def check_user(user); end
+
+  def check_userinfo(user); end
+
+  def set_userinfo(v); end
+  COMPONENT = ::T.let(nil, ::T.untyped)
+  DEFAULT_PORT = ::T.let(nil, ::T.untyped)
+end
+
+class URI::File
+end
+
+class URI::LDAP
+  def attributes(); end
+
+  def attributes=(val); end
+
+  def dn(); end
+
+  def dn=(val); end
+
+  def extensions(); end
+
+  def extensions=(val); end
+
+  def filter(); end
+
+  def filter=(val); end
+
+  def initialize(*arg); end
+
+  def scope(); end
+
+  def scope=(val); end
+
+  def set_attributes(val); end
+
+  def set_dn(val); end
+
+  def set_extensions(val); end
+
+  def set_filter(val); end
+
+  def set_scope(val); end
+end
+
+class URI::MailTo
+  def headers(); end
+
+  def headers=(v); end
+
+  def initialize(*arg); end
+
+  def set_headers(v); end
+
+  def set_to(v); end
+
+  def to(); end
+
+  def to=(v); end
+
+  def to_mailtext(); end
+
+  def to_rfc822text(); end
+end
+
+URI::Parser = URI::RFC2396_Parser
+
+URI::REGEXP = URI::RFC2396_REGEXP
+
+class URI::RFC2396_Parser
+  def escape(str, unsafe=T.unsafe(nil)); end
+
+  def extract(str, schemes=T.unsafe(nil)); end
+
+  def initialize(opts=T.unsafe(nil)); end
+
+  def join(*uris); end
+
+  def make_regexp(schemes=T.unsafe(nil)); end
+
+  def parse(uri); end
+
+  def pattern(); end
+
+  def regexp(); end
+
+  def split(uri); end
+
+  def unescape(str, escaped=T.unsafe(nil)); end
+end
+
+class URI::RFC3986_Parser
+  def join(*uris); end
+
+  def parse(uri); end
+
+  def regexp(); end
+
+  def split(uri); end
+  RFC3986_relative_ref = ::T.let(nil, ::T.untyped)
+end
+
+module URI::Util
+  def self.make_components_hash(klass, array_hash); end
+end
+
+module URI
+  extend ::URI::Escape
+  def self.get_encoding(label); end
+
+end
+
+class UnboundMethod
+  def bind_call(*_); end
+
+  def clone(); end
+
+  def original_name(); end
+end
+
+class UncaughtThrowError
+  def tag(); end
+
+  def value(); end
+end
+
+module UnicodeNormalize
+end
+
+module UnicodeNormalize
+end
+
+module Warning
+  def warn(_); end
+end
+
+module Warning
+  extend ::Warning
+end
+
+module YAML
+  LIBYAML_VERSION = ::T.let(nil, ::T.untyped)
+  VERSION = ::T.let(nil, ::T.untyped)
+end
+
+class YAML::BadAlias
+end
+
+class YAML::BadAlias
+end
+
+class YAML::ClassLoader
+  def big_decimal(); end
+
+  def complex(); end
+
+  def date(); end
+
+  def date_time(); end
+
+  def exception(); end
+
+  def load(klassname); end
+
+  def object(); end
+
+  def psych_omap(); end
+
+  def psych_set(); end
+
+  def range(); end
+
+  def rational(); end
+
+  def regexp(); end
+
+  def struct(); end
+
+  def symbol(); end
+
+  def symbolize(sym); end
+  BIG_DECIMAL = ::T.let(nil, ::T.untyped)
+  CACHE = ::T.let(nil, ::T.untyped)
+  COMPLEX = ::T.let(nil, ::T.untyped)
+  DATE = ::T.let(nil, ::T.untyped)
+  DATE_TIME = ::T.let(nil, ::T.untyped)
+  EXCEPTION = ::T.let(nil, ::T.untyped)
+  OBJECT = ::T.let(nil, ::T.untyped)
+  PSYCH_OMAP = ::T.let(nil, ::T.untyped)
+  PSYCH_SET = ::T.let(nil, ::T.untyped)
+  RANGE = ::T.let(nil, ::T.untyped)
+  RATIONAL = ::T.let(nil, ::T.untyped)
+  REGEXP = ::T.let(nil, ::T.untyped)
+  STRUCT = ::T.let(nil, ::T.untyped)
+  SYMBOL = ::T.let(nil, ::T.untyped)
+end
+
+class YAML::ClassLoader::Restricted
+  def initialize(classes, symbols); end
+end
+
+class YAML::ClassLoader::Restricted
+end
+
+class YAML::ClassLoader
+end
+
+class YAML::Coder
+  def [](k); end
+
+  def []=(k, v); end
+
+  def add(k, v); end
+
+  def implicit(); end
+
+  def implicit=(implicit); end
+
+  def initialize(tag); end
+
+  def map(tag=T.unsafe(nil), style=T.unsafe(nil)); end
+
+  def map=(map); end
+
+  def object(); end
+
+  def object=(object); end
+
+  def represent_map(tag, map); end
+
+  def represent_object(tag, obj); end
+
+  def represent_scalar(tag, value); end
+
+  def represent_seq(tag, list); end
+
+  def scalar(*args); end
+
+  def scalar=(value); end
+
+  def seq(); end
+
+  def seq=(list); end
+
+  def style(); end
+
+  def style=(style); end
+
+  def tag(); end
+
+  def tag=(tag); end
+
+  def type(); end
+end
+
+class YAML::Coder
+end
+
+class YAML::DisallowedClass
+  def initialize(klass_name); end
+end
+
+class YAML::DisallowedClass
+end
+
+class YAML::Emitter
+  def alias(_); end
+
+  def canonical(); end
+
+  def canonical=(canonical); end
+
+  def end_document(_); end
+
+  def indentation(); end
+
+  def indentation=(indentation); end
+
+  def initialize(*_); end
+
+  def line_width(); end
+
+  def line_width=(line_width); end
+
+  def scalar(_, _1, _2, _3, _4, _5); end
+
+  def start_document(_, _1, _2); end
+
+  def start_mapping(_, _1, _2, _3); end
+
+  def start_sequence(_, _1, _2, _3); end
+
+  def start_stream(_); end
+end
+
+class YAML::Emitter
+end
+
+class YAML::Exception
+end
+
+class YAML::Exception
+end
+
+class YAML::Handler
+  def alias(anchor); end
+
+  def empty(); end
+
+  def end_document(implicit); end
+
+  def end_mapping(); end
+
+  def end_sequence(); end
+
+  def end_stream(); end
+
+  def event_location(start_line, start_column, end_line, end_column); end
+
+  def scalar(value, anchor, tag, plain, quoted, style); end
+
+  def start_document(version, tag_directives, implicit); end
+
+  def start_mapping(anchor, tag, implicit, style); end
+
+  def start_sequence(anchor, tag, implicit, style); end
+
+  def start_stream(encoding); end
+
+  def streaming?(); end
+  EVENTS = ::T.let(nil, ::T.untyped)
+  OPTIONS = ::T.let(nil, ::T.untyped)
+end
+
+class YAML::Handler::DumperOptions
+  def canonical(); end
+
+  def canonical=(canonical); end
+
+  def indentation(); end
+
+  def indentation=(indentation); end
+
+  def line_width(); end
+
+  def line_width=(line_width); end
+end
+
+class YAML::Handler::DumperOptions
+end
+
+class YAML::Handler
+end
+
+module YAML::Handlers
+end
+
+class YAML::Handlers::DocumentStream
+  def initialize(&block); end
+end
+
+class YAML::Handlers::DocumentStream
+end
+
+module YAML::Handlers
+end
+
+module YAML::JSON
+end
+
+module YAML::JSON::RubyEvents
+  def visit_DateTime(o); end
+
+  def visit_String(o); end
+
+  def visit_Symbol(o); end
+
+  def visit_Time(o); end
+end
+
+module YAML::JSON::RubyEvents
+end
+
+class YAML::JSON::Stream
+  include ::YAML::Streaming
+end
+
+class YAML::JSON::Stream::Emitter
+  include ::YAML::JSON::YAMLEvents
+end
+
+class YAML::JSON::Stream::Emitter
+end
+
+class YAML::JSON::Stream
+  extend ::YAML::Streaming::ClassMethods
+end
+
+class YAML::JSON::TreeBuilder
+  include ::YAML::JSON::YAMLEvents
+end
+
+class YAML::JSON::TreeBuilder
+end
+
+module YAML::JSON::YAMLEvents
+  def end_document(implicit_end=T.unsafe(nil)); end
+
+  def scalar(value, anchor, tag, plain, quoted, style); end
+
+  def start_document(version, tag_directives, implicit); end
+
+  def start_mapping(anchor, tag, implicit, style); end
+
+  def start_sequence(anchor, tag, implicit, style); end
+end
+
+module YAML::JSON::YAMLEvents
+end
+
+module YAML::JSON
+end
+
+module YAML::Nodes
+end
+
+class YAML::Nodes::Alias
+  def anchor(); end
+
+  def anchor=(anchor); end
+
+  def initialize(anchor); end
+end
+
+class YAML::Nodes::Alias
+end
+
+class YAML::Nodes::Document
+  def implicit(); end
+
+  def implicit=(implicit); end
+
+  def implicit_end(); end
+
+  def implicit_end=(implicit_end); end
+
+  def initialize(version=T.unsafe(nil), tag_directives=T.unsafe(nil), implicit=T.unsafe(nil)); end
+
+  def root(); end
+
+  def tag_directives(); end
+
+  def tag_directives=(tag_directives); end
+
+  def version(); end
+
+  def version=(version); end
+end
+
+class YAML::Nodes::Document
+end
+
+class YAML::Nodes::Mapping
+  def anchor(); end
+
+  def anchor=(anchor); end
+
+  def implicit(); end
+
+  def implicit=(implicit); end
+
+  def initialize(anchor=T.unsafe(nil), tag=T.unsafe(nil), implicit=T.unsafe(nil), style=T.unsafe(nil)); end
+
+  def style(); end
+
+  def style=(style); end
+
+  def tag=(tag); end
+  ANY = ::T.let(nil, ::T.untyped)
+  BLOCK = ::T.let(nil, ::T.untyped)
+  FLOW = ::T.let(nil, ::T.untyped)
+end
+
+class YAML::Nodes::Mapping
+end
+
+class YAML::Nodes::Node
+  include ::Enumerable
+  def alias?(); end
+
+  def children(); end
+
+  def document?(); end
+
+  def each(&block); end
+
+  def end_column(); end
+
+  def end_column=(end_column); end
+
+  def end_line(); end
+
+  def end_line=(end_line); end
+
+  def mapping?(); end
+
+  def scalar?(); end
+
+  def sequence?(); end
+
+  def start_column(); end
+
+  def start_column=(start_column); end
+
+  def start_line(); end
+
+  def start_line=(start_line); end
+
+  def stream?(); end
+
+  def tag(); end
+
+  def to_ruby(); end
+
+  def to_yaml(io=T.unsafe(nil), options=T.unsafe(nil)); end
+
+  def transform(); end
+
+  def yaml(io=T.unsafe(nil), options=T.unsafe(nil)); end
+end
+
+class YAML::Nodes::Node
+end
+
+class YAML::Nodes::Scalar
+  def anchor(); end
+
+  def anchor=(anchor); end
+
+  def initialize(value, anchor=T.unsafe(nil), tag=T.unsafe(nil), plain=T.unsafe(nil), quoted=T.unsafe(nil), style=T.unsafe(nil)); end
+
+  def plain(); end
+
+  def plain=(plain); end
+
+  def quoted(); end
+
+  def quoted=(quoted); end
+
+  def style(); end
+
+  def style=(style); end
+
+  def tag=(tag); end
+
+  def value(); end
+
+  def value=(value); end
+  ANY = ::T.let(nil, ::T.untyped)
+  DOUBLE_QUOTED = ::T.let(nil, ::T.untyped)
+  FOLDED = ::T.let(nil, ::T.untyped)
+  LITERAL = ::T.let(nil, ::T.untyped)
+  PLAIN = ::T.let(nil, ::T.untyped)
+  SINGLE_QUOTED = ::T.let(nil, ::T.untyped)
+end
+
+class YAML::Nodes::Scalar
+end
+
+class YAML::Nodes::Sequence
+  def anchor(); end
+
+  def anchor=(anchor); end
+
+  def implicit(); end
+
+  def implicit=(implicit); end
+
+  def initialize(anchor=T.unsafe(nil), tag=T.unsafe(nil), implicit=T.unsafe(nil), style=T.unsafe(nil)); end
+
+  def style(); end
+
+  def style=(style); end
+
+  def tag=(tag); end
+  ANY = ::T.let(nil, ::T.untyped)
+  BLOCK = ::T.let(nil, ::T.untyped)
+  FLOW = ::T.let(nil, ::T.untyped)
+end
+
+class YAML::Nodes::Sequence
+end
+
+class YAML::Nodes::Stream
+  def encoding(); end
+
+  def encoding=(encoding); end
+
+  def initialize(encoding=T.unsafe(nil)); end
+  ANY = ::T.let(nil, ::T.untyped)
+  UTF16BE = ::T.let(nil, ::T.untyped)
+  UTF16LE = ::T.let(nil, ::T.untyped)
+  UTF8 = ::T.let(nil, ::T.untyped)
+end
+
+class YAML::Nodes::Stream
+end
+
+module YAML::Nodes
+end
+
+class YAML::Omap
+end
+
+class YAML::Omap
+end
+
+class YAML::Parser
+  def external_encoding=(external_encoding); end
+
+  def handler(); end
+
+  def handler=(handler); end
+
+  def initialize(handler=T.unsafe(nil)); end
+
+  def mark(); end
+
+  def parse(*_); end
+  ANY = ::T.let(nil, ::T.untyped)
+  UTF16BE = ::T.let(nil, ::T.untyped)
+  UTF16LE = ::T.let(nil, ::T.untyped)
+  UTF8 = ::T.let(nil, ::T.untyped)
+end
+
+class YAML::Parser::Mark
+end
+
+class YAML::Parser::Mark
+end
+
+class YAML::Parser
+end
+
+class YAML::ScalarScanner
+  def class_loader(); end
+
+  def initialize(class_loader); end
+
+  def parse_int(string); end
+
+  def parse_time(string); end
+
+  def tokenize(string); end
+  FLOAT = ::T.let(nil, ::T.untyped)
+  INTEGER = ::T.let(nil, ::T.untyped)
+  TIME = ::T.let(nil, ::T.untyped)
+end
+
+class YAML::ScalarScanner
+end
+
+class YAML::Set
+end
+
+class YAML::Set
+end
+
+class YAML::Stream
+  include ::YAML::Streaming
+end
+
+YAML::Stream::Emitter = Psych::Stream::Emitter
+
+class YAML::Stream
+  extend ::YAML::Streaming::ClassMethods
+end
+
+module YAML::Streaming
+  def start(encoding=T.unsafe(nil)); end
+end
+
+module YAML::Streaming::ClassMethods
+  def new(io); end
+end
+
+module YAML::Streaming::ClassMethods
+end
+
+module YAML::Streaming
+end
+
+class YAML::SyntaxError
+  def column(); end
+
+  def context(); end
+
+  def file(); end
+
+  def initialize(file, line, col, offset, problem, context); end
+
+  def line(); end
+
+  def offset(); end
+
+  def problem(); end
+end
+
+class YAML::SyntaxError
+end
+
+class YAML::TreeBuilder
+  def end_document(implicit_end=T.unsafe(nil)); end
+
+  def root(); end
+end
+
+class YAML::TreeBuilder
+end
+
+module YAML::Visitors
+end
+
+class YAML::Visitors::DepthFirst
+  def initialize(block); end
+end
+
+class YAML::Visitors::DepthFirst
+end
+
+class YAML::Visitors::Emitter
+  def initialize(io, options=T.unsafe(nil)); end
+
+  def visit_Psych_Nodes_Alias(o); end
+
+  def visit_Psych_Nodes_Document(o); end
+
+  def visit_Psych_Nodes_Mapping(o); end
+
+  def visit_Psych_Nodes_Scalar(o); end
+
+  def visit_Psych_Nodes_Sequence(o); end
+
+  def visit_Psych_Nodes_Stream(o); end
+end
+
+class YAML::Visitors::Emitter
+end
+
+YAML::Visitors::JSONTree = Psych::Visitors::JSONTree
+
+class YAML::Visitors::NoAliasRuby
+end
+
+class YAML::Visitors::NoAliasRuby
+end
+
+class YAML::Visitors::ToRuby
+  def class_loader(); end
+
+  def initialize(ss, class_loader); end
+
+  def visit_Psych_Nodes_Alias(o); end
+
+  def visit_Psych_Nodes_Document(o); end
+
+  def visit_Psych_Nodes_Mapping(o); end
+
+  def visit_Psych_Nodes_Scalar(o); end
+
+  def visit_Psych_Nodes_Sequence(o); end
+
+  def visit_Psych_Nodes_Stream(o); end
+  SHOVEL = ::T.let(nil, ::T.untyped)
+end
+
+class YAML::Visitors::ToRuby
+  def self.create(); end
+end
+
+YAML::Visitors::Visitor = Psych::Visitors::Visitor
+
+YAML::Visitors::YAMLTree = Psych::Visitors::YAMLTree
+
+module YAML::Visitors
+end
+
+module YAML
+  def self.add_builtin_type(type_tag, &block); end
+
+  def self.add_domain_type(domain, type_tag, &block); end
+
+  def self.add_tag(tag, klass); end
+
+  def self.domain_types(); end
+
+  def self.domain_types=(domain_types); end
+
+  def self.dump(o, io=T.unsafe(nil), options=T.unsafe(nil)); end
+
+  def self.dump_stream(*objects); end
+
+  def self.dump_tags(); end
+
+  def self.dump_tags=(dump_tags); end
+
+  def self.libyaml_version(); end
+
+  def self.load(yaml, legacy_filename=T.unsafe(nil), filename: T.unsafe(nil), fallback: T.unsafe(nil), symbolize_names: T.unsafe(nil)); end
+
+  def self.load_file(filename, fallback: T.unsafe(nil)); end
+
+  def self.load_stream(yaml, legacy_filename=T.unsafe(nil), filename: T.unsafe(nil), fallback: T.unsafe(nil)); end
+
+  def self.load_tags(); end
+
+  def self.load_tags=(load_tags); end
+
+  def self.parse(yaml, legacy_filename=T.unsafe(nil), filename: T.unsafe(nil), fallback: T.unsafe(nil)); end
+
+  def self.parse_file(filename, fallback: T.unsafe(nil)); end
+
+  def self.parse_stream(yaml, legacy_filename=T.unsafe(nil), filename: T.unsafe(nil), &block); end
+
+  def self.parser(); end
+
+  def self.remove_type(type_tag); end
+
+  def self.safe_load(yaml, legacy_permitted_classes=T.unsafe(nil), legacy_permitted_symbols=T.unsafe(nil), legacy_aliases=T.unsafe(nil), legacy_filename=T.unsafe(nil), permitted_classes: T.unsafe(nil), permitted_symbols: T.unsafe(nil), aliases: T.unsafe(nil), filename: T.unsafe(nil), fallback: T.unsafe(nil), symbolize_names: T.unsafe(nil)); end
+
+  def self.to_json(object); end
+end
+
+module Zlib
+  ASCII = ::T.let(nil, ::T.untyped)
+  BEST_COMPRESSION = ::T.let(nil, ::T.untyped)
+  BEST_SPEED = ::T.let(nil, ::T.untyped)
+  BINARY = ::T.let(nil, ::T.untyped)
+  DEFAULT_COMPRESSION = ::T.let(nil, ::T.untyped)
+  DEFAULT_STRATEGY = ::T.let(nil, ::T.untyped)
+  DEF_MEM_LEVEL = ::T.let(nil, ::T.untyped)
+  FILTERED = ::T.let(nil, ::T.untyped)
+  FINISH = ::T.let(nil, ::T.untyped)
+  FIXED = ::T.let(nil, ::T.untyped)
+  FULL_FLUSH = ::T.let(nil, ::T.untyped)
+  HUFFMAN_ONLY = ::T.let(nil, ::T.untyped)
+  MAX_MEM_LEVEL = ::T.let(nil, ::T.untyped)
+  MAX_WBITS = ::T.let(nil, ::T.untyped)
+  NO_COMPRESSION = ::T.let(nil, ::T.untyped)
+  NO_FLUSH = ::T.let(nil, ::T.untyped)
+  OS_AMIGA = ::T.let(nil, ::T.untyped)
+  OS_ATARI = ::T.let(nil, ::T.untyped)
+  OS_CODE = ::T.let(nil, ::T.untyped)
+  OS_CPM = ::T.let(nil, ::T.untyped)
+  OS_MACOS = ::T.let(nil, ::T.untyped)
+  OS_MSDOS = ::T.let(nil, ::T.untyped)
+  OS_OS2 = ::T.let(nil, ::T.untyped)
+  OS_QDOS = ::T.let(nil, ::T.untyped)
+  OS_RISCOS = ::T.let(nil, ::T.untyped)
+  OS_TOPS20 = ::T.let(nil, ::T.untyped)
+  OS_UNIX = ::T.let(nil, ::T.untyped)
+  OS_UNKNOWN = ::T.let(nil, ::T.untyped)
+  OS_VMCMS = ::T.let(nil, ::T.untyped)
+  OS_VMS = ::T.let(nil, ::T.untyped)
+  OS_WIN32 = ::T.let(nil, ::T.untyped)
+  OS_ZSYSTEM = ::T.let(nil, ::T.untyped)
+  RLE = ::T.let(nil, ::T.untyped)
+  SYNC_FLUSH = ::T.let(nil, ::T.untyped)
+  TEXT = ::T.let(nil, ::T.untyped)
+  UNKNOWN = ::T.let(nil, ::T.untyped)
+  VERSION = ::T.let(nil, ::T.untyped)
+  ZLIB_VERSION = ::T.let(nil, ::T.untyped)
+end
+
+class Zlib::BufError
+end
+
+class Zlib::BufError
+end
+
+class Zlib::DataError
+end
+
+class Zlib::DataError
+end
+
+class Zlib::Deflate
+  def <<(_); end
+
+  def deflate(*_); end
+
+  def flush(*_); end
+
+  def initialize(*_); end
+
+  def params(_, _1); end
+
+  def set_dictionary(_); end
+end
+
+class Zlib::Deflate
+  def self.deflate(*_); end
+end
+
+class Zlib::Error
+end
+
+class Zlib::Error
+end
+
+class Zlib::GzipFile
+  def close(); end
+
+  def closed?(); end
+
+  def comment(); end
+
+  def crc(); end
+
+  def finish(); end
+
+  def level(); end
+
+  def mtime(); end
+
+  def orig_name(); end
+
+  def os_code(); end
+
+  def sync(); end
+
+  def sync=(sync); end
+
+  def to_io(); end
+end
+
+class Zlib::GzipFile::CRCError
+end
+
+class Zlib::GzipFile::CRCError
+end
+
+class Zlib::GzipFile::Error
+  def input(); end
+end
+
+class Zlib::GzipFile::Error
+end
+
+class Zlib::GzipFile::LengthError
+end
+
+class Zlib::GzipFile::LengthError
+end
+
+class Zlib::GzipFile::NoFooter
+end
+
+class Zlib::GzipFile::NoFooter
+end
+
+class Zlib::GzipFile
+  def self.wrap(*_); end
+end
+
+class Zlib::GzipReader
+  include ::Enumerable
+  def bytes(); end
+
+  def each(*_, &blk); end
+
+  def each_byte(); end
+
+  def each_char(); end
+
+  def each_line(*_); end
+
+  def eof(); end
+
+  def eof?(); end
+
+  def external_encoding(); end
+
+  def getbyte(); end
+
+  def getc(); end
+
+  def initialize(*_); end
+
+  def lineno(); end
+
+  def lineno=(lineno); end
+
+  def lines(*_); end
+
+  def pos(); end
+
+  def read(*_); end
+
+  def readbyte(); end
+
+  def readchar(); end
+
+  def readpartial(*_); end
+
+  def rewind(); end
+
+  def tell(); end
+
+  def ungetbyte(_); end
+
+  def ungetc(_); end
+
+  def unused(); end
+end
+
+class Zlib::GzipReader
+end
+
+class Zlib::GzipWriter
+  def <<(_); end
+
+  def comment=(comment); end
+
+  def flush(*_); end
+
+  def initialize(*_); end
+
+  def mtime=(mtime); end
+
+  def orig_name=(orig_name); end
+
+  def pos(); end
+
+  def tell(); end
+
+  def write(*_); end
+end
+
+class Zlib::GzipWriter
+end
+
+class Zlib::Inflate
+  def <<(_); end
+
+  def add_dictionary(_); end
+
+  def inflate(_); end
+
+  def initialize(*_); end
+
+  def set_dictionary(_); end
+
+  def sync(_); end
+
+  def sync_point?(); end
+end
+
+class Zlib::Inflate
+  def self.inflate(_); end
+end
+
+class Zlib::MemError
+end
+
+class Zlib::MemError
+end
+
+class Zlib::NeedDict
+end
+
+class Zlib::NeedDict
+end
+
+class Zlib::StreamEnd
+end
+
+class Zlib::StreamEnd
+end
+
+class Zlib::StreamError
+end
+
+class Zlib::StreamError
+end
+
+class Zlib::VersionError
+end
+
+class Zlib::VersionError
+end
+
+class Zlib::ZStream
+  def adler(); end
+
+  def avail_in(); end
+
+  def avail_out(); end
+
+  def avail_out=(avail_out); end
+
+  def close(); end
+
+  def closed?(); end
+
+  def data_type(); end
+
+  def end(); end
+
+  def ended?(); end
+
+  def finish(); end
+
+  def finished?(); end
+
+  def flush_next_in(); end
+
+  def flush_next_out(); end
+
+  def reset(); end
+
+  def stream_end?(); end
+
+  def total_in(); end
+
+  def total_out(); end
+end
+
+class Zlib::ZStream
+end
+
+module Zlib
+  def self.adler32(*_); end
+
+  def self.adler32_combine(_, _1, _2); end
+
+  def self.crc32(*_); end
+
+  def self.crc32_combine(_, _1, _2); end
+
+  def self.crc_table(); end
+
+  def self.deflate(*_); end
+
+  def self.gunzip(_); end
+
+  def self.gzip(*_); end
+
+  def self.inflate(_); end
+
+  def self.zlib_version(); end
+end
diff --git a/2019/ruby/sorbet/rbi/sorbet-typed/lib/bundler/all/bundler.rbi b/2019/ruby/sorbet/rbi/sorbet-typed/lib/bundler/all/bundler.rbi
new file mode 100644
index 0000000..f2db931
--- /dev/null
+++ b/2019/ruby/sorbet/rbi/sorbet-typed/lib/bundler/all/bundler.rbi
@@ -0,0 +1,8684 @@
+# This file is autogenerated. Do not edit it by hand. Regenerate it with:
+#   srb rbi sorbet-typed
+#
+# If you would like to make changes to this file, great! Please upstream any changes you make here:
+#
+#   https://github.com/sorbet/sorbet-typed/edit/master/lib/bundler/all/bundler.rbi
+#
+# typed: strong
+
+module Bundler
+  FREEBSD = ::T.let(nil, T.untyped)
+  NULL = ::T.let(nil, T.untyped)
+  ORIGINAL_ENV = ::T.let(nil, T.untyped)
+  SUDO_MUTEX = ::T.let(nil, T.untyped)
+  VERSION = ::T.let(nil, T.untyped)
+  WINDOWS = ::T.let(nil, T.untyped)
+
+  sig do
+    params(
+      custom_path: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.app_cache(custom_path=T.unsafe(nil)); end
+
+  sig {returns(T.untyped)}
+  def self.app_config_path(); end
+
+  sig {returns(T.untyped)}
+  def self.bin_path(); end
+
+  sig {returns(T.untyped)}
+  def self.bundle_path(); end
+
+  sig {returns(T.untyped)}
+  def self.bundler_major_version(); end
+
+  sig {returns(T.untyped)}
+  def self.clean_env(); end
+
+  sig do
+    params(
+      args: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.clean_exec(*args); end
+
+  sig do
+    params(
+      args: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.clean_system(*args); end
+
+  sig {returns(T.untyped)}
+  def self.clear_gemspec_cache(); end
+
+  sig {returns(T.untyped)}
+  def self.configure(); end
+
+  sig {returns(T.untyped)}
+  def self.configured_bundle_path(); end
+
+  sig {returns(T.untyped)}
+  def self.current_ruby(); end
+
+  sig {returns(T.untyped)}
+  def self.default_bundle_dir(); end
+
+  sig {returns(T.untyped)}
+  def self.default_gemfile(); end
+
+  sig {returns(T.untyped)}
+  def self.default_lockfile(); end
+
+  sig do
+    params(
+      unlock: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.definition(unlock=T.unsafe(nil)); end
+
+  sig {returns(T.untyped)}
+  def self.environment(); end
+
+  sig {returns(T.untyped)}
+  def self.feature_flag(); end
+
+  sig {returns(T.untyped)}
+  def self.frozen_bundle?(); end
+
+  sig {returns(T.untyped)}
+  def self.git_present?(); end
+
+  sig {returns(T.untyped)}
+  def self.home(); end
+
+  sig {returns(T.untyped)}
+  def self.install_path(); end
+
+  sig {returns(T.untyped)}
+  def self.load(); end
+
+  sig do
+    params(
+      file: T.untyped,
+      validate: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.load_gemspec(file, validate=T.unsafe(nil)); end
+
+  sig do
+    params(
+      file: T.untyped,
+      validate: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.load_gemspec_uncached(file, validate=T.unsafe(nil)); end
+
+  sig do
+    params(
+      data: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.load_marshal(data); end
+
+  sig {returns(T.untyped)}
+  def self.local_platform(); end
+
+  sig {returns(T.untyped)}
+  def self.locked_gems(); end
+
+  sig do
+    params(
+      path: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.mkdir_p(path, options=T.unsafe(nil)); end
+
+  sig {returns(T.untyped)}
+  def self.original_env(); end
+
+  sig do
+    params(
+      file: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.read_file(file); end
+
+  sig do
+    params(
+      groups: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.require(*groups); end
+
+  sig {returns(T.untyped)}
+  def self.require_thor_actions(); end
+
+  sig {returns(T.untyped)}
+  def self.requires_sudo?(); end
+
+  sig {returns(T.untyped)}
+  def self.reset!(); end
+
+  sig {returns(T.untyped)}
+  def self.reset_paths!(); end
+
+  sig {returns(T.untyped)}
+  def self.reset_rubygems!(); end
+
+  sig do
+    params(
+      path: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.rm_rf(path); end
+
+  sig {returns(T.untyped)}
+  def self.root(); end
+
+  sig {returns(T.untyped)}
+  def self.ruby_scope(); end
+
+  sig {returns(T.untyped)}
+  def self.rubygems(); end
+
+  sig {returns(T.untyped)}
+  def self.settings(); end
+
+  sig do
+    params(
+      groups: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.setup(*groups); end
+
+  sig {returns(T.untyped)}
+  def self.specs_path(); end
+
+  sig do
+    params(
+      str: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.sudo(str); end
+
+  sig {returns(T.untyped)}
+  def self.system_bindir(); end
+
+  sig do
+    params(
+      name: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.tmp(name=T.unsafe(nil)); end
+
+  sig do
+    params(
+      login: T.untyped,
+      warning: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.tmp_home_path(login, warning); end
+
+  sig {returns(T.untyped)}
+  def self.ui(); end
+
+  sig do
+    params(
+      ui: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.ui=(ui); end
+
+  sig {returns(T.untyped)}
+  def self.use_system_gems?(); end
+
+  sig do
+    params(
+      dir: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.user_bundle_path(dir=T.unsafe(nil)); end
+
+  sig {returns(T.untyped)}
+  def self.user_cache(); end
+
+  sig {returns(T.untyped)}
+  def self.user_home(); end
+
+  sig do
+    params(
+      executable: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.which(executable); end
+
+  sig {returns(T.untyped)}
+  def self.with_clean_env(); end
+
+  sig {returns(T.untyped)}
+  def self.with_original_env(); end
+end
+
+class Bundler::APIResponseMismatchError < Bundler::BundlerError
+  sig {returns(T.untyped)}
+  def status_code(); end
+end
+
+module Bundler::BuildMetadata
+  sig {returns(T.untyped)}
+  def self.built_at(); end
+
+  sig {returns(T.untyped)}
+  def self.git_commit_sha(); end
+
+  sig {returns(T.untyped)}
+  def self.release?(); end
+
+  sig {returns(T.untyped)}
+  def self.to_h(); end
+end
+
+class Bundler::BundlerError < StandardError
+  sig {returns(T.untyped)}
+  def self.all_errors(); end
+
+  sig do
+    params(
+      code: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.status_code(code); end
+end
+
+class Bundler::CurrentRuby
+  KNOWN_MAJOR_VERSIONS = ::T.let(nil, T.untyped)
+  KNOWN_MINOR_VERSIONS = ::T.let(nil, T.untyped)
+  KNOWN_PLATFORMS = ::T.let(nil, T.untyped)
+
+  sig {returns(T.untyped)}
+  def jruby?(); end
+
+  sig {returns(T.untyped)}
+  def jruby_18?(); end
+
+  sig {returns(T.untyped)}
+  def jruby_19?(); end
+
+  sig {returns(T.untyped)}
+  def jruby_1?(); end
+
+  sig {returns(T.untyped)}
+  def jruby_20?(); end
+
+  sig {returns(T.untyped)}
+  def jruby_21?(); end
+
+  sig {returns(T.untyped)}
+  def jruby_22?(); end
+
+  sig {returns(T.untyped)}
+  def jruby_23?(); end
+
+  sig {returns(T.untyped)}
+  def jruby_24?(); end
+
+  sig {returns(T.untyped)}
+  def jruby_25?(); end
+
+  sig {returns(T.untyped)}
+  def jruby_26?(); end
+
+  sig {returns(T.untyped)}
+  def jruby_27?(); end
+
+  sig {returns(T.untyped)}
+  def jruby_2?(); end
+
+  sig {returns(T.untyped)}
+  def maglev?(); end
+
+  sig {returns(T.untyped)}
+  def maglev_18?(); end
+
+  sig {returns(T.untyped)}
+  def maglev_19?(); end
+
+  sig {returns(T.untyped)}
+  def maglev_1?(); end
+
+  sig {returns(T.untyped)}
+  def maglev_20?(); end
+
+  sig {returns(T.untyped)}
+  def maglev_21?(); end
+
+  sig {returns(T.untyped)}
+  def maglev_22?(); end
+
+  sig {returns(T.untyped)}
+  def maglev_23?(); end
+
+  sig {returns(T.untyped)}
+  def maglev_24?(); end
+
+  sig {returns(T.untyped)}
+  def maglev_25?(); end
+
+  sig {returns(T.untyped)}
+  def maglev_26?(); end
+
+  sig {returns(T.untyped)}
+  def maglev_27?(); end
+
+  sig {returns(T.untyped)}
+  def maglev_2?(); end
+
+  sig {returns(T.untyped)}
+  def mingw?(); end
+
+  sig {returns(T.untyped)}
+  def mingw_18?(); end
+
+  sig {returns(T.untyped)}
+  def mingw_19?(); end
+
+  sig {returns(T.untyped)}
+  def mingw_1?(); end
+
+  sig {returns(T.untyped)}
+  def mingw_20?(); end
+
+  sig {returns(T.untyped)}
+  def mingw_21?(); end
+
+  sig {returns(T.untyped)}
+  def mingw_22?(); end
+
+  sig {returns(T.untyped)}
+  def mingw_23?(); end
+
+  sig {returns(T.untyped)}
+  def mingw_24?(); end
+
+  sig {returns(T.untyped)}
+  def mingw_25?(); end
+
+  sig {returns(T.untyped)}
+  def mingw_26?(); end
+
+  sig {returns(T.untyped)}
+  def mingw_27?(); end
+
+  sig {returns(T.untyped)}
+  def mingw_2?(); end
+
+  sig {returns(T.untyped)}
+  def mri?(); end
+
+  sig {returns(T.untyped)}
+  def mri_18?(); end
+
+  sig {returns(T.untyped)}
+  def mri_19?(); end
+
+  sig {returns(T.untyped)}
+  def mri_1?(); end
+
+  sig {returns(T.untyped)}
+  def mri_20?(); end
+
+  sig {returns(T.untyped)}
+  def mri_21?(); end
+
+  sig {returns(T.untyped)}
+  def mri_22?(); end
+
+  sig {returns(T.untyped)}
+  def mri_23?(); end
+
+  sig {returns(T.untyped)}
+  def mri_24?(); end
+
+  sig {returns(T.untyped)}
+  def mri_25?(); end
+
+  sig {returns(T.untyped)}
+  def mri_26?(); end
+
+  sig {returns(T.untyped)}
+  def mri_27?(); end
+
+  sig {returns(T.untyped)}
+  def mri_2?(); end
+
+  sig {returns(T.untyped)}
+  def mswin64?(); end
+
+  sig {returns(T.untyped)}
+  def mswin64_18?(); end
+
+  sig {returns(T.untyped)}
+  def mswin64_19?(); end
+
+  sig {returns(T.untyped)}
+  def mswin64_1?(); end
+
+  sig {returns(T.untyped)}
+  def mswin64_20?(); end
+
+  sig {returns(T.untyped)}
+  def mswin64_21?(); end
+
+  sig {returns(T.untyped)}
+  def mswin64_22?(); end
+
+  sig {returns(T.untyped)}
+  def mswin64_23?(); end
+
+  sig {returns(T.untyped)}
+  def mswin64_24?(); end
+
+  sig {returns(T.untyped)}
+  def mswin64_25?(); end
+
+  sig {returns(T.untyped)}
+  def mswin64_26?(); end
+
+  sig {returns(T.untyped)}
+  def mswin64_27?(); end
+
+  sig {returns(T.untyped)}
+  def mswin64_2?(); end
+
+  sig {returns(T.untyped)}
+  def mswin?(); end
+
+  sig {returns(T.untyped)}
+  def mswin_18?(); end
+
+  sig {returns(T.untyped)}
+  def mswin_19?(); end
+
+  sig {returns(T.untyped)}
+  def mswin_1?(); end
+
+  sig {returns(T.untyped)}
+  def mswin_20?(); end
+
+  sig {returns(T.untyped)}
+  def mswin_21?(); end
+
+  sig {returns(T.untyped)}
+  def mswin_22?(); end
+
+  sig {returns(T.untyped)}
+  def mswin_23?(); end
+
+  sig {returns(T.untyped)}
+  def mswin_24?(); end
+
+  sig {returns(T.untyped)}
+  def mswin_25?(); end
+
+  sig {returns(T.untyped)}
+  def mswin_26?(); end
+
+  sig {returns(T.untyped)}
+  def mswin_27?(); end
+
+  sig {returns(T.untyped)}
+  def mswin_2?(); end
+
+  sig {returns(T.untyped)}
+  def on_18?(); end
+
+  sig {returns(T.untyped)}
+  def on_19?(); end
+
+  sig {returns(T.untyped)}
+  def on_1?(); end
+
+  sig {returns(T.untyped)}
+  def on_20?(); end
+
+  sig {returns(T.untyped)}
+  def on_21?(); end
+
+  sig {returns(T.untyped)}
+  def on_22?(); end
+
+  sig {returns(T.untyped)}
+  def on_23?(); end
+
+  sig {returns(T.untyped)}
+  def on_24?(); end
+
+  sig {returns(T.untyped)}
+  def on_25?(); end
+
+  sig {returns(T.untyped)}
+  def on_26?(); end
+
+  sig {returns(T.untyped)}
+  def on_27?(); end
+
+  sig {returns(T.untyped)}
+  def on_2?(); end
+
+  sig {returns(T.untyped)}
+  def rbx?(); end
+
+  sig {returns(T.untyped)}
+  def rbx_18?(); end
+
+  sig {returns(T.untyped)}
+  def rbx_19?(); end
+
+  sig {returns(T.untyped)}
+  def rbx_1?(); end
+
+  sig {returns(T.untyped)}
+  def rbx_20?(); end
+
+  sig {returns(T.untyped)}
+  def rbx_21?(); end
+
+  sig {returns(T.untyped)}
+  def rbx_22?(); end
+
+  sig {returns(T.untyped)}
+  def rbx_23?(); end
+
+  sig {returns(T.untyped)}
+  def rbx_24?(); end
+
+  sig {returns(T.untyped)}
+  def rbx_25?(); end
+
+  sig {returns(T.untyped)}
+  def rbx_26?(); end
+
+  sig {returns(T.untyped)}
+  def rbx_27?(); end
+
+  sig {returns(T.untyped)}
+  def rbx_2?(); end
+
+  sig {returns(T.untyped)}
+  def ruby?(); end
+
+  sig {returns(T.untyped)}
+  def ruby_18?(); end
+
+  sig {returns(T.untyped)}
+  def ruby_19?(); end
+
+  sig {returns(T.untyped)}
+  def ruby_1?(); end
+
+  sig {returns(T.untyped)}
+  def ruby_20?(); end
+
+  sig {returns(T.untyped)}
+  def ruby_21?(); end
+
+  sig {returns(T.untyped)}
+  def ruby_22?(); end
+
+  sig {returns(T.untyped)}
+  def ruby_23?(); end
+
+  sig {returns(T.untyped)}
+  def ruby_24?(); end
+
+  sig {returns(T.untyped)}
+  def ruby_25?(); end
+
+  sig {returns(T.untyped)}
+  def ruby_26?(); end
+
+  sig {returns(T.untyped)}
+  def ruby_27?(); end
+
+  sig {returns(T.untyped)}
+  def ruby_2?(); end
+
+  sig {returns(T.untyped)}
+  def truffleruby?(); end
+
+  sig {returns(T.untyped)}
+  def truffleruby_18?(); end
+
+  sig {returns(T.untyped)}
+  def truffleruby_19?(); end
+
+  sig {returns(T.untyped)}
+  def truffleruby_1?(); end
+
+  sig {returns(T.untyped)}
+  def truffleruby_20?(); end
+
+  sig {returns(T.untyped)}
+  def truffleruby_21?(); end
+
+  sig {returns(T.untyped)}
+  def truffleruby_22?(); end
+
+  sig {returns(T.untyped)}
+  def truffleruby_23?(); end
+
+  sig {returns(T.untyped)}
+  def truffleruby_24?(); end
+
+  sig {returns(T.untyped)}
+  def truffleruby_25?(); end
+
+  sig {returns(T.untyped)}
+  def truffleruby_26?(); end
+
+  sig {returns(T.untyped)}
+  def truffleruby_27?(); end
+
+  sig {returns(T.untyped)}
+  def truffleruby_2?(); end
+
+  sig {returns(T.untyped)}
+  def x64_mingw?(); end
+
+  sig {returns(T.untyped)}
+  def x64_mingw_18?(); end
+
+  sig {returns(T.untyped)}
+  def x64_mingw_19?(); end
+
+  sig {returns(T.untyped)}
+  def x64_mingw_1?(); end
+
+  sig {returns(T.untyped)}
+  def x64_mingw_20?(); end
+
+  sig {returns(T.untyped)}
+  def x64_mingw_21?(); end
+
+  sig {returns(T.untyped)}
+  def x64_mingw_22?(); end
+
+  sig {returns(T.untyped)}
+  def x64_mingw_23?(); end
+
+  sig {returns(T.untyped)}
+  def x64_mingw_24?(); end
+
+  sig {returns(T.untyped)}
+  def x64_mingw_25?(); end
+
+  sig {returns(T.untyped)}
+  def x64_mingw_26?(); end
+
+  sig {returns(T.untyped)}
+  def x64_mingw_27?(); end
+
+  sig {returns(T.untyped)}
+  def x64_mingw_2?(); end
+end
+
+class Bundler::CyclicDependencyError < Bundler::BundlerError
+  sig {returns(T.untyped)}
+  def status_code(); end
+end
+
+class Bundler::Definition
+  include ::Bundler::GemHelpers
+  sig {returns(T.untyped)}
+  def add_current_platform(); end
+
+  sig do
+    params(
+      platform: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def add_platform(platform); end
+
+  sig {returns(T.untyped)}
+  def current_dependencies(); end
+
+  sig {returns(T.untyped)}
+  def dependencies(); end
+
+  sig do
+    params(
+      explicit_flag: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def ensure_equivalent_gemfile_and_lockfile(explicit_flag=T.unsafe(nil)); end
+
+  sig do
+    params(
+      current_spec: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def find_indexed_specs(current_spec); end
+
+  sig do
+    params(
+      current_spec: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def find_resolved_spec(current_spec); end
+
+  sig {returns(T.untyped)}
+  def gem_version_promoter(); end
+
+  sig {returns(T.untyped)}
+  def gemfiles(); end
+
+  sig {returns(T.untyped)}
+  def groups(); end
+
+  sig {returns(T.untyped)}
+  def has_local_dependencies?(); end
+
+  sig {returns(T.untyped)}
+  def has_rubygems_remotes?(); end
+
+  sig {returns(T.untyped)}
+  def index(); end
+
+  sig do
+    params(
+      lockfile: T.untyped,
+      dependencies: T.untyped,
+      sources: T.untyped,
+      unlock: T.untyped,
+      ruby_version: T.untyped,
+      optional_groups: T.untyped,
+      gemfiles: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def initialize(lockfile, dependencies, sources, unlock, ruby_version=T.unsafe(nil), optional_groups=T.unsafe(nil), gemfiles=T.unsafe(nil)); end
+
+  sig do
+    params(
+      file: T.untyped,
+      preserve_unknown_sections: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def lock(file, preserve_unknown_sections=T.unsafe(nil)); end
+
+  sig {returns(T.untyped)}
+  def locked_bundler_version(); end
+
+  sig {returns(T.untyped)}
+  def locked_deps(); end
+
+  sig {returns(T.untyped)}
+  def locked_gems(); end
+
+  sig {returns(T.untyped)}
+  def locked_ruby_version(); end
+
+  sig {returns(T.untyped)}
+  def locked_ruby_version_object(); end
+
+  sig {returns(T.untyped)}
+  def lockfile(); end
+
+  sig {returns(T.untyped)}
+  def missing_specs(); end
+
+  sig {returns(T.untyped)}
+  def missing_specs?(); end
+
+  sig {returns(T.untyped)}
+  def new_platform?(); end
+
+  sig {returns(T.untyped)}
+  def new_specs(); end
+
+  sig {returns(T.untyped)}
+  def nothing_changed?(); end
+
+  sig {returns(T.untyped)}
+  def platforms(); end
+
+  sig do
+    params(
+      platform: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def remove_platform(platform); end
+
+  sig {returns(T.untyped)}
+  def removed_specs(); end
+
+  sig {returns(T.untyped)}
+  def requested_specs(); end
+
+  sig {returns(T.untyped)}
+  def requires(); end
+
+  sig {returns(T.untyped)}
+  def resolve(); end
+
+  sig {returns(T.untyped)}
+  def resolve_remotely!(); end
+
+  sig {returns(T.untyped)}
+  def resolve_with_cache!(); end
+
+  sig {returns(T.untyped)}
+  def ruby_version(); end
+
+  sig {returns(T.untyped)}
+  def spec_git_paths(); end
+
+  sig {returns(T.untyped)}
+  def specs(); end
+
+  sig do
+    params(
+      groups: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def specs_for(groups); end
+
+  sig {returns(T.untyped)}
+  def to_lock(); end
+
+  sig {returns(T.untyped)}
+  def unlocking?(); end
+
+  sig {returns(T.untyped)}
+  def validate_platforms!(); end
+
+  sig {returns(T.untyped)}
+  def validate_ruby!(); end
+
+  sig {returns(T.untyped)}
+  def validate_runtime!(); end
+
+  sig do
+    params(
+      gemfile: T.untyped,
+      lockfile: T.untyped,
+      unlock: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.build(gemfile, lockfile, unlock); end
+end
+
+class Bundler::DepProxy
+  sig do
+    params(
+      other: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def ==(other); end
+
+  sig {returns(T.untyped)}
+  def __platform(); end
+
+  sig {returns(T.untyped)}
+  def dep(); end
+
+  sig do
+    params(
+      other: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def eql?(other); end
+
+  sig {returns(T.untyped)}
+  def hash(); end
+
+  sig do
+    params(
+      dep: T.untyped,
+      platform: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def initialize(dep, platform); end
+
+  sig {returns(T.untyped)}
+  def name(); end
+
+  sig {returns(T.untyped)}
+  def requirement(); end
+
+  sig {returns(T.untyped)}
+  def to_s(); end
+
+  sig {returns(T.untyped)}
+  def type(); end
+end
+
+class Bundler::Dependency < Gem::Dependency
+  PLATFORM_MAP = ::T.let(nil, T.untyped)
+  REVERSE_PLATFORM_MAP = ::T.let(nil, T.untyped)
+
+  sig {returns(T.untyped)}
+  def autorequire(); end
+
+  sig {returns(T.untyped)}
+  def current_env?(); end
+
+  sig {returns(T.untyped)}
+  def current_platform?(); end
+
+  sig do
+    params(
+      valid_platforms: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def gem_platforms(valid_platforms); end
+
+  sig {returns(T.untyped)}
+  def gemfile(); end
+
+  sig {returns(T.untyped)}
+  def groups(); end
+
+  sig do
+    params(
+      name: T.untyped,
+      version: T.untyped,
+      options: T.untyped,
+      blk: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def initialize(name, version, options=T.unsafe(nil), &blk); end
+
+  sig {returns(T.untyped)}
+  def platforms(); end
+
+  sig {returns(T.untyped)}
+  def should_include?(); end
+
+  sig {returns(T.untyped)}
+  def specific?(); end
+
+  sig {returns(T.untyped)}
+  def to_lock(); end
+end
+
+class Bundler::DeprecatedError < Bundler::BundlerError
+  sig {returns(T.untyped)}
+  def status_code(); end
+end
+
+class Bundler::Dsl
+  include ::Bundler::RubyDsl
+  VALID_KEYS = ::T.let(nil, T.untyped)
+  VALID_PLATFORMS = ::T.let(nil, T.untyped)
+
+  sig {returns(T.untyped)}
+  def dependencies(); end
+
+  sig do
+    params(
+      dependencies: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def dependencies=(dependencies); end
+
+  sig do
+    params(
+      name: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def env(name); end
+
+  sig do
+    params(
+      gemfile: T.untyped,
+      contents: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def eval_gemfile(gemfile, contents=T.unsafe(nil)); end
+
+  sig do
+    params(
+      name: T.untyped,
+      args: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def gem(name, *args); end
+
+  sig do
+    params(
+      opts: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def gemspec(opts=T.unsafe(nil)); end
+
+  sig {returns(T.untyped)}
+  def gemspecs(); end
+
+  sig do
+    params(
+      uri: T.untyped,
+      options: T.untyped,
+      blk: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def git(uri, options=T.unsafe(nil), &blk); end
+
+  sig do
+    params(
+      name: T.untyped,
+      block: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def git_source(name, &block); end
+
+  sig do
+    params(
+      repo: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def github(repo, options=T.unsafe(nil)); end
+
+  sig do
+    params(
+      args: T.untyped,
+      blk: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def group(*args, &blk); end
+
+  sig {returns(T.untyped)}
+  def initialize(); end
+
+  sig do
+    params(
+      args: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def install_if(*args); end
+
+  sig do
+    params(
+      name: T.untyped,
+      args: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def method_missing(name, *args); end
+
+  sig do
+    params(
+      path: T.untyped,
+      options: T.untyped,
+      blk: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def path(path, options=T.unsafe(nil), &blk); end
+
+  sig do
+    params(
+      platforms: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def platform(*platforms); end
+
+  sig do
+    params(
+      platforms: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def platforms(*platforms); end
+
+  sig do
+    params(
+      args: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def plugin(*args); end
+
+  sig do
+    params(
+      source: T.untyped,
+      args: T.untyped,
+      blk: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def source(source, *args, &blk); end
+
+  sig do
+    params(
+      lockfile: T.untyped,
+      unlock: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def to_definition(lockfile, unlock); end
+
+  sig do
+    params(
+      gemfile: T.untyped,
+      lockfile: T.untyped,
+      unlock: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.evaluate(gemfile, lockfile, unlock); end
+end
+
+class Bundler::Dsl::DSLError < Bundler::GemfileError
+  sig {returns(T.untyped)}
+  def backtrace(); end
+
+  sig {returns(T.untyped)}
+  def contents(); end
+
+  sig {returns(T.untyped)}
+  def description(); end
+
+  sig {returns(T.untyped)}
+  def dsl_path(); end
+
+  sig do
+    params(
+      description: T.untyped,
+      dsl_path: T.untyped,
+      backtrace: T.untyped,
+      contents: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def initialize(description, dsl_path, backtrace, contents=T.unsafe(nil)); end
+
+  sig {returns(T.untyped)}
+  def status_code(); end
+
+  sig {returns(T.untyped)}
+  def to_s(); end
+end
+
+class Bundler::EndpointSpecification < Gem::Specification
+  # we need this because Gem::Specification extends Enumerable
+  Elem = type_template
+  ILLFORMED_MESSAGE = ::T.let(nil, T.untyped)
+
+  sig do
+    params(
+      spec: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def __swap__(spec); end
+
+  sig {returns(T.untyped)}
+  def _local_specification(); end
+
+  sig {returns(T.untyped)}
+  def bindir(); end
+
+  sig {returns(T.untyped)}
+  def checksum(); end
+
+  sig {returns(T.untyped)}
+  def dependencies(); end
+
+  sig do
+    params(
+      dependencies: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def dependencies=(dependencies); end
+
+  sig {returns(T.untyped)}
+  def executables(); end
+
+  sig {returns(T.untyped)}
+  def extensions(); end
+
+  sig {returns(T.untyped)}
+  def fetch_platform(); end
+
+  sig do
+    params(
+      name: T.untyped,
+      version: T.untyped,
+      platform: T.untyped,
+      dependencies: T.untyped,
+      metadata: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def initialize(name, version, platform, dependencies, metadata=T.unsafe(nil)); end
+
+  sig {returns(T.untyped)}
+  def load_paths(); end
+
+  sig {returns(T.untyped)}
+  def name(); end
+
+  sig {returns(T.untyped)}
+  def platform(); end
+
+  sig {returns(T.untyped)}
+  def post_install_message(); end
+
+  sig {returns(T.untyped)}
+  def remote(); end
+
+  sig do
+    params(
+      remote: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def remote=(remote); end
+
+  sig {returns(T.untyped)}
+  def require_paths(); end
+
+  sig {returns(T.untyped)}
+  def required_ruby_version(); end
+
+  sig {returns(T.untyped)}
+  def required_rubygems_version(); end
+
+  sig {returns(T.untyped)}
+  def source(); end
+
+  sig do
+    params(
+      source: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def source=(source); end
+
+  sig {returns(T.untyped)}
+  def version(); end
+end
+
+class Bundler::EnvironmentPreserver
+  BUNDLER_KEYS = ::T.let(nil, T.untyped)
+  BUNDLER_PREFIX = ::T.let(nil, T.untyped)
+  INTENTIONALLY_NIL = ::T.let(nil, T.untyped)
+
+  sig {returns(T.untyped)}
+  def backup(); end
+
+  sig do
+    params(
+      env: T.untyped,
+      keys: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def initialize(env, keys); end
+
+  sig {returns(T.untyped)}
+  def restore(); end
+end
+
+class Bundler::FeatureFlag
+  sig {returns(T.untyped)}
+  def allow_bundler_dependency_conflicts?(); end
+
+  sig {returns(T.untyped)}
+  def allow_offline_install?(); end
+
+  sig {returns(T.untyped)}
+  def auto_clean_without_path?(); end
+
+  sig {returns(T.untyped)}
+  def auto_config_jobs?(); end
+
+  sig {returns(T.untyped)}
+  def bundler_10_mode?(); end
+
+  sig {returns(T.untyped)}
+  def bundler_1_mode?(); end
+
+  sig {returns(T.untyped)}
+  def bundler_2_mode?(); end
+
+  sig {returns(T.untyped)}
+  def bundler_3_mode?(); end
+
+  sig {returns(T.untyped)}
+  def bundler_4_mode?(); end
+
+  sig {returns(T.untyped)}
+  def bundler_5_mode?(); end
+
+  sig {returns(T.untyped)}
+  def bundler_6_mode?(); end
+
+  sig {returns(T.untyped)}
+  def bundler_7_mode?(); end
+
+  sig {returns(T.untyped)}
+  def bundler_8_mode?(); end
+
+  sig {returns(T.untyped)}
+  def bundler_9_mode?(); end
+
+  sig {returns(T.untyped)}
+  def cache_all?(); end
+
+  sig {returns(T.untyped)}
+  def cache_command_is_package?(); end
+
+  sig {returns(T.untyped)}
+  def console_command?(); end
+
+  sig {returns(T.untyped)}
+  def default_cli_command(); end
+
+  sig {returns(T.untyped)}
+  def default_install_uses_path?(); end
+
+  sig {returns(T.untyped)}
+  def deployment_means_frozen?(); end
+
+  sig {returns(T.untyped)}
+  def disable_multisource?(); end
+
+  sig {returns(T.untyped)}
+  def error_on_stderr?(); end
+
+  sig {returns(T.untyped)}
+  def forget_cli_options?(); end
+
+  sig {returns(T.untyped)}
+  def global_gem_cache?(); end
+
+  sig {returns(T.untyped)}
+  def global_path_appends_ruby_scope?(); end
+
+  sig {returns(T.untyped)}
+  def init_gems_rb?(); end
+
+  sig do
+    params(
+      bundler_version: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def initialize(bundler_version); end
+
+  sig {returns(T.untyped)}
+  def list_command?(); end
+
+  sig {returns(T.untyped)}
+  def lockfile_uses_separate_rubygems_sources?(); end
+
+  sig {returns(T.untyped)}
+  def only_update_to_newer_versions?(); end
+
+  sig {returns(T.untyped)}
+  def path_relative_to_cwd?(); end
+
+  sig {returns(T.untyped)}
+  def plugins?(); end
+
+  sig {returns(T.untyped)}
+  def prefer_gems_rb?(); end
+
+  sig {returns(T.untyped)}
+  def print_only_version_number?(); end
+
+  sig {returns(T.untyped)}
+  def setup_makes_kernel_gem_public?(); end
+
+  sig {returns(T.untyped)}
+  def skip_default_git_sources?(); end
+
+  sig {returns(T.untyped)}
+  def specific_platform?(); end
+
+  sig {returns(T.untyped)}
+  def suppress_install_using_messages?(); end
+
+  sig {returns(T.untyped)}
+  def unlock_source_unlocks_spec?(); end
+
+  sig {returns(T.untyped)}
+  def update_requires_all_flag?(); end
+
+  sig {returns(T.untyped)}
+  def use_gem_version_promoter_for_major_updates?(); end
+
+  sig {returns(T.untyped)}
+  def viz_command?(); end
+end
+
+module Bundler::FileUtils
+  include ::Bundler::FileUtils::StreamUtils_
+  extend ::Bundler::FileUtils::StreamUtils_
+  LOW_METHODS = ::T.let(nil, T.untyped)
+  METHODS = ::T.let(nil, T.untyped)
+  OPT_TABLE = ::T.let(nil, T.untyped)
+
+  sig do
+    params(
+      dir: T.untyped,
+      verbose: T.untyped,
+      block: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.cd(dir, verbose: T.unsafe(nil), &block); end
+
+  sig do
+    params(
+      dir: T.untyped,
+      verbose: T.untyped,
+      block: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.chdir(dir, verbose: T.unsafe(nil), &block); end
+
+  sig do
+    params(
+      mode: T.untyped,
+      list: T.untyped,
+      noop: T.untyped,
+      verbose: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.chmod(mode, list, noop: T.unsafe(nil), verbose: T.unsafe(nil)); end
+
+  sig do
+    params(
+      mode: T.untyped,
+      list: T.untyped,
+      noop: T.untyped,
+      verbose: T.untyped,
+      force: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.chmod_R(mode, list, noop: T.unsafe(nil), verbose: T.unsafe(nil), force: T.unsafe(nil)); end
+
+  sig do
+    params(
+      user: T.untyped,
+      group: T.untyped,
+      list: T.untyped,
+      noop: T.untyped,
+      verbose: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.chown(user, group, list, noop: T.unsafe(nil), verbose: T.unsafe(nil)); end
+
+  sig do
+    params(
+      user: T.untyped,
+      group: T.untyped,
+      list: T.untyped,
+      noop: T.untyped,
+      verbose: T.untyped,
+      force: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.chown_R(user, group, list, noop: T.unsafe(nil), verbose: T.unsafe(nil), force: T.unsafe(nil)); end
+
+  sig do
+    params(
+      a: T.untyped,
+      b: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.cmp(a, b); end
+
+  sig do
+    params(
+      opt: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.collect_method(opt); end
+
+  sig {returns(T.untyped)}
+  def self.commands(); end
+
+  sig do
+    params(
+      a: T.untyped,
+      b: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.compare_file(a, b); end
+
+  sig do
+    params(
+      a: T.untyped,
+      b: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.compare_stream(a, b); end
+
+  sig do
+    params(
+      src: T.untyped,
+      dest: T.untyped,
+      preserve: T.untyped,
+      noop: T.untyped,
+      verbose: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.copy(src, dest, preserve: T.unsafe(nil), noop: T.unsafe(nil), verbose: T.unsafe(nil)); end
+
+  sig do
+    params(
+      src: T.untyped,
+      dest: T.untyped,
+      preserve: T.untyped,
+      dereference_root: T.untyped,
+      remove_destination: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.copy_entry(src, dest, preserve=T.unsafe(nil), dereference_root=T.unsafe(nil), remove_destination=T.unsafe(nil)); end
+
+  sig do
+    params(
+      src: T.untyped,
+      dest: T.untyped,
+      preserve: T.untyped,
+      dereference: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.copy_file(src, dest, preserve=T.unsafe(nil), dereference=T.unsafe(nil)); end
+
+  sig do
+    params(
+      src: T.untyped,
+      dest: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.copy_stream(src, dest); end
+
+  sig do
+    params(
+      src: T.untyped,
+      dest: T.untyped,
+      preserve: T.untyped,
+      noop: T.untyped,
+      verbose: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.cp(src, dest, preserve: T.unsafe(nil), noop: T.unsafe(nil), verbose: T.unsafe(nil)); end
+
+  sig do
+    params(
+      src: T.untyped,
+      dest: T.untyped,
+      preserve: T.untyped,
+      noop: T.untyped,
+      verbose: T.untyped,
+      dereference_root: T.untyped,
+      remove_destination: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.cp_r(src, dest, preserve: T.unsafe(nil), noop: T.unsafe(nil), verbose: T.unsafe(nil), dereference_root: T.unsafe(nil), remove_destination: T.unsafe(nil)); end
+
+  sig {returns(T.untyped)}
+  def self.getwd(); end
+
+  sig do
+    params(
+      mid: T.untyped,
+      opt: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.have_option?(mid, opt); end
+
+  sig do
+    params(
+      a: T.untyped,
+      b: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.identical?(a, b); end
+
+  sig do
+    params(
+      src: T.untyped,
+      dest: T.untyped,
+      mode: T.untyped,
+      owner: T.untyped,
+      group: T.untyped,
+      preserve: T.untyped,
+      noop: T.untyped,
+      verbose: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.install(src, dest, mode: T.unsafe(nil), owner: T.unsafe(nil), group: T.unsafe(nil), preserve: T.unsafe(nil), noop: T.unsafe(nil), verbose: T.unsafe(nil)); end
+
+  sig do
+    params(
+      src: T.untyped,
+      dest: T.untyped,
+      force: T.untyped,
+      noop: T.untyped,
+      verbose: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.link(src, dest, force: T.unsafe(nil), noop: T.unsafe(nil), verbose: T.unsafe(nil)); end
+
+  sig do
+    params(
+      src: T.untyped,
+      dest: T.untyped,
+      force: T.untyped,
+      noop: T.untyped,
+      verbose: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.ln(src, dest, force: T.unsafe(nil), noop: T.unsafe(nil), verbose: T.unsafe(nil)); end
+
+  sig do
+    params(
+      src: T.untyped,
+      dest: T.untyped,
+      force: T.untyped,
+      noop: T.untyped,
+      verbose: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.ln_s(src, dest, force: T.unsafe(nil), noop: T.unsafe(nil), verbose: T.unsafe(nil)); end
+
+  sig do
+    params(
+      src: T.untyped,
+      dest: T.untyped,
+      noop: T.untyped,
+      verbose: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.ln_sf(src, dest, noop: T.unsafe(nil), verbose: T.unsafe(nil)); end
+
+  sig do
+    params(
+      list: T.untyped,
+      mode: T.untyped,
+      noop: T.untyped,
+      verbose: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.makedirs(list, mode: T.unsafe(nil), noop: T.unsafe(nil), verbose: T.unsafe(nil)); end
+
+  sig do
+    params(
+      list: T.untyped,
+      mode: T.untyped,
+      noop: T.untyped,
+      verbose: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.mkdir(list, mode: T.unsafe(nil), noop: T.unsafe(nil), verbose: T.unsafe(nil)); end
+
+  sig do
+    params(
+      list: T.untyped,
+      mode: T.untyped,
+      noop: T.untyped,
+      verbose: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.mkdir_p(list, mode: T.unsafe(nil), noop: T.unsafe(nil), verbose: T.unsafe(nil)); end
+
+  sig do
+    params(
+      list: T.untyped,
+      mode: T.untyped,
+      noop: T.untyped,
+      verbose: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.mkpath(list, mode: T.unsafe(nil), noop: T.unsafe(nil), verbose: T.unsafe(nil)); end
+
+  sig do
+    params(
+      src: T.untyped,
+      dest: T.untyped,
+      force: T.untyped,
+      noop: T.untyped,
+      verbose: T.untyped,
+      secure: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.move(src, dest, force: T.unsafe(nil), noop: T.unsafe(nil), verbose: T.unsafe(nil), secure: T.unsafe(nil)); end
+
+  sig do
+    params(
+      src: T.untyped,
+      dest: T.untyped,
+      force: T.untyped,
+      noop: T.untyped,
+      verbose: T.untyped,
+      secure: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.mv(src, dest, force: T.unsafe(nil), noop: T.unsafe(nil), verbose: T.unsafe(nil), secure: T.unsafe(nil)); end
+
+  sig {returns(T.untyped)}
+  def self.options(); end
+
+  sig do
+    params(
+      mid: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.options_of(mid); end
+
+  sig do
+    params(
+      name: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.private_module_function(name); end
+
+  sig {returns(T.untyped)}
+  def self.pwd(); end
+
+  sig do
+    params(
+      list: T.untyped,
+      force: T.untyped,
+      noop: T.untyped,
+      verbose: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.remove(list, force: T.unsafe(nil), noop: T.unsafe(nil), verbose: T.unsafe(nil)); end
+
+  sig do
+    params(
+      path: T.untyped,
+      force: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.remove_dir(path, force=T.unsafe(nil)); end
+
+  sig do
+    params(
+      path: T.untyped,
+      force: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.remove_entry(path, force=T.unsafe(nil)); end
+
+  sig do
+    params(
+      path: T.untyped,
+      force: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.remove_entry_secure(path, force=T.unsafe(nil)); end
+
+  sig do
+    params(
+      path: T.untyped,
+      force: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.remove_file(path, force=T.unsafe(nil)); end
+
+  sig do
+    params(
+      list: T.untyped,
+      force: T.untyped,
+      noop: T.untyped,
+      verbose: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.rm(list, force: T.unsafe(nil), noop: T.unsafe(nil), verbose: T.unsafe(nil)); end
+
+  sig do
+    params(
+      list: T.untyped,
+      noop: T.untyped,
+      verbose: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.rm_f(list, noop: T.unsafe(nil), verbose: T.unsafe(nil)); end
+
+  sig do
+    params(
+      list: T.untyped,
+      force: T.untyped,
+      noop: T.untyped,
+      verbose: T.untyped,
+      secure: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.rm_r(list, force: T.unsafe(nil), noop: T.unsafe(nil), verbose: T.unsafe(nil), secure: T.unsafe(nil)); end
+
+  sig do
+    params(
+      list: T.untyped,
+      noop: T.untyped,
+      verbose: T.untyped,
+      secure: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.rm_rf(list, noop: T.unsafe(nil), verbose: T.unsafe(nil), secure: T.unsafe(nil)); end
+
+  sig do
+    params(
+      list: T.untyped,
+      parents: T.untyped,
+      noop: T.untyped,
+      verbose: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.rmdir(list, parents: T.unsafe(nil), noop: T.unsafe(nil), verbose: T.unsafe(nil)); end
+
+  sig do
+    params(
+      list: T.untyped,
+      noop: T.untyped,
+      verbose: T.untyped,
+      secure: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.rmtree(list, noop: T.unsafe(nil), verbose: T.unsafe(nil), secure: T.unsafe(nil)); end
+
+  sig do
+    params(
+      list: T.untyped,
+      noop: T.untyped,
+      verbose: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.safe_unlink(list, noop: T.unsafe(nil), verbose: T.unsafe(nil)); end
+
+  sig do
+    params(
+      src: T.untyped,
+      dest: T.untyped,
+      force: T.untyped,
+      noop: T.untyped,
+      verbose: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.symlink(src, dest, force: T.unsafe(nil), noop: T.unsafe(nil), verbose: T.unsafe(nil)); end
+
+  sig do
+    params(
+      list: T.untyped,
+      noop: T.untyped,
+      verbose: T.untyped,
+      mtime: T.untyped,
+      nocreate: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.touch(list, noop: T.unsafe(nil), verbose: T.unsafe(nil), mtime: T.unsafe(nil), nocreate: T.unsafe(nil)); end
+
+  sig do
+    params(
+      new: T.untyped,
+      old_list: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.uptodate?(new, old_list); end
+end
+
+module Bundler::FileUtils::DryRun
+  include ::Bundler::FileUtils::LowMethods
+  include ::Bundler::FileUtils
+  include ::Bundler::FileUtils::StreamUtils_
+  extend ::Bundler::FileUtils::DryRun
+  extend ::Bundler::FileUtils::LowMethods
+  extend ::Bundler::FileUtils
+  extend ::Bundler::FileUtils::StreamUtils_
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.cd(*_); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.chdir(*_); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.chmod(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.chmod_R(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.chown(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.chown_R(*args, **options); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.cmp(*_); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.compare_file(*_); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.compare_stream(*_); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.copy(*args, **options); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.copy_entry(*_); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.copy_file(*_); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.copy_stream(*_); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.cp(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.cp_r(*args, **options); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.getwd(*_); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.identical?(*_); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.install(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.link(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.ln(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.ln_s(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.ln_sf(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.makedirs(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.mkdir(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.mkdir_p(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.mkpath(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.move(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.mv(*args, **options); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.pwd(*_); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.remove(*args, **options); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.remove_dir(*_); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.remove_entry(*_); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.remove_entry_secure(*_); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.remove_file(*_); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.rm(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.rm_f(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.rm_r(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.rm_rf(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.rmdir(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.rmtree(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.safe_unlink(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.symlink(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.touch(*args, **options); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.uptodate?(*_); end
+end
+
+class Bundler::FileUtils::Entry_
+  include ::Bundler::FileUtils::StreamUtils_
+  DIRECTORY_TERM = ::T.let(nil, T.untyped)
+  SYSCASE = ::T.let(nil, T.untyped)
+  S_IF_DOOR = ::T.let(nil, T.untyped)
+
+  sig {returns(T.untyped)}
+  def blockdev?(); end
+
+  sig {returns(T.untyped)}
+  def chardev?(); end
+
+  sig do
+    params(
+      mode: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def chmod(mode); end
+
+  sig do
+    params(
+      uid: T.untyped,
+      gid: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def chown(uid, gid); end
+
+  sig do
+    params(
+      dest: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def copy(dest); end
+
+  sig do
+    params(
+      dest: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def copy_file(dest); end
+
+  sig do
+    params(
+      path: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def copy_metadata(path); end
+
+  sig {returns(T.untyped)}
+  def dereference?(); end
+
+  sig {returns(T.untyped)}
+  def directory?(); end
+
+  sig {returns(T.untyped)}
+  def door?(); end
+
+  sig {returns(T.untyped)}
+  def entries(); end
+
+  sig {returns(T.untyped)}
+  def exist?(); end
+
+  sig {returns(T.untyped)}
+  def file?(); end
+
+  sig do
+    params(
+      a: T.untyped,
+      b: T.untyped,
+      deref: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def initialize(a, b=T.unsafe(nil), deref=T.unsafe(nil)); end
+
+  sig {returns(T.untyped)}
+  def inspect(); end
+
+  sig {returns(T.untyped)}
+  def lstat(); end
+
+  sig {returns(T.untyped)}
+  def lstat!(); end
+
+  sig {returns(T.untyped)}
+  def path(); end
+
+  sig {returns(T.untyped)}
+  def pipe?(); end
+
+  sig {returns(T.untyped)}
+  def platform_support(); end
+
+  sig {returns(T.untyped)}
+  def postorder_traverse(); end
+
+  sig {returns(T.untyped)}
+  def prefix(); end
+
+  sig {returns(T.untyped)}
+  def preorder_traverse(); end
+
+  sig {returns(T.untyped)}
+  def rel(); end
+
+  sig {returns(T.untyped)}
+  def remove(); end
+
+  sig {returns(T.untyped)}
+  def remove_dir1(); end
+
+  sig {returns(T.untyped)}
+  def remove_file(); end
+
+  sig {returns(T.untyped)}
+  def socket?(); end
+
+  sig {returns(T.untyped)}
+  def stat(); end
+
+  sig {returns(T.untyped)}
+  def stat!(); end
+
+  sig {returns(T.untyped)}
+  def symlink?(); end
+
+  sig {returns(T.untyped)}
+  def traverse(); end
+
+  sig do
+    params(
+      pre: T.untyped,
+      post: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def wrap_traverse(pre, post); end
+end
+
+module Bundler::FileUtils::LowMethods
+end
+
+module Bundler::FileUtils::NoWrite
+  include ::Bundler::FileUtils::LowMethods
+  include ::Bundler::FileUtils
+  include ::Bundler::FileUtils::StreamUtils_
+  extend ::Bundler::FileUtils::NoWrite
+  extend ::Bundler::FileUtils::LowMethods
+  extend ::Bundler::FileUtils
+  extend ::Bundler::FileUtils::StreamUtils_
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.cd(*_); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.chdir(*_); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.chmod(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.chmod_R(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.chown(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.chown_R(*args, **options); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.cmp(*_); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.compare_file(*_); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.compare_stream(*_); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.copy(*args, **options); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.copy_entry(*_); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.copy_file(*_); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.copy_stream(*_); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.cp(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.cp_r(*args, **options); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.getwd(*_); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.identical?(*_); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.install(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.link(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.ln(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.ln_s(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.ln_sf(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.makedirs(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.mkdir(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.mkdir_p(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.mkpath(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.move(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.mv(*args, **options); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.pwd(*_); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.remove(*args, **options); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.remove_dir(*_); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.remove_entry(*_); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.remove_entry_secure(*_); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.remove_file(*_); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.rm(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.rm_f(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.rm_r(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.rm_rf(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.rmdir(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.rmtree(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.safe_unlink(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.symlink(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.touch(*args, **options); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.uptodate?(*_); end
+end
+
+module Bundler::FileUtils::StreamUtils_
+end
+
+module Bundler::FileUtils::Verbose
+  include ::Bundler::FileUtils
+  include ::Bundler::FileUtils::StreamUtils_
+  extend ::Bundler::FileUtils::Verbose
+  extend ::Bundler::FileUtils
+  extend ::Bundler::FileUtils::StreamUtils_
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.cd(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.chdir(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.chmod(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.chmod_R(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.chown(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.chown_R(*args, **options); end
+
+  sig do
+    params(
+      a: T.untyped,
+      b: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.cmp(a, b); end
+
+  sig do
+    params(
+      a: T.untyped,
+      b: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.compare_file(a, b); end
+
+  sig do
+    params(
+      a: T.untyped,
+      b: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.compare_stream(a, b); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.copy(*args, **options); end
+
+  sig do
+    params(
+      src: T.untyped,
+      dest: T.untyped,
+      preserve: T.untyped,
+      dereference_root: T.untyped,
+      remove_destination: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.copy_entry(src, dest, preserve=T.unsafe(nil), dereference_root=T.unsafe(nil), remove_destination=T.unsafe(nil)); end
+
+  sig do
+    params(
+      src: T.untyped,
+      dest: T.untyped,
+      preserve: T.untyped,
+      dereference: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.copy_file(src, dest, preserve=T.unsafe(nil), dereference=T.unsafe(nil)); end
+
+  sig do
+    params(
+      src: T.untyped,
+      dest: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.copy_stream(src, dest); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.cp(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.cp_r(*args, **options); end
+
+  sig {returns(T.untyped)}
+  def self.getwd(); end
+
+  sig do
+    params(
+      a: T.untyped,
+      b: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.identical?(a, b); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.install(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.link(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.ln(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.ln_s(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.ln_sf(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.makedirs(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.mkdir(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.mkdir_p(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.mkpath(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.move(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.mv(*args, **options); end
+
+  sig {returns(T.untyped)}
+  def self.pwd(); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.remove(*args, **options); end
+
+  sig do
+    params(
+      path: T.untyped,
+      force: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.remove_dir(path, force=T.unsafe(nil)); end
+
+  sig do
+    params(
+      path: T.untyped,
+      force: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.remove_entry(path, force=T.unsafe(nil)); end
+
+  sig do
+    params(
+      path: T.untyped,
+      force: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.remove_entry_secure(path, force=T.unsafe(nil)); end
+
+  sig do
+    params(
+      path: T.untyped,
+      force: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.remove_file(path, force=T.unsafe(nil)); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.rm(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.rm_f(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.rm_r(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.rm_rf(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.rmdir(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.rmtree(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.safe_unlink(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.symlink(*args, **options); end
+
+  sig do
+    params(
+      args: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.touch(*args, **options); end
+
+  sig do
+    params(
+      new: T.untyped,
+      old_list: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.uptodate?(new, old_list); end
+end
+
+module Bundler::GemHelpers
+  GENERICS = ::T.let(nil, T.untyped)
+  GENERIC_CACHE = ::T.let(nil, T.untyped)
+
+  sig do
+    params(
+      p: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.generic(p); end
+
+  sig {returns(T.untyped)}
+  def self.generic_local_platform(); end
+
+  sig do
+    params(
+      spec_platform: T.untyped,
+      user_platform: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.platform_specificity_match(spec_platform, user_platform); end
+
+  sig do
+    params(
+      specs: T.untyped,
+      platform: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.select_best_platform_match(specs, platform); end
+end
+
+class Bundler::GemHelpers::PlatformMatch < Struct
+  extend T::Generic
+  Elem = type_member(fixed: T.untyped)
+
+  EXACT_MATCH = ::T.let(nil, T.untyped)
+  WORST_MATCH = ::T.let(nil, T.untyped)
+
+  sig do
+    params(
+      other: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def <=>(other); end
+
+  sig {returns(T.untyped)}
+  def cpu_match(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def cpu_match=(_); end
+
+  sig {returns(T.untyped)}
+  def os_match(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def os_match=(_); end
+
+  sig {returns(T.untyped)}
+  def platform_version_match(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def platform_version_match=(_); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.[](*_); end
+
+  sig do
+    params(
+      spec_platform: T.untyped,
+      user_platform: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.cpu_match(spec_platform, user_platform); end
+
+  sig {returns(T.untyped)}
+  def self.members(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.new(*_); end
+
+  sig do
+    params(
+      spec_platform: T.untyped,
+      user_platform: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.os_match(spec_platform, user_platform); end
+
+  sig do
+    params(
+      spec_platform: T.untyped,
+      user_platform: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.platform_version_match(spec_platform, user_platform); end
+end
+
+class Bundler::GemNotFound < Bundler::BundlerError
+  sig {returns(T.untyped)}
+  def status_code(); end
+end
+
+class Bundler::GemRequireError < Bundler::BundlerError
+  sig do
+    params(
+      orig_exception: T.untyped,
+      msg: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def initialize(orig_exception, msg); end
+
+  sig {returns(T.untyped)}
+  def orig_exception(); end
+
+  sig {returns(T.untyped)}
+  def status_code(); end
+end
+
+class Bundler::GemfileError < Bundler::BundlerError
+  sig {returns(T.untyped)}
+  def status_code(); end
+end
+
+class Bundler::GemfileEvalError < Bundler::GemfileError
+end
+
+class Bundler::GemfileLockNotFound < Bundler::BundlerError
+  sig {returns(T.untyped)}
+  def status_code(); end
+end
+
+class Bundler::GemfileNotFound < Bundler::BundlerError
+  sig {returns(T.untyped)}
+  def status_code(); end
+end
+
+class Bundler::GemspecError < Bundler::BundlerError
+  sig {returns(T.untyped)}
+  def status_code(); end
+end
+
+class Bundler::GenericSystemCallError < Bundler::BundlerError
+  sig do
+    params(
+      underlying_error: T.untyped,
+      message: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def initialize(underlying_error, message); end
+
+  sig {returns(T.untyped)}
+  def status_code(); end
+
+  sig {returns(T.untyped)}
+  def underlying_error(); end
+end
+
+class Bundler::GitError < Bundler::BundlerError
+  sig {returns(T.untyped)}
+  def status_code(); end
+end
+
+class Bundler::HTTPError < Bundler::BundlerError
+  sig do
+    params(
+      uri: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def filter_uri(uri); end
+
+  sig {returns(T.untyped)}
+  def status_code(); end
+end
+
+class Bundler::Fetcher::AuthenticationRequiredError < Bundler::HTTPError
+end
+
+class Bundler::Fetcher::BadAuthenticationError < Bundler::HTTPError
+end
+
+class Bundler::Fetcher::CertificateFailureError < Bundler::HTTPError
+end
+
+class Bundler::Fetcher::FallbackError < Bundler::HTTPError
+end
+
+class Bundler::Fetcher::NetworkDownError < Bundler::HTTPError
+end
+
+class Bundler::Fetcher::SSLError < Bundler::HTTPError
+end
+
+class Bundler::Index
+  include T::Enumerable
+  EMPTY_SEARCH = ::T.let(nil, T.untyped)
+  NULL = ::T.let(nil, T.untyped)
+  RUBY = ::T.let(nil, T.untyped)
+
+  sig do
+    params(
+      spec: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def <<(spec); end
+
+  sig do
+    params(
+      other: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def ==(other); end
+
+  sig do
+    params(
+      query: T.untyped,
+      base: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def [](query, base=T.unsafe(nil)); end
+
+  sig do
+    params(
+      index: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def add_source(index); end
+
+  sig {returns(T.untyped)}
+  def all_specs(); end
+
+  sig do
+    params(
+      spec: T.untyped,
+      other_spec: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def dependencies_eql?(spec, other_spec); end
+
+  sig {returns(T.untyped)}
+  def dependency_names(); end
+
+  sig do
+    params(
+      blk: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def each(&blk); end
+
+  sig {returns(T.untyped)}
+  def empty?(); end
+
+  sig {returns(T.untyped)}
+  def initialize(); end
+
+  sig {returns(T.untyped)}
+  def inspect(); end
+
+  sig do
+    params(
+      query: T.untyped,
+      base: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def local_search(query, base=T.unsafe(nil)); end
+
+  sig do
+    params(
+      query: T.untyped,
+      base: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def search(query, base=T.unsafe(nil)); end
+
+  sig do
+    params(
+      name: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def search_all(name); end
+
+  sig {returns(T.untyped)}
+  def size(); end
+
+  sig do
+    params(
+      specs: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def sort_specs(specs); end
+
+  sig {returns(T.untyped)}
+  def sources(); end
+
+  sig {returns(T.untyped)}
+  def spec_names(); end
+
+  sig {returns(T.untyped)}
+  def specs(); end
+
+  sig {returns(T.untyped)}
+  def unmet_dependency_names(); end
+
+  sig do
+    params(
+      query: T.untyped,
+      base: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def unsorted_search(query, base); end
+
+  sig do
+    params(
+      other: T.untyped,
+      override_dupes: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def use(other, override_dupes=T.unsafe(nil)); end
+
+  sig {returns(T.untyped)}
+  def self.build(); end
+
+  sig do
+    params(
+      specs: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.sort_specs(specs); end
+end
+
+class Bundler::InstallError < Bundler::BundlerError
+  sig {returns(T.untyped)}
+  def status_code(); end
+end
+
+class Bundler::InstallHookError < Bundler::BundlerError
+  sig {returns(T.untyped)}
+  def status_code(); end
+end
+
+class Bundler::InvalidOption < Bundler::BundlerError
+  sig {returns(T.untyped)}
+  def status_code(); end
+end
+
+class Bundler::LazySpecification
+  include ::Bundler::MatchPlatform
+  include ::Bundler::GemHelpers
+  sig do
+    params(
+      other: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def ==(other); end
+
+  sig {returns(T.untyped)}
+  def __materialize__(); end
+
+  sig {returns(T.untyped)}
+  def dependencies(); end
+
+  sig {returns(T.untyped)}
+  def full_name(); end
+
+  sig {returns(T.untyped)}
+  def git_version(); end
+
+  sig {returns(T.untyped)}
+  def identifier(); end
+
+  sig do
+    params(
+      name: T.untyped,
+      version: T.untyped,
+      platform: T.untyped,
+      source: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def initialize(name, version, platform, source=T.unsafe(nil)); end
+
+  sig {returns(T.untyped)}
+  def name(); end
+
+  sig {returns(T.untyped)}
+  def platform(); end
+
+  sig {returns(T.untyped)}
+  def remote(); end
+
+  sig do
+    params(
+      remote: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def remote=(remote); end
+
+  sig do
+    params(
+      args: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def respond_to?(*args); end
+
+  sig do
+    params(
+      dependency: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def satisfies?(dependency); end
+
+  sig {returns(T.untyped)}
+  def source(); end
+
+  sig do
+    params(
+      source: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def source=(source); end
+
+  sig {returns(T.untyped)}
+  def to_lock(); end
+
+  sig {returns(T.untyped)}
+  def to_s(); end
+
+  sig {returns(T.untyped)}
+  def version(); end
+end
+
+class Bundler::LazySpecification::Identifier < Struct
+  include ::Comparable
+  extend ::T::Generic
+
+  Elem = type_member(fixed: T.untyped)
+
+  sig do
+    params(
+      other: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def <=>(other); end
+
+  sig {returns(T.untyped)}
+  def dependencies(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def dependencies=(_); end
+
+  sig {returns(T.untyped)}
+  def name(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def name=(_); end
+
+  sig {returns(T.untyped)}
+  def platform(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def platform=(_); end
+
+  sig {returns(T.untyped)}
+  def platform_string(); end
+
+  sig {returns(T.untyped)}
+  def source(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def source=(_); end
+
+  sig {returns(T.untyped)}
+  def version(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def version=(_); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.[](*_); end
+
+  sig {returns(T.untyped)}
+  def self.members(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.new(*_); end
+end
+
+class Bundler::LockfileError < Bundler::BundlerError
+  sig {returns(T.untyped)}
+  def status_code(); end
+end
+
+class Bundler::LockfileParser
+  BUNDLED = ::T.let(nil, T.untyped)
+  DEPENDENCIES = ::T.let(nil, T.untyped)
+  ENVIRONMENT_VERSION_SECTIONS = ::T.let(nil, T.untyped)
+  GEM = ::T.let(nil, T.untyped)
+  GIT = ::T.let(nil, T.untyped)
+  KNOWN_SECTIONS = ::T.let(nil, T.untyped)
+  NAME_VERSION = ::T.let(nil, T.untyped)
+  OPTIONS = ::T.let(nil, T.untyped)
+  PATH = ::T.let(nil, T.untyped)
+  PLATFORMS = ::T.let(nil, T.untyped)
+  PLUGIN = ::T.let(nil, T.untyped)
+  RUBY = ::T.let(nil, T.untyped)
+  SECTIONS_BY_VERSION_INTRODUCED = ::T.let(nil, T.untyped)
+  SOURCE = ::T.let(nil, T.untyped)
+  SPECS = ::T.let(nil, T.untyped)
+  TYPES = ::T.let(nil, T.untyped)
+
+  sig {returns(T.untyped)}
+  def bundler_version(); end
+
+  sig {returns(T.untyped)}
+  def dependencies(); end
+
+  sig do
+    params(
+      lockfile: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def initialize(lockfile); end
+
+  sig {returns(T.untyped)}
+  def platforms(); end
+
+  sig {returns(T.untyped)}
+  def ruby_version(); end
+
+  sig {returns(T.untyped)}
+  def sources(); end
+
+  sig {returns(T.untyped)}
+  def specs(); end
+
+  sig {returns(T.untyped)}
+  def warn_for_outdated_bundler_version(); end
+
+  sig do
+    params(
+      lockfile_contents: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.sections_in_lockfile(lockfile_contents); end
+
+  sig do
+    params(
+      base_version: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.sections_to_ignore(base_version=T.unsafe(nil)); end
+
+  sig do
+    params(
+      lockfile_contents: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.unknown_sections_in_lockfile(lockfile_contents); end
+end
+
+class Bundler::MarshalError < StandardError
+end
+
+module Bundler::MatchPlatform
+  include ::Bundler::GemHelpers
+  sig do
+    params(
+      p: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def match_platform(p); end
+
+  sig do
+    params(
+      gemspec_platform: T.untyped,
+      local_platform: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.platforms_match?(gemspec_platform, local_platform); end
+end
+
+module Bundler::Molinillo
+  VERSION = ::T.let(nil, T.untyped)
+
+end
+
+class Bundler::Molinillo::CircularDependencyError < Bundler::Molinillo::ResolverError
+  sig {returns(T.untyped)}
+  def dependencies(); end
+
+  sig do
+    params(
+      vertices: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def initialize(vertices); end
+end
+
+module Bundler::Molinillo::Compatibility
+  sig do
+    params(
+      enum: T.untyped,
+      blk: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.flat_map(enum, &blk); end
+end
+
+module Bundler::Molinillo::Delegates
+end
+
+module Bundler::Molinillo::Delegates::ResolutionState
+  sig {returns(T.untyped)}
+  def activated(); end
+
+  sig {returns(T.untyped)}
+  def conflicts(); end
+
+  sig {returns(T.untyped)}
+  def depth(); end
+
+  sig {returns(T.untyped)}
+  def name(); end
+
+  sig {returns(T.untyped)}
+  def possibilities(); end
+
+  sig {returns(T.untyped)}
+  def requirement(); end
+
+  sig {returns(T.untyped)}
+  def requirements(); end
+
+  sig {returns(T.untyped)}
+  def unused_unwind_options(); end
+end
+
+module Bundler::Molinillo::Delegates::SpecificationProvider
+  sig do
+    params(
+      dependency: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def allow_missing?(dependency); end
+
+  sig do
+    params(
+      specification: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def dependencies_for(specification); end
+
+  sig do
+    params(
+      dependency: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def name_for(dependency); end
+
+  sig {returns(T.untyped)}
+  def name_for_explicit_dependency_source(); end
+
+  sig {returns(T.untyped)}
+  def name_for_locking_dependency_source(); end
+
+  sig do
+    params(
+      requirement: T.untyped,
+      activated: T.untyped,
+      spec: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def requirement_satisfied_by?(requirement, activated, spec); end
+
+  sig do
+    params(
+      dependency: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def search_for(dependency); end
+
+  sig do
+    params(
+      dependencies: T.untyped,
+      activated: T.untyped,
+      conflicts: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def sort_dependencies(dependencies, activated, conflicts); end
+end
+
+class Bundler::Molinillo::DependencyGraph
+  include ::TSort
+  include T::Enumerable
+  sig do
+    params(
+      other: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def ==(other); end
+
+  sig do
+    params(
+      name: T.untyped,
+      payload: T.untyped,
+      parent_names: T.untyped,
+      requirement: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def add_child_vertex(name, payload, parent_names, requirement); end
+
+  sig do
+    params(
+      origin: T.untyped,
+      destination: T.untyped,
+      requirement: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def add_edge(origin, destination, requirement); end
+
+  sig do
+    params(
+      name: T.untyped,
+      payload: T.untyped,
+      root: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def add_vertex(name, payload, root=T.unsafe(nil)); end
+
+  sig do
+    params(
+      edge: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def delete_edge(edge); end
+
+  sig do
+    params(
+      name: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def detach_vertex_named(name); end
+
+  sig do
+    params(
+      blk: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def each(&blk); end
+
+  sig {returns(T.untyped)}
+  def initialize(); end
+
+  sig {returns(T.untyped)}
+  def inspect(); end
+
+  sig {returns(T.untyped)}
+  def log(); end
+
+  sig do
+    params(
+      tag: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def rewind_to(tag); end
+
+  sig do
+    params(
+      name: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def root_vertex_named(name); end
+
+  sig do
+    params(
+      name: T.untyped,
+      payload: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def set_payload(name, payload); end
+
+  sig do
+    params(
+      tag: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def tag(tag); end
+
+  sig do
+    params(
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def to_dot(options=T.unsafe(nil)); end
+
+  sig do
+    params(
+      vertex: T.untyped,
+      block: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def tsort_each_child(vertex, &block); end
+
+  sig {returns(T.untyped)}
+  def tsort_each_node(); end
+
+  sig do
+    params(
+      name: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def vertex_named(name); end
+
+  sig {returns(T.untyped)}
+  def vertices(); end
+
+  sig do
+    params(
+      vertices: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.tsort(vertices); end
+end
+
+class Bundler::Molinillo::DependencyGraph::Action
+  sig do
+    params(
+      graph: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def down(graph); end
+
+  sig {returns(T.untyped)}
+  def next(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def next=(_); end
+
+  sig {returns(T.untyped)}
+  def previous(); end
+
+  sig do
+    params(
+      previous: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def previous=(previous); end
+
+  sig do
+    params(
+      graph: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def up(graph); end
+
+  sig {returns(T.untyped)}
+  def self.action_name(); end
+end
+
+class Bundler::Molinillo::DependencyGraph::AddEdgeNoCircular < Bundler::Molinillo::DependencyGraph::Action
+  sig {returns(T.untyped)}
+  def destination(); end
+
+  sig do
+    params(
+      graph: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def down(graph); end
+
+  sig do
+    params(
+      origin: T.untyped,
+      destination: T.untyped,
+      requirement: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def initialize(origin, destination, requirement); end
+
+  sig do
+    params(
+      graph: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def make_edge(graph); end
+
+  sig {returns(T.untyped)}
+  def origin(); end
+
+  sig {returns(T.untyped)}
+  def requirement(); end
+
+  sig do
+    params(
+      graph: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def up(graph); end
+
+  sig {returns(T.untyped)}
+  def self.action_name(); end
+end
+
+class Bundler::Molinillo::DependencyGraph::AddVertex < Bundler::Molinillo::DependencyGraph::Action
+  sig do
+    params(
+      graph: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def down(graph); end
+
+  sig do
+    params(
+      name: T.untyped,
+      payload: T.untyped,
+      root: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def initialize(name, payload, root); end
+
+  sig {returns(T.untyped)}
+  def name(); end
+
+  sig {returns(T.untyped)}
+  def payload(); end
+
+  sig {returns(T.untyped)}
+  def root(); end
+
+  sig do
+    params(
+      graph: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def up(graph); end
+
+  sig {returns(T.untyped)}
+  def self.action_name(); end
+end
+
+class Bundler::Molinillo::DependencyGraph::DeleteEdge < Bundler::Molinillo::DependencyGraph::Action
+  sig {returns(T.untyped)}
+  def destination_name(); end
+
+  sig do
+    params(
+      graph: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def down(graph); end
+
+  sig do
+    params(
+      origin_name: T.untyped,
+      destination_name: T.untyped,
+      requirement: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def initialize(origin_name, destination_name, requirement); end
+
+  sig do
+    params(
+      graph: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def make_edge(graph); end
+
+  sig {returns(T.untyped)}
+  def origin_name(); end
+
+  sig {returns(T.untyped)}
+  def requirement(); end
+
+  sig do
+    params(
+      graph: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def up(graph); end
+
+  sig {returns(T.untyped)}
+  def self.action_name(); end
+end
+
+class Bundler::Molinillo::DependencyGraph::DetachVertexNamed < Bundler::Molinillo::DependencyGraph::Action
+  sig do
+    params(
+      graph: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def down(graph); end
+
+  sig do
+    params(
+      name: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def initialize(name); end
+
+  sig {returns(T.untyped)}
+  def name(); end
+
+  sig do
+    params(
+      graph: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def up(graph); end
+
+  sig {returns(T.untyped)}
+  def self.action_name(); end
+end
+
+class Bundler::Molinillo::DependencyGraph::Edge < Struct
+  extend T::Generic
+  Elem = type_member(fixed: T.untyped)
+
+  sig {returns(T.untyped)}
+  def destination(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def destination=(_); end
+
+  sig {returns(T.untyped)}
+  def origin(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def origin=(_); end
+
+  sig {returns(T.untyped)}
+  def requirement(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def requirement=(_); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.[](*_); end
+
+  sig {returns(T.untyped)}
+  def self.members(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.new(*_); end
+end
+
+class Bundler::Molinillo::DependencyGraph::Log
+  extend T::Enumerable
+  sig do
+    params(
+      graph: T.untyped,
+      origin: T.untyped,
+      destination: T.untyped,
+      requirement: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def add_edge_no_circular(graph, origin, destination, requirement); end
+
+  sig do
+    params(
+      graph: T.untyped,
+      name: T.untyped,
+      payload: T.untyped,
+      root: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def add_vertex(graph, name, payload, root); end
+
+  sig do
+    params(
+      graph: T.untyped,
+      origin_name: T.untyped,
+      destination_name: T.untyped,
+      requirement: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def delete_edge(graph, origin_name, destination_name, requirement); end
+
+  sig do
+    params(
+      graph: T.untyped,
+      name: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def detach_vertex_named(graph, name); end
+
+  sig do
+    params(
+      blk: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def each(&blk); end
+
+  sig {returns(T.untyped)}
+  def initialize(); end
+
+  sig do
+    params(
+      graph: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def pop!(graph); end
+
+  sig {returns(T.untyped)}
+  def reverse_each(); end
+
+  sig do
+    params(
+      graph: T.untyped,
+      tag: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def rewind_to(graph, tag); end
+
+  sig do
+    params(
+      graph: T.untyped,
+      name: T.untyped,
+      payload: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def set_payload(graph, name, payload); end
+
+  sig do
+    params(
+      graph: T.untyped,
+      tag: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def tag(graph, tag); end
+end
+
+class Bundler::Molinillo::DependencyGraph::SetPayload < Bundler::Molinillo::DependencyGraph::Action
+  sig do
+    params(
+      graph: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def down(graph); end
+
+  sig do
+    params(
+      name: T.untyped,
+      payload: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def initialize(name, payload); end
+
+  sig {returns(T.untyped)}
+  def name(); end
+
+  sig {returns(T.untyped)}
+  def payload(); end
+
+  sig do
+    params(
+      graph: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def up(graph); end
+
+  sig {returns(T.untyped)}
+  def self.action_name(); end
+end
+
+class Bundler::Molinillo::DependencyGraph::Tag < Bundler::Molinillo::DependencyGraph::Action
+  sig do
+    params(
+      _graph: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def down(_graph); end
+
+  sig do
+    params(
+      tag: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def initialize(tag); end
+
+  sig {returns(T.untyped)}
+  def tag(); end
+
+  sig do
+    params(
+      _graph: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def up(_graph); end
+
+  sig {returns(T.untyped)}
+  def self.action_name(); end
+end
+
+class Bundler::Molinillo::DependencyGraph::Vertex
+  sig do
+    params(
+      other: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def ==(other); end
+
+  sig do
+    params(
+      other: T.untyped,
+      visited: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def _path_to?(other, visited=T.unsafe(nil)); end
+
+  sig do
+    params(
+      other: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def ancestor?(other); end
+
+  sig do
+    params(
+      other: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def descendent?(other); end
+
+  sig do
+    params(
+      other: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def eql?(other); end
+
+  sig {returns(T.untyped)}
+  def explicit_requirements(); end
+
+  sig {returns(T.untyped)}
+  def hash(); end
+
+  sig {returns(T.untyped)}
+  def incoming_edges(); end
+
+  sig do
+    params(
+      incoming_edges: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def incoming_edges=(incoming_edges); end
+
+  sig do
+    params(
+      name: T.untyped,
+      payload: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def initialize(name, payload); end
+
+  sig {returns(T.untyped)}
+  def inspect(); end
+
+  sig do
+    params(
+      other: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def is_reachable_from?(other); end
+
+  sig {returns(T.untyped)}
+  def name(); end
+
+  sig do
+    params(
+      name: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def name=(name); end
+
+  sig {returns(T.untyped)}
+  def outgoing_edges(); end
+
+  sig do
+    params(
+      outgoing_edges: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def outgoing_edges=(outgoing_edges); end
+
+  sig do
+    params(
+      other: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def path_to?(other); end
+
+  sig {returns(T.untyped)}
+  def payload(); end
+
+  sig do
+    params(
+      payload: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def payload=(payload); end
+
+  sig {returns(T.untyped)}
+  def predecessors(); end
+
+  sig {returns(T.untyped)}
+  def recursive_predecessors(); end
+
+  sig {returns(T.untyped)}
+  def recursive_successors(); end
+
+  sig {returns(T.untyped)}
+  def requirements(); end
+
+  sig {returns(T.untyped)}
+  def root(); end
+
+  sig do
+    params(
+      root: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def root=(root); end
+
+  sig {returns(T.untyped)}
+  def root?(); end
+
+  sig do
+    params(
+      other: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def shallow_eql?(other); end
+
+  sig {returns(T.untyped)}
+  def successors(); end
+end
+
+class Bundler::Molinillo::DependencyState < Bundler::Molinillo::ResolutionState
+  extend T::Generic
+  Elem = type_member(fixed: T.untyped)
+
+  sig {returns(T.untyped)}
+  def pop_possibility_state(); end
+end
+
+class Bundler::Molinillo::NoSuchDependencyError < Bundler::Molinillo::ResolverError
+  sig {returns(T.untyped)}
+  def dependency(); end
+
+  sig do
+    params(
+      dependency: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def dependency=(dependency); end
+
+  sig do
+    params(
+      dependency: T.untyped,
+      required_by: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def initialize(dependency, required_by=T.unsafe(nil)); end
+
+  sig {returns(T.untyped)}
+  def message(); end
+
+  sig {returns(T.untyped)}
+  def required_by(); end
+
+  sig do
+    params(
+      required_by: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def required_by=(required_by); end
+end
+
+class Bundler::Molinillo::PossibilityState < Bundler::Molinillo::ResolutionState
+  extend T::Generic
+  Elem = type_member(fixed: T.untyped)
+end
+
+class Bundler::Molinillo::ResolutionState < Struct
+  extend T::Generic
+  Elem = type_member(fixed: T.untyped)
+
+  sig {returns(T.untyped)}
+  def activated(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def activated=(_); end
+
+  sig {returns(T.untyped)}
+  def conflicts(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def conflicts=(_); end
+
+  sig {returns(T.untyped)}
+  def depth(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def depth=(_); end
+
+  sig {returns(T.untyped)}
+  def name(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def name=(_); end
+
+  sig {returns(T.untyped)}
+  def possibilities(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def possibilities=(_); end
+
+  sig {returns(T.untyped)}
+  def requirement(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def requirement=(_); end
+
+  sig {returns(T.untyped)}
+  def requirements(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def requirements=(_); end
+
+  sig {returns(T.untyped)}
+  def unused_unwind_options(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def unused_unwind_options=(_); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.[](*_); end
+
+  sig {returns(T.untyped)}
+  def self.empty(); end
+
+  sig {returns(T.untyped)}
+  def self.members(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.new(*_); end
+end
+
+class Bundler::Molinillo::Resolver
+  sig do
+    params(
+      specification_provider: T.untyped,
+      resolver_ui: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def initialize(specification_provider, resolver_ui); end
+
+  sig do
+    params(
+      requested: T.untyped,
+      base: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def resolve(requested, base=T.unsafe(nil)); end
+
+  sig {returns(T.untyped)}
+  def resolver_ui(); end
+
+  sig {returns(T.untyped)}
+  def specification_provider(); end
+end
+
+class Bundler::Molinillo::Resolver::Resolution
+  include ::Bundler::Molinillo::Delegates::SpecificationProvider
+  include ::Bundler::Molinillo::Delegates::ResolutionState
+  sig {returns(T.untyped)}
+  def base(); end
+
+  sig do
+    params(
+      specification_provider: T.untyped,
+      resolver_ui: T.untyped,
+      requested: T.untyped,
+      base: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def initialize(specification_provider, resolver_ui, requested, base); end
+
+  sig do
+    params(
+      iteration_rate: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def iteration_rate=(iteration_rate); end
+
+  sig {returns(T.untyped)}
+  def original_requested(); end
+
+  sig {returns(T.untyped)}
+  def resolve(); end
+
+  sig {returns(T.untyped)}
+  def resolver_ui(); end
+
+  sig {returns(T.untyped)}
+  def specification_provider(); end
+
+  sig do
+    params(
+      started_at: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def started_at=(started_at); end
+
+  sig do
+    params(
+      states: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def states=(states); end
+end
+
+class Bundler::Molinillo::Resolver::Resolution::Conflict < Struct
+  extend T::Generic
+  Elem = type_member(fixed: T.untyped)
+
+  sig {returns(T.untyped)}
+  def activated_by_name(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def activated_by_name=(_); end
+
+  sig {returns(T.untyped)}
+  def existing(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def existing=(_); end
+
+  sig {returns(T.untyped)}
+  def locked_requirement(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def locked_requirement=(_); end
+
+  sig {returns(T.untyped)}
+  def possibility(); end
+
+  sig {returns(T.untyped)}
+  def possibility_set(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def possibility_set=(_); end
+
+  sig {returns(T.untyped)}
+  def requirement(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def requirement=(_); end
+
+  sig {returns(T.untyped)}
+  def requirement_trees(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def requirement_trees=(_); end
+
+  sig {returns(T.untyped)}
+  def requirements(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def requirements=(_); end
+
+  sig {returns(T.untyped)}
+  def underlying_error(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def underlying_error=(_); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.[](*_); end
+
+  sig {returns(T.untyped)}
+  def self.members(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.new(*_); end
+end
+
+class Bundler::Molinillo::Resolver::Resolution::PossibilitySet < Struct
+  extend T::Generic
+  Elem = type_member(fixed: T.untyped)
+
+  sig {returns(T.untyped)}
+  def dependencies(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def dependencies=(_); end
+
+  sig {returns(T.untyped)}
+  def latest_version(); end
+
+  sig {returns(T.untyped)}
+  def possibilities(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def possibilities=(_); end
+
+  sig {returns(T.untyped)}
+  def to_s(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.[](*_); end
+
+  sig {returns(T.untyped)}
+  def self.members(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.new(*_); end
+end
+
+class Bundler::Molinillo::Resolver::Resolution::UnwindDetails < Struct
+  include ::Comparable
+  extend T::Generic
+  Elem = type_member(fixed: T.untyped)
+
+  sig do
+    params(
+      other: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def <=>(other); end
+
+  sig {returns(T.untyped)}
+  def all_requirements(); end
+
+  sig {returns(T.untyped)}
+  def conflicting_requirements(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def conflicting_requirements=(_); end
+
+  sig {returns(T.untyped)}
+  def requirement_tree(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def requirement_tree=(_); end
+
+  sig {returns(T.untyped)}
+  def requirement_trees(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def requirement_trees=(_); end
+
+  sig {returns(T.untyped)}
+  def requirements_unwound_to_instead(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def requirements_unwound_to_instead=(_); end
+
+  sig {returns(T.untyped)}
+  def reversed_requirement_tree_index(); end
+
+  sig {returns(T.untyped)}
+  def state_index(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def state_index=(_); end
+
+  sig {returns(T.untyped)}
+  def state_requirement(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def state_requirement=(_); end
+
+  sig {returns(T.untyped)}
+  def sub_dependencies_to_avoid(); end
+
+  sig {returns(T.untyped)}
+  def unwinding_to_primary_requirement?(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.[](*_); end
+
+  sig {returns(T.untyped)}
+  def self.members(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.new(*_); end
+end
+
+class Bundler::Molinillo::ResolverError < StandardError
+end
+
+module Bundler::Molinillo::SpecificationProvider
+  sig do
+    params(
+      dependency: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def allow_missing?(dependency); end
+
+  sig do
+    params(
+      specification: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def dependencies_for(specification); end
+
+  sig do
+    params(
+      dependency: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def name_for(dependency); end
+
+  sig {returns(T.untyped)}
+  def name_for_explicit_dependency_source(); end
+
+  sig {returns(T.untyped)}
+  def name_for_locking_dependency_source(); end
+
+  sig do
+    params(
+      requirement: T.untyped,
+      activated: T.untyped,
+      spec: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def requirement_satisfied_by?(requirement, activated, spec); end
+
+  sig do
+    params(
+      dependency: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def search_for(dependency); end
+
+  sig do
+    params(
+      dependencies: T.untyped,
+      activated: T.untyped,
+      conflicts: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def sort_dependencies(dependencies, activated, conflicts); end
+end
+
+module Bundler::Molinillo::UI
+  sig {returns(T.untyped)}
+  def after_resolution(); end
+
+  sig {returns(T.untyped)}
+  def before_resolution(); end
+
+  sig do
+    params(
+      depth: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def debug(depth=T.unsafe(nil)); end
+
+  sig {returns(T.untyped)}
+  def debug?(); end
+
+  sig {returns(T.untyped)}
+  def indicate_progress(); end
+
+  sig {returns(T.untyped)}
+  def output(); end
+
+  sig {returns(T.untyped)}
+  def progress_rate(); end
+end
+
+class Bundler::Molinillo::VersionConflict < Bundler::Molinillo::ResolverError
+  include ::Bundler::Molinillo::Delegates::SpecificationProvider
+  sig {returns(T.untyped)}
+  def conflicts(); end
+
+  sig do
+    params(
+      conflicts: T.untyped,
+      specification_provider: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def initialize(conflicts, specification_provider); end
+
+  sig do
+    params(
+      opts: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def message_with_trees(opts=T.unsafe(nil)); end
+
+  sig {returns(T.untyped)}
+  def specification_provider(); end
+end
+
+class Bundler::NoSpaceOnDeviceError < Bundler::PermissionError
+  sig {returns(T.untyped)}
+  def message(); end
+
+  sig {returns(T.untyped)}
+  def status_code(); end
+end
+
+class Bundler::OperationNotSupportedError < Bundler::PermissionError
+  sig {returns(T.untyped)}
+  def message(); end
+
+  sig {returns(T.untyped)}
+  def status_code(); end
+end
+
+class Bundler::PathError < Bundler::BundlerError
+  sig {returns(T.untyped)}
+  def status_code(); end
+end
+
+class Bundler::PermissionError < Bundler::BundlerError
+  sig {returns(T.untyped)}
+  def action(); end
+
+  sig do
+    params(
+      path: T.untyped,
+      permission_type: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def initialize(path, permission_type=T.unsafe(nil)); end
+
+  sig {returns(T.untyped)}
+  def message(); end
+
+  sig {returns(T.untyped)}
+  def status_code(); end
+end
+
+module Bundler::Plugin
+  PLUGIN_FILE_NAME = ::T.let(nil, T.untyped)
+
+  sig do
+    params(
+      command: T.untyped,
+      cls: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.add_command(command, cls); end
+
+  sig do
+    params(
+      event: T.untyped,
+      block: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.add_hook(event, &block); end
+
+  sig do
+    params(
+      source: T.untyped,
+      cls: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.add_source(source, cls); end
+
+  sig {returns(T.untyped)}
+  def self.cache(); end
+
+  sig do
+    params(
+      command: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.command?(command); end
+
+  sig do
+    params(
+      command: T.untyped,
+      args: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.exec_command(command, args); end
+
+  sig do
+    params(
+      gemfile: T.untyped,
+      inline: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.gemfile_install(gemfile=T.unsafe(nil), &inline); end
+
+  sig {returns(T.untyped)}
+  def self.global_root(); end
+
+  sig do
+    params(
+      event: T.untyped,
+      args: T.untyped,
+      arg_blk: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.hook(event, *args, &arg_blk); end
+
+  sig {returns(T.untyped)}
+  def self.index(); end
+
+  sig do
+    params(
+      names: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.install(names, options); end
+
+  sig do
+    params(
+      plugin: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.installed?(plugin); end
+
+  sig {returns(T.untyped)}
+  def self.local_root(); end
+
+  sig {returns(T.untyped)}
+  def self.reset!(); end
+
+  sig {returns(T.untyped)}
+  def self.root(); end
+
+  sig do
+    params(
+      name: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.source(name); end
+
+  sig do
+    params(
+      name: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.source?(name); end
+
+  sig do
+    params(
+      locked_opts: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.source_from_lock(locked_opts); end
+end
+
+class Bundler::Plugin::API
+  sig {returns(T.untyped)}
+  def cache_dir(); end
+
+  sig do
+    params(
+      name: T.untyped,
+      args: T.untyped,
+      blk: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def method_missing(name, *args, &blk); end
+
+  sig do
+    params(
+      names: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def tmp(*names); end
+
+  sig do
+    params(
+      command: T.untyped,
+      cls: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.command(command, cls=T.unsafe(nil)); end
+
+  sig do
+    params(
+      event: T.untyped,
+      block: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.hook(event, &block); end
+
+  sig do
+    params(
+      source: T.untyped,
+      cls: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.source(source, cls=T.unsafe(nil)); end
+end
+
+class Bundler::Plugin::DSL
+  sig do
+    params(
+      name: T.untyped,
+      args: T.untyped
+    )
+    .returns(T.untyped)
+  end
+  def _gem(name, *args); end
+
+  sig { returns(T.untyped) }
+  def inferred_plugins(); end
+
+  sig do
+    params(
+      name: T.untyped,
+      args: T.untyped
+    )
+    .returns(T.untyped)
+  end
+  def plugin(name, *args); end
+end
+
+module Bundler::Plugin::Events
+  def self.defined_event?(event); end
+end
+
+class Bundler::Plugin::Index
+  def command_plugin(command); end
+
+  def commands(); end
+
+  def global_index_file(); end
+
+  def hook_plugins(event); end
+
+  def index_file(); end
+
+  def installed?(name); end
+
+  def load_paths(name); end
+
+  def local_index_file(); end
+
+  def plugin_path(name); end
+
+  def register_plugin(name, path, load_paths, commands, sources, hooks); end
+
+  def source?(source); end
+
+  def source_plugin(name); end
+end
+
+class Bundler::Plugin::MalformattedPlugin < Bundler::PluginError
+end
+
+class Bundler::Plugin::UndefinedCommandError < Bundler::PluginError
+end
+
+class Bundler::Plugin::UnknownSourceError < Bundler::PluginError
+end
+
+class Bundler::Plugin::DSL::PluginGemfileError < Bundler::PluginError
+end
+
+class Bundler::PluginError < Bundler::BundlerError
+  sig {returns(T.untyped)}
+  def status_code(); end
+end
+
+class Bundler::ProductionError < Bundler::BundlerError
+  sig {returns(T.untyped)}
+  def status_code(); end
+end
+
+class Bundler::RemoteSpecification
+  include ::Comparable
+  include ::Bundler::MatchPlatform
+  include ::Bundler::GemHelpers
+  sig do
+    params(
+      other: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def <=>(other); end
+
+  sig do
+    params(
+      spec: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def __swap__(spec); end
+
+  sig {returns(T.untyped)}
+  def dependencies(); end
+
+  sig do
+    params(
+      dependencies: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def dependencies=(dependencies); end
+
+  sig {returns(T.untyped)}
+  def fetch_platform(); end
+
+  sig {returns(T.untyped)}
+  def full_name(); end
+
+  sig {returns(T.untyped)}
+  def git_version(); end
+
+  sig do
+    params(
+      name: T.untyped,
+      version: T.untyped,
+      platform: T.untyped,
+      spec_fetcher: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def initialize(name, version, platform, spec_fetcher); end
+
+  sig {returns(T.untyped)}
+  def name(); end
+
+  sig {returns(T.untyped)}
+  def platform(); end
+
+  sig {returns(T.untyped)}
+  def remote(); end
+
+  sig do
+    params(
+      remote: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def remote=(remote); end
+
+  sig do
+    params(
+      method: T.untyped,
+      include_all: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def respond_to?(method, include_all=T.unsafe(nil)); end
+
+  sig {returns(T.untyped)}
+  def sort_obj(); end
+
+  sig {returns(T.untyped)}
+  def source(); end
+
+  sig do
+    params(
+      source: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def source=(source); end
+
+  sig {returns(T.untyped)}
+  def to_s(); end
+
+  sig {returns(T.untyped)}
+  def version(); end
+end
+
+class Bundler::Resolver
+  include ::Bundler::Molinillo::SpecificationProvider
+  include ::Bundler::Molinillo::UI
+  sig {returns(T.untyped)}
+  def after_resolution(); end
+
+  sig {returns(T.untyped)}
+  def before_resolution(); end
+
+  sig do
+    params(
+      depth: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def debug(depth=T.unsafe(nil)); end
+
+  sig {returns(T.untyped)}
+  def debug?(); end
+
+  sig do
+    params(
+      specification: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def dependencies_for(specification); end
+
+  sig do
+    params(
+      dependency: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def index_for(dependency); end
+
+  sig {returns(T.untyped)}
+  def indicate_progress(); end
+
+  sig do
+    params(
+      index: T.untyped,
+      source_requirements: T.untyped,
+      base: T.untyped,
+      gem_version_promoter: T.untyped,
+      additional_base_requirements: T.untyped,
+      platforms: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def initialize(index, source_requirements, base, gem_version_promoter, additional_base_requirements, platforms); end
+
+  sig do
+    params(
+      dependency: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def name_for(dependency); end
+
+  sig {returns(T.untyped)}
+  def name_for_explicit_dependency_source(); end
+
+  sig {returns(T.untyped)}
+  def name_for_locking_dependency_source(); end
+
+  sig do
+    params(
+      vertex: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def relevant_sources_for_vertex(vertex); end
+
+  sig do
+    params(
+      requirement: T.untyped,
+      activated: T.untyped,
+      spec: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def requirement_satisfied_by?(requirement, activated, spec); end
+
+  sig do
+    params(
+      dependency: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def search_for(dependency); end
+
+  sig do
+    params(
+      dependencies: T.untyped,
+      activated: T.untyped,
+      conflicts: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def sort_dependencies(dependencies, activated, conflicts); end
+
+  sig do
+    params(
+      requirements: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def start(requirements); end
+
+  sig do
+    params(
+      platform: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.platform_sort_key(platform); end
+
+  sig do
+    params(
+      requirements: T.untyped,
+      index: T.untyped,
+      source_requirements: T.untyped,
+      base: T.untyped,
+      gem_version_promoter: T.untyped,
+      additional_base_requirements: T.untyped,
+      platforms: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.resolve(requirements, index, source_requirements=T.unsafe(nil), base=T.unsafe(nil), gem_version_promoter=T.unsafe(nil), additional_base_requirements=T.unsafe(nil), platforms=T.unsafe(nil)); end
+
+  sig do
+    params(
+      platforms: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.sort_platforms(platforms); end
+end
+
+class Bundler::Resolver::SpecGroup
+  include ::Bundler::GemHelpers
+  sig do
+    params(
+      other: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def ==(other); end
+
+  sig do
+    params(
+      platform: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def activate_platform!(platform); end
+
+  sig {returns(T.untyped)}
+  def dependencies_for_activated_platforms(); end
+
+  sig do
+    params(
+      other: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def eql?(other); end
+
+  sig do
+    params(
+      platform: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def for?(platform); end
+
+  sig {returns(T.untyped)}
+  def hash(); end
+
+  sig {returns(T.untyped)}
+  def ignores_bundler_dependencies(); end
+
+  sig do
+    params(
+      ignores_bundler_dependencies: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def ignores_bundler_dependencies=(ignores_bundler_dependencies); end
+
+  sig do
+    params(
+      all_specs: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def initialize(all_specs); end
+
+  sig {returns(T.untyped)}
+  def name(); end
+
+  sig do
+    params(
+      name: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def name=(name); end
+
+  sig {returns(T.untyped)}
+  def source(); end
+
+  sig do
+    params(
+      source: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def source=(source); end
+
+  sig {returns(T.untyped)}
+  def to_s(); end
+
+  sig {returns(T.untyped)}
+  def to_specs(); end
+
+  sig {returns(T.untyped)}
+  def version(); end
+
+  sig do
+    params(
+      version: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def version=(version); end
+end
+
+module Bundler::RubyDsl
+  sig do
+    params(
+      ruby_version: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def ruby(*ruby_version); end
+end
+
+class Bundler::RubyVersion
+  PATTERN = ::T.let(nil, T.untyped)
+
+  sig do
+    params(
+      other: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def ==(other); end
+
+  sig do
+    params(
+      other: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def diff(other); end
+
+  sig {returns(T.untyped)}
+  def engine(); end
+
+  sig {returns(T.untyped)}
+  def engine_gem_version(); end
+
+  sig {returns(T.untyped)}
+  def engine_versions(); end
+
+  sig {returns(T.untyped)}
+  def exact?(); end
+
+  sig {returns(T.untyped)}
+  def gem_version(); end
+
+  sig {returns(T.untyped)}
+  def host(); end
+
+  sig do
+    params(
+      versions: T.untyped,
+      patchlevel: T.untyped,
+      engine: T.untyped,
+      engine_version: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def initialize(versions, patchlevel, engine, engine_version); end
+
+  sig {returns(T.untyped)}
+  def patchlevel(); end
+
+  sig {returns(T.untyped)}
+  def single_version_string(); end
+
+  sig {returns(T.untyped)}
+  def to_gem_version_with_patchlevel(); end
+
+  sig do
+    params(
+      versions: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def to_s(versions=T.unsafe(nil)); end
+
+  sig {returns(T.untyped)}
+  def versions(); end
+
+  sig do
+    params(
+      versions: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def versions_string(versions); end
+
+  sig do
+    params(
+      string: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.from_string(string); end
+
+  sig {returns(T.untyped)}
+  def self.system(); end
+end
+
+class Bundler::RubyVersionMismatch < Bundler::BundlerError
+  sig {returns(T.untyped)}
+  def status_code(); end
+end
+
+class Bundler::RubygemsIntegration
+  EXT_LOCK = ::T.let(nil, T.untyped)
+
+  sig {returns(T.untyped)}
+  def backport_base_dir(); end
+
+  sig {returns(T.untyped)}
+  def backport_cache_file(); end
+
+  sig {returns(T.untyped)}
+  def backport_segment_generation(); end
+
+  sig {returns(T.untyped)}
+  def backport_spec_file(); end
+
+  sig {returns(T.untyped)}
+  def backport_yaml_initialize(); end
+
+  sig do
+    params(
+      gem: T.untyped,
+      bin: T.untyped,
+      ver: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def bin_path(gem, bin, ver); end
+
+  sig {returns(T.untyped)}
+  def binstubs_call_gem?(); end
+
+  sig do
+    params(
+      spec: T.untyped,
+      skip_validation: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def build(spec, skip_validation=T.unsafe(nil)); end
+
+  sig {returns(T.untyped)}
+  def build_args(); end
+
+  sig do
+    params(
+      args: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def build_args=(args); end
+
+  sig do
+    params(
+      gem_dir: T.untyped,
+      spec: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def build_gem(gem_dir, spec); end
+
+  sig {returns(T.untyped)}
+  def clear_paths(); end
+
+  sig {returns(T.untyped)}
+  def config_map(); end
+
+  sig {returns(T.untyped)}
+  def configuration(); end
+
+  sig do
+    params(
+      spec: T.untyped,
+      uri: T.untyped,
+      path: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def download_gem(spec, uri, path); end
+
+  sig {returns(T.untyped)}
+  def ext_lock(); end
+
+  sig do
+    params(
+      remote: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def fetch_all_remote_specs(remote); end
+
+  sig {returns(T.untyped)}
+  def fetch_prerelease_specs(); end
+
+  sig do
+    params(
+      all: T.untyped,
+      pre: T.untyped,
+      blk: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def fetch_specs(all, pre, &blk); end
+
+  sig {returns(T.untyped)}
+  def gem_bindir(); end
+
+  sig {returns(T.untyped)}
+  def gem_cache(); end
+
+  sig {returns(T.untyped)}
+  def gem_dir(); end
+
+  sig do
+    params(
+      path: T.untyped,
+      policy: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def gem_from_path(path, policy=T.unsafe(nil)); end
+
+  sig {returns(T.untyped)}
+  def gem_path(); end
+
+  sig do
+    params(
+      obj: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def inflate(obj); end
+
+  sig {returns(T.untyped)}
+  def initialize(); end
+
+  sig do
+    params(
+      args: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def install_with_build_args(args); end
+
+  sig {returns(T.untyped)}
+  def load_path_insert_index(); end
+
+  sig do
+    params(
+      files: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def load_plugin_files(files); end
+
+  sig {returns(T.untyped)}
+  def load_plugins(); end
+
+  sig {returns(T.untyped)}
+  def loaded_gem_paths(); end
+
+  sig do
+    params(
+      name: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def loaded_specs(name); end
+
+  sig do
+    params(
+      spec: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def mark_loaded(spec); end
+
+  sig {returns(T.untyped)}
+  def marshal_spec_dir(); end
+
+  sig do
+    params(
+      klass: T.untyped,
+      method: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def method_visibility(klass, method); end
+
+  sig do
+    params(
+      obj: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def path(obj); end
+
+  sig {returns(T.untyped)}
+  def path_separator(); end
+
+  sig {returns(T.untyped)}
+  def platforms(); end
+
+  sig {returns(T.untyped)}
+  def post_reset_hooks(); end
+
+  sig {returns(T.untyped)}
+  def preserve_paths(); end
+
+  sig do
+    params(
+      req_str: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def provides?(req_str); end
+
+  sig do
+    params(
+      path: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def read_binary(path); end
+
+  sig do
+    params(
+      klass: T.untyped,
+      method: T.untyped,
+      unbound_method: T.untyped,
+      block: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def redefine_method(klass, method, unbound_method=T.unsafe(nil), &block); end
+
+  sig do
+    params(
+      specs: T.untyped,
+      specs_by_name: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def replace_bin_path(specs, specs_by_name); end
+
+  sig do
+    params(
+      specs: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def replace_entrypoints(specs); end
+
+  sig do
+    params(
+      specs: T.untyped,
+      specs_by_name: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def replace_gem(specs, specs_by_name); end
+
+  sig {returns(T.untyped)}
+  def replace_refresh(); end
+
+  sig {returns(T.untyped)}
+  def repository_subdirectories(); end
+
+  sig {returns(T.untyped)}
+  def reset(); end
+
+  sig {returns(T.untyped)}
+  def reverse_rubygems_kernel_mixin(); end
+
+  sig {returns(T.untyped)}
+  def ruby_engine(); end
+
+  sig {returns(T.untyped)}
+  def security_policies(); end
+
+  sig {returns(T.untyped)}
+  def security_policy_keys(); end
+
+  sig do
+    params(
+      spec: T.untyped,
+      installed_by_version: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def set_installed_by_version(spec, installed_by_version=T.unsafe(nil)); end
+
+  sig {returns(T.untyped)}
+  def sources(); end
+
+  sig do
+    params(
+      val: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def sources=(val); end
+
+  sig {returns(T.untyped)}
+  def spec_cache_dirs(); end
+
+  sig do
+    params(
+      spec: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def spec_default_gem?(spec); end
+
+  sig do
+    params(
+      spec: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def spec_extension_dir(spec); end
+
+  sig do
+    params(
+      path: T.untyped,
+      policy: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def spec_from_gem(path, policy=T.unsafe(nil)); end
+
+  sig do
+    params(
+      spec: T.untyped,
+      glob: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def spec_matches_for_glob(spec, glob); end
+
+  sig do
+    params(
+      spec: T.untyped,
+      default: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def spec_missing_extensions?(spec, default=T.unsafe(nil)); end
+
+  sig do
+    params(
+      stub: T.untyped,
+      spec: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def stub_set_spec(stub, spec); end
+
+  sig do
+    params(
+      specs: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def stub_source_index(specs); end
+
+  sig {returns(T.untyped)}
+  def stubs_provide_full_functionality?(); end
+
+  sig {returns(T.untyped)}
+  def suffix_pattern(); end
+
+  sig do
+    params(
+      obj: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def ui=(obj); end
+
+  sig {returns(T.untyped)}
+  def undo_replacements(); end
+
+  sig {returns(T.untyped)}
+  def user_home(); end
+
+  sig do
+    params(
+      spec: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def validate(spec); end
+
+  sig {returns(T.untyped)}
+  def version(); end
+
+  sig do
+    params(
+      args: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def with_build_args(args); end
+
+  sig do
+    params(
+      req_str: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.provides?(req_str); end
+
+  sig {returns(T.untyped)}
+  def self.version(); end
+end
+
+class Bundler::RubygemsIntegration::AlmostModern < Bundler::RubygemsIntegration::Modern
+  sig {returns(T.untyped)}
+  def preserve_paths(); end
+end
+
+class Bundler::RubygemsIntegration::Ancient < Bundler::RubygemsIntegration::Legacy
+  sig {returns(T.untyped)}
+  def initialize(); end
+end
+
+class Bundler::RubygemsIntegration::Future < Bundler::RubygemsIntegration
+  sig {returns(T.untyped)}
+  def all_specs(); end
+
+  sig do
+    params(
+      spec: T.untyped,
+      skip_validation: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def build(spec, skip_validation=T.unsafe(nil)); end
+
+  sig do
+    params(
+      spec: T.untyped,
+      uri: T.untyped,
+      path: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def download_gem(spec, uri, path); end
+
+  sig do
+    params(
+      remote: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def fetch_all_remote_specs(remote); end
+
+  sig do
+    params(
+      source: T.untyped,
+      remote: T.untyped,
+      name: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def fetch_specs(source, remote, name); end
+
+  sig do
+    params(
+      name: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def find_name(name); end
+
+  sig do
+    params(
+      path: T.untyped,
+      policy: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def gem_from_path(path, policy=T.unsafe(nil)); end
+
+  sig {returns(T.untyped)}
+  def gem_remote_fetcher(); end
+
+  sig do
+    params(
+      args: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def install_with_build_args(args); end
+
+  sig {returns(T.untyped)}
+  def path_separator(); end
+
+  sig {returns(T.untyped)}
+  def repository_subdirectories(); end
+
+  sig do
+    params(
+      specs: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def stub_rubygems(specs); end
+end
+
+class Bundler::RubygemsIntegration::Legacy < Bundler::RubygemsIntegration
+  sig {returns(T.untyped)}
+  def all_specs(); end
+
+  sig do
+    params(
+      name: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def find_name(name); end
+
+  sig {returns(T.untyped)}
+  def initialize(); end
+
+  sig {returns(T.untyped)}
+  def post_reset_hooks(); end
+
+  sig {returns(T.untyped)}
+  def reset(); end
+
+  sig do
+    params(
+      specs: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def stub_rubygems(specs); end
+
+  sig do
+    params(
+      spec: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def validate(spec); end
+end
+
+class Bundler::RubygemsIntegration::Modern < Bundler::RubygemsIntegration
+  sig {returns(T.untyped)}
+  def all_specs(); end
+
+  sig do
+    params(
+      name: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def find_name(name); end
+
+  sig do
+    params(
+      specs: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def stub_rubygems(specs); end
+end
+
+class Bundler::RubygemsIntegration::MoreFuture < Bundler::RubygemsIntegration::Future
+  sig {returns(T.untyped)}
+  def all_specs(); end
+
+  sig {returns(T.untyped)}
+  def backport_ext_builder_monitor(); end
+
+  sig {returns(T.untyped)}
+  def binstubs_call_gem?(); end
+
+  sig do
+    params(
+      name: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def find_name(name); end
+
+  sig {returns(T.untyped)}
+  def initialize(); end
+
+  sig {returns(T.untyped)}
+  def stubs_provide_full_functionality?(); end
+
+  sig do
+    params(
+      gemfile: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def use_gemdeps(gemfile); end
+end
+
+class Bundler::RubygemsIntegration::MoreModern < Bundler::RubygemsIntegration::Modern
+  sig do
+    params(
+      spec: T.untyped,
+      skip_validation: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def build(spec, skip_validation=T.unsafe(nil)); end
+end
+
+class Bundler::RubygemsIntegration::Transitional < Bundler::RubygemsIntegration::Legacy
+  sig do
+    params(
+      specs: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def stub_rubygems(specs); end
+
+  sig do
+    params(
+      spec: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def validate(spec); end
+end
+
+class Bundler::Runtime
+  include ::Bundler::SharedHelpers
+  REQUIRE_ERRORS = ::T.let(nil, T.untyped)
+
+  sig do
+    params(
+      custom_path: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def cache(custom_path=T.unsafe(nil)); end
+
+  sig do
+    params(
+      dry_run: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def clean(dry_run=T.unsafe(nil)); end
+
+  sig {returns(T.untyped)}
+  def current_dependencies(); end
+
+  sig {returns(T.untyped)}
+  def dependencies(); end
+
+  sig {returns(T.untyped)}
+  def gems(); end
+
+  sig do
+    params(
+      root: T.untyped,
+      definition: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def initialize(root, definition); end
+
+  sig do
+    params(
+      opts: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def lock(opts=T.unsafe(nil)); end
+
+  sig do
+    params(
+      cache_path: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def prune_cache(cache_path); end
+
+  sig {returns(T.untyped)}
+  def requested_specs(); end
+
+  sig do
+    params(
+      groups: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def require(*groups); end
+
+  sig {returns(T.untyped)}
+  def requires(); end
+
+  sig do
+    params(
+      groups: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def setup(*groups); end
+
+  sig {returns(T.untyped)}
+  def specs(); end
+end
+
+class Bundler::SecurityError < Bundler::BundlerError
+  sig {returns(T.untyped)}
+  def status_code(); end
+end
+
+class Bundler::Settings
+  ARRAY_KEYS = ::T.let(nil, T.untyped)
+  BOOL_KEYS = ::T.let(nil, T.untyped)
+  CONFIG_REGEX = ::T.let(nil, T.untyped)
+  DEFAULT_CONFIG = ::T.let(nil, T.untyped)
+  NORMALIZE_URI_OPTIONS_PATTERN = ::T.let(nil, T.untyped)
+  NUMBER_KEYS = ::T.let(nil, T.untyped)
+  PER_URI_OPTIONS = ::T.let(nil, T.untyped)
+
+  sig do
+    params(
+      name: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def [](name); end
+
+  sig {returns(T.untyped)}
+  def all(); end
+
+  sig {returns(T.untyped)}
+  def allow_sudo?(); end
+
+  sig {returns(T.untyped)}
+  def app_cache_path(); end
+
+  sig do
+    params(
+      uri: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def credentials_for(uri); end
+
+  sig {returns(T.untyped)}
+  def gem_mirrors(); end
+
+  sig {returns(T.untyped)}
+  def ignore_config?(); end
+
+  sig do
+    params(
+      root: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def initialize(root=T.unsafe(nil)); end
+
+  sig do
+    params(
+      key: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def key_for(key); end
+
+  sig {returns(T.untyped)}
+  def local_overrides(); end
+
+  sig do
+    params(
+      key: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def locations(key); end
+
+  sig do
+    params(
+      uri: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def mirror_for(uri); end
+
+  sig {returns(T.untyped)}
+  def path(); end
+
+  sig do
+    params(
+      exposed_key: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def pretty_values_for(exposed_key); end
+
+  sig do
+    params(
+      key: T.untyped,
+      value: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def set_command_option(key, value); end
+
+  sig do
+    params(
+      key: T.untyped,
+      value: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def set_command_option_if_given(key, value); end
+
+  sig do
+    params(
+      key: T.untyped,
+      value: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def set_global(key, value); end
+
+  sig do
+    params(
+      key: T.untyped,
+      value: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def set_local(key, value); end
+
+  sig do
+    params(
+      update: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def temporary(update); end
+
+  sig {returns(T.untyped)}
+  def validate!(); end
+
+  sig do
+    params(
+      uri: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.normalize_uri(uri); end
+end
+
+class Bundler::Settings::Path < Struct
+  extend T::Generic
+  Elem = type_member(fixed: T.untyped)
+
+  sig {returns(T.untyped)}
+  def append_ruby_scope(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def append_ruby_scope=(_); end
+
+  sig {returns(T.untyped)}
+  def base_path(); end
+
+  sig {returns(T.untyped)}
+  def base_path_relative_to_pwd(); end
+
+  sig {returns(T.untyped)}
+  def default_install_uses_path(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def default_install_uses_path=(_); end
+
+  sig {returns(T.untyped)}
+  def explicit_path(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def explicit_path=(_); end
+
+  sig {returns(T.untyped)}
+  def path(); end
+
+  sig {returns(T.untyped)}
+  def system_path(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def system_path=(_); end
+
+  sig {returns(T.untyped)}
+  def use_system_gems?(); end
+
+  sig {returns(T.untyped)}
+  def validate!(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.[](*_); end
+
+  sig {returns(T.untyped)}
+  def self.members(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.new(*_); end
+end
+
+module Bundler::SharedHelpers
+  extend ::Bundler::SharedHelpers
+  sig do
+    params(
+      dir: T.untyped,
+      blk: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def chdir(dir, &blk); end
+
+  sig do
+    params(
+      constant_name: T.untyped,
+      namespace: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def const_get_safely(constant_name, namespace); end
+
+  sig {returns(T.untyped)}
+  def default_bundle_dir(); end
+
+  sig {returns(T.untyped)}
+  def default_gemfile(); end
+
+  sig {returns(T.untyped)}
+  def default_lockfile(); end
+
+  sig do
+    params(
+      name: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def digest(name); end
+
+  sig do
+    params(
+      spec: T.untyped,
+      old_deps: T.untyped,
+      new_deps: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def ensure_same_dependencies(spec, old_deps, new_deps); end
+
+  sig do
+    params(
+      path: T.untyped,
+      action: T.untyped,
+      block: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def filesystem_access(path, action=T.unsafe(nil), &block); end
+
+  sig {returns(T.untyped)}
+  def in_bundle?(); end
+
+  sig do
+    params(
+      major_version: T.untyped,
+      message: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def major_deprecation(major_version, message); end
+
+  sig {returns(T.untyped)}
+  def md5_available?(); end
+
+  sig do
+    params(
+      dep: T.untyped,
+      print_source: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def pretty_dependency(dep, print_source=T.unsafe(nil)); end
+
+  sig {returns(T.untyped)}
+  def print_major_deprecations!(); end
+
+  sig {returns(T.untyped)}
+  def pwd(); end
+
+  sig {returns(T.untyped)}
+  def root(); end
+
+  sig {returns(T.untyped)}
+  def set_bundle_environment(); end
+
+  sig do
+    params(
+      key: T.untyped,
+      value: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def set_env(key, value); end
+
+  sig do
+    params(
+      signal: T.untyped,
+      override: T.untyped,
+      block: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def trap(signal, override=T.unsafe(nil), &block); end
+
+  sig do
+    params(
+      block: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def with_clean_git_env(&block); end
+
+  sig do
+    params(
+      gemfile_path: T.untyped,
+      contents: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def write_to_gemfile(gemfile_path, contents); end
+end
+
+class Bundler::Source
+  sig do
+    params(
+      spec: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def can_lock?(spec); end
+
+  sig {returns(T.untyped)}
+  def dependency_names(); end
+
+  sig do
+    params(
+      dependency_names: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def dependency_names=(dependency_names); end
+
+  sig {returns(T.untyped)}
+  def dependency_names_to_double_check(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def double_check_for(*_); end
+
+  sig do
+    params(
+      spec: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def extension_cache_path(spec); end
+
+  sig do
+    params(
+      other: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def include?(other); end
+
+  sig {returns(T.untyped)}
+  def inspect(); end
+
+  sig {returns(T.untyped)}
+  def path?(); end
+
+  sig {returns(T.untyped)}
+  def unmet_deps(); end
+
+  sig do
+    params(
+      spec: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def version_message(spec); end
+end
+
+class Bundler::Source::Gemspec < Bundler::Source::Path
+  sig {returns(T.untyped)}
+  def as_path_source(); end
+
+  sig {returns(T.untyped)}
+  def gemspec(); end
+
+  sig do
+    params(
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def initialize(options); end
+end
+
+class Bundler::Source::Git < Bundler::Source::Path
+  sig do
+    params(
+      other: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def ==(other); end
+
+  sig {returns(T.untyped)}
+  def allow_git_ops?(); end
+
+  sig {returns(T.untyped)}
+  def app_cache_dirname(); end
+
+  sig {returns(T.untyped)}
+  def branch(); end
+
+  sig do
+    params(
+      spec: T.untyped,
+      custom_path: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def cache(spec, custom_path=T.unsafe(nil)); end
+
+  sig {returns(T.untyped)}
+  def cache_path(); end
+
+  sig do
+    params(
+      other: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def eql?(other); end
+
+  sig {returns(T.untyped)}
+  def extension_dir_name(); end
+
+  sig {returns(T.untyped)}
+  def hash(); end
+
+  sig do
+    params(
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def initialize(options); end
+
+  sig do
+    params(
+      spec: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def install(spec, options=T.unsafe(nil)); end
+
+  sig {returns(T.untyped)}
+  def install_path(); end
+
+  sig {returns(T.untyped)}
+  def load_spec_files(); end
+
+  sig do
+    params(
+      path: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def local_override!(path); end
+
+  sig {returns(T.untyped)}
+  def name(); end
+
+  sig {returns(T.untyped)}
+  def options(); end
+
+  sig {returns(T.untyped)}
+  def path(); end
+
+  sig {returns(T.untyped)}
+  def ref(); end
+
+  sig {returns(T.untyped)}
+  def revision(); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def specs(*_); end
+
+  sig {returns(T.untyped)}
+  def submodules(); end
+
+  sig {returns(T.untyped)}
+  def to_lock(); end
+
+  sig {returns(T.untyped)}
+  def to_s(); end
+
+  sig {returns(T.untyped)}
+  def unlock!(); end
+
+  sig {returns(T.untyped)}
+  def uri(); end
+
+  sig do
+    params(
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.from_lock(options); end
+end
+
+class Bundler::Source::Git::GitCommandError < Bundler::GitError
+  sig do
+    params(
+      command: T.untyped,
+      path: T.untyped,
+      extra_info: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def initialize(command, path=T.unsafe(nil), extra_info=T.unsafe(nil)); end
+end
+
+class Bundler::Source::Git::GitNotAllowedError < Bundler::GitError
+  sig do
+    params(
+      command: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def initialize(command); end
+end
+
+class Bundler::Source::Git::GitNotInstalledError < Bundler::GitError
+  sig {returns(T.untyped)}
+  def initialize(); end
+end
+
+class Bundler::Source::Git::GitProxy
+  sig {returns(T.untyped)}
+  def branch(); end
+
+  sig {returns(T.untyped)}
+  def checkout(); end
+
+  sig do
+    params(
+      commit: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def contains?(commit); end
+
+  sig do
+    params(
+      destination: T.untyped,
+      submodules: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def copy_to(destination, submodules=T.unsafe(nil)); end
+
+  sig {returns(T.untyped)}
+  def full_version(); end
+
+  sig do
+    params(
+      path: T.untyped,
+      uri: T.untyped,
+      ref: T.untyped,
+      revision: T.untyped,
+      git: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def initialize(path, uri, ref, revision=T.unsafe(nil), git=T.unsafe(nil)); end
+
+  sig {returns(T.untyped)}
+  def path(); end
+
+  sig do
+    params(
+      path: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def path=(path); end
+
+  sig {returns(T.untyped)}
+  def ref(); end
+
+  sig do
+    params(
+      ref: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def ref=(ref); end
+
+  sig {returns(T.untyped)}
+  def revision(); end
+
+  sig do
+    params(
+      revision: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def revision=(revision); end
+
+  sig {returns(T.untyped)}
+  def uri(); end
+
+  sig do
+    params(
+      uri: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def uri=(uri); end
+
+  sig {returns(T.untyped)}
+  def version(); end
+end
+
+class Bundler::Source::Git::MissingGitRevisionError < Bundler::GitError
+  sig do
+    params(
+      ref: T.untyped,
+      repo: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def initialize(ref, repo); end
+end
+
+class Bundler::Source::Metadata < Bundler::Source
+  sig do
+    params(
+      other: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def ==(other); end
+
+  sig {returns(T.untyped)}
+  def cached!(); end
+
+  sig do
+    params(
+      other: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def eql?(other); end
+
+  sig {returns(T.untyped)}
+  def hash(); end
+
+  sig do
+    params(
+      spec: T.untyped,
+      _opts: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def install(spec, _opts=T.unsafe(nil)); end
+
+  sig {returns(T.untyped)}
+  def options(); end
+
+  sig {returns(T.untyped)}
+  def remote!(); end
+
+  sig {returns(T.untyped)}
+  def specs(); end
+
+  sig {returns(T.untyped)}
+  def to_s(); end
+
+  sig do
+    params(
+      spec: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def version_message(spec); end
+end
+
+class Bundler::Source::Path < Bundler::Source
+  DEFAULT_GLOB = ::T.let(nil, T.untyped)
+
+  sig do
+    params(
+      other: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def ==(other); end
+
+  sig {returns(T.untyped)}
+  def app_cache_dirname(); end
+
+  sig do
+    params(
+      spec: T.untyped,
+      custom_path: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def cache(spec, custom_path=T.unsafe(nil)); end
+
+  sig {returns(T.untyped)}
+  def cached!(); end
+
+  sig do
+    params(
+      other: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def eql?(other); end
+
+  sig {returns(T.untyped)}
+  def expanded_original_path(); end
+
+  sig {returns(T.untyped)}
+  def hash(); end
+
+  sig do
+    params(
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def initialize(options); end
+
+  sig do
+    params(
+      spec: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def install(spec, options=T.unsafe(nil)); end
+
+  sig do
+    params(
+      _: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def local_specs(*_); end
+
+  sig {returns(T.untyped)}
+  def name(); end
+
+  sig do
+    params(
+      name: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def name=(name); end
+
+  sig {returns(T.untyped)}
+  def options(); end
+
+  sig {returns(T.untyped)}
+  def original_path(); end
+
+  sig {returns(T.untyped)}
+  def path(); end
+
+  sig {returns(T.untyped)}
+  def remote!(); end
+
+  sig {returns(T.untyped)}
+  def root(); end
+
+  sig {returns(T.untyped)}
+  def root_path(); end
+
+  sig {returns(T.untyped)}
+  def specs(); end
+
+  sig {returns(T.untyped)}
+  def to_lock(); end
+
+  sig {returns(T.untyped)}
+  def to_s(); end
+
+  sig {returns(T.untyped)}
+  def version(); end
+
+  sig do
+    params(
+      version: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def version=(version); end
+
+  sig do
+    params(
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.from_lock(options); end
+end
+
+class Bundler::Source::Rubygems < Bundler::Source
+  API_REQUEST_LIMIT = ::T.let(nil, T.untyped)
+  API_REQUEST_SIZE = ::T.let(nil, T.untyped)
+
+  sig do
+    params(
+      other: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def ==(other); end
+
+  sig do
+    params(
+      source: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def add_remote(source); end
+
+  sig {returns(T.untyped)}
+  def api_fetchers(); end
+
+  sig do
+    params(
+      spec: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def builtin_gem?(spec); end
+
+  sig do
+    params(
+      spec: T.untyped,
+      custom_path: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def cache(spec, custom_path=T.unsafe(nil)); end
+
+  sig {returns(T.untyped)}
+  def cache_path(); end
+
+  sig {returns(T.untyped)}
+  def cached!(); end
+
+  sig do
+    params(
+      spec: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def cached_built_in_gem(spec); end
+
+  sig do
+    params(
+      spec: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def cached_gem(spec); end
+
+  sig do
+    params(
+      spec: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def cached_path(spec); end
+
+  sig {returns(T.untyped)}
+  def cached_specs(); end
+
+  sig {returns(T.untyped)}
+  def caches(); end
+
+  sig do
+    params(
+      spec: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def can_lock?(spec); end
+
+  sig {returns(T.untyped)}
+  def credless_remotes(); end
+
+  sig {returns(T.untyped)}
+  def dependency_names_to_double_check(); end
+
+  sig do
+    params(
+      unmet_dependency_names: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def double_check_for(unmet_dependency_names); end
+
+  sig do
+    params(
+      other: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def eql?(other); end
+
+  sig do
+    params(
+      other_remotes: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def equivalent_remotes?(other_remotes); end
+
+  sig do
+    params(
+      spec: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def fetch_gem(spec); end
+
+  sig do
+    params(
+      fetchers: T.untyped,
+      dependency_names: T.untyped,
+      index: T.untyped,
+      override_dupes: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def fetch_names(fetchers, dependency_names, index, override_dupes); end
+
+  sig {returns(T.untyped)}
+  def fetchers(); end
+
+  sig {returns(T.untyped)}
+  def hash(); end
+
+  sig do
+    params(
+      o: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def include?(o); end
+
+  sig do
+    params(
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def initialize(options=T.unsafe(nil)); end
+
+  sig do
+    params(
+      spec: T.untyped,
+      opts: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def install(spec, opts=T.unsafe(nil)); end
+
+  sig do
+    params(
+      spec: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def installed?(spec); end
+
+  sig {returns(T.untyped)}
+  def installed_specs(); end
+
+  sig do
+    params(
+      spec: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def loaded_from(spec); end
+
+  sig {returns(T.untyped)}
+  def name(); end
+
+  sig do
+    params(
+      uri: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def normalize_uri(uri); end
+
+  sig {returns(T.untyped)}
+  def options(); end
+
+  sig {returns(T.untyped)}
+  def remote!(); end
+
+  sig {returns(T.untyped)}
+  def remote_specs(); end
+
+  sig {returns(T.untyped)}
+  def remotes(); end
+
+  sig do
+    params(
+      spec: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def remotes_for_spec(spec); end
+
+  sig do
+    params(
+      remote: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def remove_auth(remote); end
+
+  sig do
+    params(
+      other_remotes: T.untyped,
+      allow_equivalent: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def replace_remotes(other_remotes, allow_equivalent=T.unsafe(nil)); end
+
+  sig {returns(T.untyped)}
+  def requires_sudo?(); end
+
+  sig {returns(T.untyped)}
+  def rubygems_dir(); end
+
+  sig {returns(T.untyped)}
+  def specs(); end
+
+  sig do
+    params(
+      remote: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def suppress_configured_credentials(remote); end
+
+  sig {returns(T.untyped)}
+  def to_lock(); end
+
+  sig {returns(T.untyped)}
+  def to_s(); end
+
+  sig {returns(T.untyped)}
+  def unmet_deps(); end
+
+  sig do
+    params(
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.from_lock(options); end
+end
+
+class Bundler::SourceList
+  sig do
+    params(
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def add_git_source(options=T.unsafe(nil)); end
+
+  sig do
+    params(
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def add_path_source(options=T.unsafe(nil)); end
+
+  sig do
+    params(
+      source: T.untyped,
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def add_plugin_source(source, options=T.unsafe(nil)); end
+
+  sig do
+    params(
+      uri: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def add_rubygems_remote(uri); end
+
+  sig do
+    params(
+      options: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def add_rubygems_source(options=T.unsafe(nil)); end
+
+  sig {returns(T.untyped)}
+  def all_sources(); end
+
+  sig {returns(T.untyped)}
+  def cached!(); end
+
+  sig {returns(T.untyped)}
+  def default_source(); end
+
+  sig do
+    params(
+      source: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def get(source); end
+
+  sig {returns(T.untyped)}
+  def git_sources(); end
+
+  sig {returns(T.untyped)}
+  def global_rubygems_source(); end
+
+  sig do
+    params(
+      uri: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def global_rubygems_source=(uri); end
+
+  sig {returns(T.untyped)}
+  def initialize(); end
+
+  sig {returns(T.untyped)}
+  def lock_sources(); end
+
+  sig {returns(T.untyped)}
+  def metadata_source(); end
+
+  sig {returns(T.untyped)}
+  def path_sources(); end
+
+  sig {returns(T.untyped)}
+  def plugin_sources(); end
+
+  sig {returns(T.untyped)}
+  def remote!(); end
+
+  sig do
+    params(
+      replacement_sources: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def replace_sources!(replacement_sources); end
+
+  sig {returns(T.untyped)}
+  def rubygems_primary_remotes(); end
+
+  sig {returns(T.untyped)}
+  def rubygems_remotes(); end
+
+  sig {returns(T.untyped)}
+  def rubygems_sources(); end
+end
+
+class Bundler::SpecSet
+  include ::TSort
+  include T::Enumerable
+  extend ::Forwardable
+
+  sig do
+    params(
+      args: T.untyped,
+      block: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def <<(*args, &block); end
+
+  sig do
+    params(
+      key: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def [](key); end
+
+  sig do
+    params(
+      key: T.untyped,
+      value: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def []=(key, value); end
+
+  sig do
+    params(
+      args: T.untyped,
+      block: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def add(*args, &block); end
+
+  sig do
+    params(
+      args: T.untyped,
+      block: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def each(*args, &block); end
+
+  sig do
+    params(
+      args: T.untyped,
+      block: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def empty?(*args, &block); end
+
+  sig do
+    params(
+      name: T.untyped,
+      platform: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def find_by_name_and_platform(name, platform); end
+
+  sig do
+    params(
+      dependencies: T.untyped,
+      skip: T.untyped,
+      check: T.untyped,
+      match_current_platform: T.untyped,
+      raise_on_missing: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def for(dependencies, skip=T.unsafe(nil), check=T.unsafe(nil), match_current_platform=T.unsafe(nil), raise_on_missing=T.unsafe(nil)); end
+
+  sig do
+    params(
+      specs: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def initialize(specs); end
+
+  sig do
+    params(
+      args: T.untyped,
+      block: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def length(*args, &block); end
+
+  sig do
+    params(
+      deps: T.untyped,
+      missing_specs: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def materialize(deps, missing_specs=T.unsafe(nil)); end
+
+  sig {returns(T.untyped)}
+  def materialized_for_all_platforms(); end
+
+  sig do
+    params(
+      set: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def merge(set); end
+
+  sig do
+    params(
+      args: T.untyped,
+      block: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def remove(*args, &block); end
+
+  sig do
+    params(
+      args: T.untyped,
+      block: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def size(*args, &block); end
+
+  sig {returns(T.untyped)}
+  def sort!(); end
+
+  sig {returns(T.untyped)}
+  def to_a(); end
+
+  sig {returns(T.untyped)}
+  def to_hash(); end
+
+  sig do
+    params(
+      deps: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def valid_for?(deps); end
+
+  sig do
+    params(
+      spec: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def what_required(spec); end
+end
+
+class Bundler::StubSpecification < Bundler::RemoteSpecification
+  sig {returns(T.untyped)}
+  def activated(); end
+
+  sig do
+    params(
+      activated: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def activated=(activated); end
+
+  sig {returns(T.untyped)}
+  def default_gem(); end
+
+  sig {returns(T.untyped)}
+  def full_gem_path(); end
+
+  sig {returns(T.untyped)}
+  def full_require_paths(); end
+
+  sig {returns(T.untyped)}
+  def ignored(); end
+
+  sig do
+    params(
+      ignored: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def ignored=(ignored); end
+
+  sig {returns(T.untyped)}
+  def load_paths(); end
+
+  sig {returns(T.untyped)}
+  def loaded_from(); end
+
+  sig do
+    params(
+      glob: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def matches_for_glob(glob); end
+
+  sig {returns(T.untyped)}
+  def missing_extensions?(); end
+
+  sig {returns(T.untyped)}
+  def raw_require_paths(); end
+
+  sig do
+    params(
+      source: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def source=(source); end
+
+  sig {returns(T.untyped)}
+  def stub(); end
+
+  sig do
+    params(
+      stub: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def stub=(stub); end
+
+  sig {returns(T.untyped)}
+  def to_yaml(); end
+
+  sig do
+    params(
+      stub: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.from_stub(stub); end
+end
+
+class Bundler::SudoNotPermittedError < Bundler::BundlerError
+  sig {returns(T.untyped)}
+  def status_code(); end
+end
+
+class Bundler::TemporaryResourceError < Bundler::PermissionError
+  sig {returns(T.untyped)}
+  def message(); end
+
+  sig {returns(T.untyped)}
+  def status_code(); end
+end
+
+class Bundler::ThreadCreationError < Bundler::BundlerError
+  sig {returns(T.untyped)}
+  def status_code(); end
+end
+
+module Bundler::UI
+end
+
+class Bundler::UI::RGProxy < Gem::SilentUI
+  sig do
+    params(
+      ui: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def initialize(ui); end
+
+  sig do
+    params(
+      message: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def say(message); end
+end
+
+class Bundler::UI::Silent
+  sig do
+    params(
+      string: T.untyped,
+      color: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def add_color(string, color); end
+
+  sig do
+    params(
+      message: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def ask(message); end
+
+  sig do
+    params(
+      message: T.untyped,
+      newline: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def confirm(message, newline=T.unsafe(nil)); end
+
+  sig do
+    params(
+      message: T.untyped,
+      newline: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def debug(message, newline=T.unsafe(nil)); end
+
+  sig {returns(T.untyped)}
+  def debug?(); end
+
+  sig do
+    params(
+      message: T.untyped,
+      newline: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def error(message, newline=T.unsafe(nil)); end
+
+  sig do
+    params(
+      message: T.untyped,
+      newline: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def info(message, newline=T.unsafe(nil)); end
+
+  sig {returns(T.untyped)}
+  def initialize(); end
+
+  sig do
+    params(
+      name: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def level(name=T.unsafe(nil)); end
+
+  sig do
+    params(
+      name: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def level=(name); end
+
+  sig {returns(T.untyped)}
+  def no?(); end
+
+  sig {returns(T.untyped)}
+  def quiet?(); end
+
+  sig do
+    params(
+      shell: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def shell=(shell); end
+
+  sig {returns(T.untyped)}
+  def silence(); end
+
+  sig do
+    params(
+      message: T.untyped,
+      newline: T.untyped,
+      force: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def trace(message, newline=T.unsafe(nil), force=T.unsafe(nil)); end
+
+  sig {returns(T.untyped)}
+  def unprinted_warnings(); end
+
+  sig do
+    params(
+      message: T.untyped,
+      newline: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def warn(message, newline=T.unsafe(nil)); end
+
+  sig do
+    params(
+      msg: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def yes?(msg); end
+end
+
+module Bundler::URICredentialsFilter
+  sig do
+    params(
+      str_to_filter: T.untyped,
+      uri: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.credential_filtered_string(str_to_filter, uri); end
+
+  sig do
+    params(
+      uri_to_anonymize: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.credential_filtered_uri(uri_to_anonymize); end
+end
+
+class Bundler::VersionConflict < Bundler::BundlerError
+  sig {returns(T.untyped)}
+  def conflicts(); end
+
+  sig do
+    params(
+      conflicts: T.untyped,
+      msg: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def initialize(conflicts, msg=T.unsafe(nil)); end
+
+  sig {returns(T.untyped)}
+  def status_code(); end
+end
+
+class Bundler::VirtualProtocolError < Bundler::BundlerError
+  sig {returns(T.untyped)}
+  def message(); end
+
+  sig {returns(T.untyped)}
+  def status_code(); end
+end
+
+module Bundler::YAMLSerializer
+  ARRAY_REGEX = ::T.let(nil, T.untyped)
+  HASH_REGEX = ::T.let(nil, T.untyped)
+
+  sig do
+    params(
+      hash: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.dump(hash); end
+
+  sig do
+    params(
+      str: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def self.load(str); end
+end
+
+class Bundler::YamlSyntaxError < Bundler::BundlerError
+  sig do
+    params(
+      orig_exception: T.untyped,
+      msg: T.untyped,
+    )
+    .returns(T.untyped)
+  end
+  def initialize(orig_exception, msg); end
+
+  sig {returns(T.untyped)}
+  def orig_exception(); end
+
+  sig {returns(T.untyped)}
+  def status_code(); end
+end
diff --git a/2019/ruby/sorbet/rbi/sorbet-typed/lib/minitest/all/minitest.rbi b/2019/ruby/sorbet/rbi/sorbet-typed/lib/minitest/all/minitest.rbi
new file mode 100644
index 0000000..bb4acec
--- /dev/null
+++ b/2019/ruby/sorbet/rbi/sorbet-typed/lib/minitest/all/minitest.rbi
@@ -0,0 +1,102 @@
+# This file is autogenerated. Do not edit it by hand. Regenerate it with:
+#   srb rbi sorbet-typed
+#
+# If you would like to make changes to this file, great! Please upstream any changes you make here:
+#
+#   https://github.com/sorbet/sorbet-typed/edit/master/lib/minitest/all/minitest.rbi
+#
+# typed: strong
+
+module Minitest
+  class Runnable
+  end
+
+  class Test < Runnable
+    include Minitest::Assertions
+  end
+end
+
+module Minitest::Assertions
+  extend T::Sig
+
+  sig { params(test: T.untyped, msg: T.nilable(String)).returns(TrueClass) }
+  def assert(test, msg = nil); end
+
+  sig do
+    params(
+      exp: BasicObject,
+      msg: T.nilable(String)
+    ).returns(TrueClass)
+  end
+  def assert_empty(exp, msg = nil); end
+
+  sig do
+    params(
+      exp: BasicObject,
+      act: BasicObject,
+      msg: T.nilable(String)
+    ).returns(TrueClass)
+  end
+  def assert_equal(exp, act, msg = nil); end
+
+  sig do
+    params(
+      collection: T::Enumerable[T.untyped],
+      obj: BasicObject,
+      msg: T.nilable(String)
+    ).returns(TrueClass)
+  end
+  def assert_includes(collection, obj, msg = nil); end
+
+  sig do
+    params(
+      obj: BasicObject,
+      msg: T.nilable(String)
+    ).returns(TrueClass)
+  end
+  def assert_nil(obj, msg = nil); end
+
+  sig do
+    params(
+      exp: T.untyped
+    ).returns(TrueClass)
+  end
+  def assert_raises(*exp); end
+
+  sig { params(test: T.untyped, msg: T.nilable(String)).returns(TrueClass) }
+  def refute(test, msg = nil); end
+
+  sig do
+    params(
+      exp: BasicObject,
+      msg: T.nilable(String)
+    ).returns(TrueClass)
+  end
+  def refute_empty(exp, msg = nil); end
+
+  sig do
+    params(
+      exp: BasicObject,
+      act: BasicObject,
+      msg: T.nilable(String)
+    ).returns(TrueClass)
+  end
+  def refute_equal(exp, act, msg = nil); end
+
+  sig do
+    params(
+      collection: T::Enumerable[T.untyped],
+      obj: BasicObject,
+      msg: T.nilable(String)
+    ).returns(TrueClass)
+  end
+  def refute_includes(collection, obj, msg = nil); end
+
+  sig do
+    params(
+      obj: BasicObject,
+      msg: T.nilable(String)
+    ).returns(TrueClass)
+  end
+  def refute_nil(obj, msg = nil); end
+end
diff --git a/2019/ruby/sorbet/rbi/sorbet-typed/lib/ruby/all/gem.rbi b/2019/ruby/sorbet/rbi/sorbet-typed/lib/ruby/all/gem.rbi
new file mode 100644
index 0000000..2f8d981
--- /dev/null
+++ b/2019/ruby/sorbet/rbi/sorbet-typed/lib/ruby/all/gem.rbi
@@ -0,0 +1,4222 @@
+# This file is autogenerated. Do not edit it by hand. Regenerate it with:
+#   srb rbi sorbet-typed
+#
+# If you would like to make changes to this file, great! Please upstream any changes you make here:
+#
+#   https://github.com/sorbet/sorbet-typed/edit/master/lib/ruby/all/gem.rbi
+#
+# typed: strong
+module Gem
+  ConfigMap = T.let(nil, T.untyped)
+  RbConfigPriorities = T.let(nil, T.untyped)
+  RubyGemsPackageVersion = T.let(nil, T.untyped)
+  RubyGemsVersion = T.let(nil, T.untyped)
+  USE_BUNDLER_FOR_GEMDEPS = T.let(nil, T.untyped)
+
+  def self._deprecated_detect_gemdeps(path = T.unsafe(nil)); end
+
+  def self._deprecated_gunzip(data); end
+
+  def self._deprecated_gzip(data); end
+
+  def self._deprecated_inflate(data); end
+
+  def self.activate_bin_path(name, *args); end
+
+  def self.default_ext_dir_for(base_dir); end
+
+  def self.default_gems_use_full_paths?; end
+
+  def self.default_spec_cache_dir; end
+
+  def self.deflate(data); end
+
+  def self.detect_gemdeps(*args, &block); end
+
+  def self.dir; end
+
+  def self.done_installing(&hook); end
+
+  def self.done_installing_hooks; end
+
+  def self.ensure_default_gem_subdirectories(dir = Gem.dir, mode = nil); end
+
+  def self.ensure_gem_subdirectories(dir = Gem.dir, mode = nil); end
+
+  def self.ensure_subdirectories(dir, mode, subdirs); end
+
+  def self.env_requirement(gem_name); end
+
+  def self.extension_api_version; end
+
+  def self.find_files(glob, check_load_path = true); end
+
+  def self.find_files_from_load_path(glob); end
+
+  def self.find_latest_files(glob, check_load_path = T.unsafe(nil)); end
+
+  def self.find_unresolved_default_spec(path); end
+
+  def self.finish_resolve(*_); end
+
+  def self.gemdeps; end
+
+  def self.gunzip(*args, &block); end
+
+  def self.gzip(*args, &block); end
+
+  def self.host; end
+
+  def self.host=(host); end
+
+  def self.inflate(*args, &block); end
+
+  def self.install(name, version = T.unsafe(nil), *options); end
+
+  def self.install_extension_in_lib; end
+
+  def self.latest_rubygems_version; end
+
+  def self.latest_spec_for(name); end
+
+  def self.latest_version_for(name); end
+
+  def self.load_env_plugins; end
+
+  def self.load_path_insert_index; end
+
+  def self.load_plugin_files(plugins); end
+
+  def self.load_plugins; end
+
+  def self.load_yaml; end
+
+  def self.loaded_specs; end
+
+  def self.location_of_caller(depth = T.unsafe(nil)); end
+
+  def self.marshal_version; end
+
+  def self.needs; end
+
+  def self.operating_system_defaults; end
+
+  def self.path; end
+
+  def self.path_separator; end
+
+  def self.paths; end
+
+  def self.paths=(env); end
+
+  def self.platform_defaults; end
+
+  def self.platforms; end
+
+  def self.platforms=(platforms); end
+
+  def self.post_build(&hook); end
+
+  def self.post_build_hooks; end
+
+  def self.post_install(&hook); end
+
+  def self.post_install_hooks; end
+
+  def self.post_reset(&hook); end
+
+  def self.post_reset_hooks; end
+
+  def self.post_uninstall(&hook); end
+
+  def self.post_uninstall_hooks; end
+
+  def self.pre_install(&hook); end
+
+  def self.pre_install_hooks; end
+
+  def self.pre_reset(&hook); end
+
+  def self.pre_reset_hooks; end
+
+  def self.pre_uninstall(&hook); end
+
+  def self.pre_uninstall_hooks; end
+
+  def self.prefix; end
+
+  def self.read_binary(path); end
+
+  def self.refresh; end
+
+  def self.register_default_spec(spec); end
+
+  def self.remove_unresolved_default_spec(spec); end
+
+  def self.ruby; end
+
+  def self.ruby_api_version; end
+
+  def self.ruby_engine; end
+
+  def self.ruby_version; end
+
+  def self.rubygems_version; end
+
+  def self.sources; end
+
+  def self.sources=(new_sources); end
+
+  def self.spec_cache_dir; end
+
+  def self.suffix_pattern; end
+
+  def self.suffixes; end
+
+  def self.time(msg, width = T.unsafe(nil), display = T.unsafe(nil)); end
+
+  def self.try_activate(path); end
+
+  def self.ui; end
+
+  def self.use_gemdeps(path = T.unsafe(nil)); end
+
+  def self.use_paths(home, *paths); end
+
+  def self.user_dir; end
+
+  def self.user_home; end
+
+  def self.vendor_dir; end
+
+  def self.win_platform?; end
+
+  def self.write_binary(path, data); end
+
+  class AvailableSet
+    include Enumerable
+    Elem = type_member(fixed: T.untyped)
+
+    def <<(o); end
+
+    def add(spec, source); end
+
+    def all_specs; end
+
+    def each(&blk); end
+
+    def each_spec; end
+
+    def empty?; end
+
+    def find_all(req); end
+
+    def inject_into_list(dep_list); end
+
+    def match_platform!; end
+
+    def pick_best!; end
+
+    def prefetch(reqs); end
+
+    def remote; end
+
+    def remote=(remote); end
+
+    def remove_installed!(dep); end
+
+    def set; end
+
+    def size; end
+
+    def sorted; end
+
+    def source_for(spec); end
+
+    def to_request_set(development = T.unsafe(nil)); end
+
+    class Tuple
+      def source; end
+
+      def source=(_); end
+
+      def spec; end
+
+      def spec=(_); end
+
+      def self.[](*_); end
+
+      def self.members; end
+    end
+  end
+
+  class BasicSpecification
+    def activated?; end
+
+    def base_dir; end
+
+    def base_dir=(base_dir); end
+
+    def contains_requirable_file?(file); end
+
+    def datadir; end
+
+    def default_gem?; end
+
+    def extension_dir; end
+
+    def extension_dir=(extension_dir); end
+
+    def extensions_dir; end
+
+    def full_gem_path; end
+
+    def full_gem_path=(full_gem_path); end
+
+    def full_name; end
+
+    def full_require_paths; end
+
+    def gem_build_complete_path; end
+
+    def gem_dir; end
+
+    def gems_dir; end
+
+    def ignored=(ignored); end
+
+    def internal_init; end
+
+    def lib_dirs_glob; end
+
+    def loaded_from; end
+
+    def loaded_from=(loaded_from); end
+
+    def matches_for_glob(glob); end
+
+    def name; end
+
+    def platform; end
+
+    def raw_require_paths; end
+
+    def require_paths; end
+
+    def source_paths; end
+
+    def stubbed?; end
+
+    def this; end
+
+    def to_fullpath(path); end
+
+    def to_spec; end
+
+    def version; end
+
+    def self.default_specifications_dir; end
+  end
+
+  module BundlerVersionFinder
+    def self.bundler_version; end
+
+    def self.bundler_version_with_reason; end
+
+    def self.compatible?(spec); end
+
+    def self.filter!(specs); end
+
+    def self.missing_version_message; end
+  end
+
+  class Command
+    include Gem::UserInteraction
+    include Gem::DefaultUserInteraction
+    include Gem::Text
+    HELP = T.let(nil, T.untyped)
+
+    def add_extra_args(args); end
+
+    def add_option(*opts, &handler); end
+
+    def arguments; end
+
+    def begins?(long, short); end
+
+    def command; end
+
+    def defaults; end
+
+    def defaults=(defaults); end
+
+    def defaults_str; end
+
+    def description; end
+
+    def execute; end
+
+    def get_all_gem_names; end
+
+    def get_all_gem_names_and_versions; end
+
+    def get_one_gem_name; end
+
+    def get_one_optional_argument; end
+
+    def handle_options(args); end
+
+    def handles?(args); end
+
+    def initialize(command, summary = T.unsafe(nil), defaults = T.unsafe(nil)); end
+
+    def invoke(*args); end
+
+    def invoke_with_build_args(args, build_args); end
+
+    def merge_options(new_options); end
+
+    def options; end
+
+    def program_name; end
+
+    def program_name=(program_name); end
+
+    def remove_option(name); end
+
+    def show_help; end
+
+    def show_lookup_failure(gem_name, version, errors, domain, required_by = T.unsafe(nil)); end
+
+    def summary; end
+
+    def summary=(summary); end
+
+    def usage; end
+
+    def when_invoked(&block); end
+
+    def self.add_common_option(*args, &handler); end
+
+    def self.add_specific_extra_args(cmd, args); end
+
+    def self.build_args; end
+
+    def self.build_args=(value); end
+
+    def self.common_options; end
+
+    def self.extra_args; end
+
+    def self.extra_args=(value); end
+
+    def self.specific_extra_args(cmd); end
+
+    def self.specific_extra_args_hash; end
+
+    def clean_text(text); end
+
+    def format_text(text, wrap, indent = T.unsafe(nil)); end
+
+    def levenshtein_distance(str1, str2); end
+
+    def min3(a, b, c); end
+
+    def truncate_text(text, description, max_length = T.unsafe(nil)); end
+
+    def ui; end
+
+    def ui=(new_ui); end
+
+    def use_ui(new_ui, &block); end
+
+    def alert(statement, question = T.unsafe(nil)); end
+
+    def alert_error(statement, question = T.unsafe(nil)); end
+
+    def alert_warning(statement, question = T.unsafe(nil)); end
+
+    def ask(question); end
+
+    def ask_for_password(prompt); end
+
+    def ask_yes_no(question, default = T.unsafe(nil)); end
+
+    def choose_from_list(question, list); end
+
+    def say(statement = T.unsafe(nil)); end
+
+    def terminate_interaction(exit_code = T.unsafe(nil)); end
+
+    def verbose(msg = T.unsafe(nil)); end
+  end
+
+  module Commands
+  end
+
+  class ConfigFile
+    include Gem::UserInteraction
+    include Gem::DefaultUserInteraction
+    include Gem::Text
+    DEFAULT_BACKTRACE = T.let(nil, T.untyped)
+    DEFAULT_BULK_THRESHOLD = T.let(nil, T.untyped)
+    DEFAULT_CERT_EXPIRATION_LENGTH_DAYS = T.let(nil, T.untyped)
+    DEFAULT_CONCURRENT_DOWNLOADS = T.let(nil, T.untyped)
+    DEFAULT_UPDATE_SOURCES = T.let(nil, T.untyped)
+    DEFAULT_VERBOSITY = T.let(nil, T.untyped)
+    OPERATING_SYSTEM_DEFAULTS = T.let(nil, T.untyped)
+    PLATFORM_DEFAULTS = T.let(nil, T.untyped)
+    SYSTEM_CONFIG_PATH = T.let(nil, T.untyped)
+    SYSTEM_WIDE_CONFIG_FILE = T.let(nil, T.untyped)
+
+    def ==(other); end
+
+    def [](key); end
+
+    def []=(key, value); end
+
+    def api_keys; end
+
+    def args; end
+
+    def backtrace; end
+
+    def backtrace=(backtrace); end
+
+    def bulk_threshold; end
+
+    def bulk_threshold=(bulk_threshold); end
+
+    def cert_expiration_length_days; end
+
+    def cert_expiration_length_days=(cert_expiration_length_days); end
+
+    def check_credentials_permissions; end
+
+    def concurrent_downloads; end
+
+    def concurrent_downloads=(concurrent_downloads); end
+
+    def config_file_name; end
+
+    def credentials_path; end
+
+    def disable_default_gem_server; end
+
+    def disable_default_gem_server=(disable_default_gem_server); end
+
+    def each(&block); end
+
+    def handle_arguments(arg_list); end
+
+    def home; end
+
+    def home=(home); end
+
+    def initialize(args); end
+
+    def load_api_keys; end
+
+    def load_file(filename); end
+
+    def path; end
+
+    def path=(path); end
+
+    def really_verbose; end
+
+    def rubygems_api_key; end
+
+    def rubygems_api_key=(api_key); end
+
+    def set_api_key(host, api_key); end
+
+    def sources; end
+
+    def sources=(sources); end
+
+    def ssl_ca_cert; end
+
+    def ssl_ca_cert=(ssl_ca_cert); end
+
+    def ssl_client_cert; end
+
+    def ssl_verify_mode; end
+
+    def to_yaml; end
+
+    def unset_api_key!; end
+
+    def update_sources; end
+
+    def update_sources=(update_sources); end
+
+    def verbose; end
+
+    def verbose=(verbose); end
+
+    def write; end
+
+    def clean_text(text); end
+
+    def format_text(text, wrap, indent = T.unsafe(nil)); end
+
+    def levenshtein_distance(str1, str2); end
+
+    def min3(a, b, c); end
+
+    def truncate_text(text, description, max_length = T.unsafe(nil)); end
+
+    def ui; end
+
+    def ui=(new_ui); end
+
+    def use_ui(new_ui, &block); end
+
+    def alert(statement, question = T.unsafe(nil)); end
+
+    def alert_error(statement, question = T.unsafe(nil)); end
+
+    def alert_warning(statement, question = T.unsafe(nil)); end
+
+    def ask(question); end
+
+    def ask_for_password(prompt); end
+
+    def ask_yes_no(question, default = T.unsafe(nil)); end
+
+    def choose_from_list(question, list); end
+
+    def say(statement = T.unsafe(nil)); end
+
+    def terminate_interaction(exit_code = T.unsafe(nil)); end
+  end
+
+  class ConflictError
+    def conflicts; end
+
+    def initialize(target, conflicts); end
+
+    def target; end
+  end
+
+  class ConsoleUI
+    def initialize; end
+  end
+
+  module DefaultUserInteraction
+    include Gem::Text
+
+    def ui; end
+
+    def ui=(new_ui); end
+
+    def use_ui(new_ui, &block); end
+
+    def self.ui; end
+
+    def self.ui=(new_ui); end
+
+    def self.use_ui(new_ui); end
+
+    def clean_text(text); end
+
+    def format_text(text, wrap, indent = T.unsafe(nil)); end
+
+    def levenshtein_distance(str1, str2); end
+
+    def min3(a, b, c); end
+
+    def truncate_text(text, description, max_length = T.unsafe(nil)); end
+  end
+
+  class Dependency
+    def ==(other); end
+
+    def ===(other); end
+
+    def =~(other); end
+
+    def all_sources; end
+
+    def all_sources=(all_sources); end
+
+    def encode_with(coder); end
+
+    def eql?(other); end
+
+    def groups; end
+
+    def groups=(groups); end
+
+    def initialize(name, *requirements); end
+
+    def latest_version?; end
+
+    def match?(obj, version = T.unsafe(nil), allow_prerelease = T.unsafe(nil)); end
+
+    def matches_spec?(spec); end
+
+    def matching_specs(platform_only = T.unsafe(nil)); end
+
+    def merge(other); end
+
+    def name; end
+
+    def name=(name); end
+
+    def prerelease=(prerelease); end
+
+    def prerelease?; end
+
+    def pretty_print(q); end
+
+    def requirement; end
+
+    def requirements_list; end
+
+    def runtime?; end
+
+    def source; end
+
+    def source=(source); end
+
+    def specific?; end
+
+    def to_lock; end
+
+    def to_spec; end
+
+    def to_specs; end
+
+    def to_yaml_properties; end
+
+    def type; end
+  end
+
+  class DependencyInstaller
+    include Gem::UserInteraction
+    include Gem::DefaultUserInteraction
+    include Gem::Text
+    extend Gem::Deprecate
+    DEFAULT_OPTIONS = T.let(nil, T.untyped)
+
+    def _deprecated_add_found_dependencies(to_do, dependency_list); end
+
+    def _deprecated_gather_dependencies; end
+
+    def add_found_dependencies(*args, &block); end
+
+    def available_set_for(dep_or_name, version); end
+
+    def consider_local?; end
+
+    def consider_remote?; end
+
+    def document; end
+
+    def errors; end
+
+    def find_gems_with_sources(dep, best_only = T.unsafe(nil)); end
+
+    def find_spec_by_name_and_version(gem_name, version = T.unsafe(nil), prerelease = T.unsafe(nil)); end
+
+    def gather_dependencies(*args, &block); end
+
+    def in_background(what); end
+
+    def initialize(options = T.unsafe(nil)); end
+
+    def install(dep_or_name, version = T.unsafe(nil)); end
+
+    def install_development_deps; end
+
+    def installed_gems; end
+
+    def resolve_dependencies(dep_or_name, version); end
+
+    def clean_text(text); end
+
+    def format_text(text, wrap, indent = T.unsafe(nil)); end
+
+    def levenshtein_distance(str1, str2); end
+
+    def min3(a, b, c); end
+
+    def truncate_text(text, description, max_length = T.unsafe(nil)); end
+
+    def ui; end
+
+    def ui=(new_ui); end
+
+    def use_ui(new_ui, &block); end
+
+    def alert(statement, question = T.unsafe(nil)); end
+
+    def alert_error(statement, question = T.unsafe(nil)); end
+
+    def alert_warning(statement, question = T.unsafe(nil)); end
+
+    def ask(question); end
+
+    def ask_for_password(prompt); end
+
+    def ask_yes_no(question, default = T.unsafe(nil)); end
+
+    def choose_from_list(question, list); end
+
+    def say(statement = T.unsafe(nil)); end
+
+    def terminate_interaction(exit_code = T.unsafe(nil)); end
+
+    def verbose(msg = T.unsafe(nil)); end
+  end
+
+  class DependencyList
+    include Enumerable
+    include TSort
+    Elem = type_member(fixed: T.untyped)
+
+    def add(*gemspecs); end
+
+    def clear; end
+
+    def dependency_order; end
+
+    def development; end
+
+    def development=(development); end
+
+    def each(&block); end
+
+    def find_name(full_name); end
+
+    def initialize(development = T.unsafe(nil)); end
+
+    def ok?; end
+
+    def ok_to_remove?(full_name, check_dev = T.unsafe(nil)); end
+
+    def remove_by_name(full_name); end
+
+    def remove_specs_unsatisfied_by(dependencies); end
+
+    def spec_predecessors; end
+
+    def specs; end
+
+    def tsort_each_node(&block); end
+
+    def why_not_ok?(quick = T.unsafe(nil)); end
+
+    def self.from_specs; end
+  end
+
+  class DependencyResolutionError
+    def conflict; end
+
+    def conflicting_dependencies; end
+
+    def initialize(conflict); end
+  end
+
+  module Deprecate
+    def self.deprecate(name, repl, year, month); end
+
+    def self.skip; end
+
+    def self.skip=(v); end
+
+    def self.skip_during; end
+  end
+
+  class Exception
+    extend Gem::Deprecate
+
+    def _deprecated_source_exception; end
+
+    def source_exception(*args, &block); end
+
+    def source_exception=(source_exception); end
+  end
+
+  module Ext
+    class BuildError
+    end
+
+    class Builder
+      include Gem::UserInteraction
+      include Gem::DefaultUserInteraction
+      include Gem::Text
+      CHDIR_MONITOR = T.let(nil, T.untyped)
+      CHDIR_MUTEX = T.let(nil, T.untyped)
+
+      def build_args; end
+
+      def build_args=(build_args); end
+
+      def build_error(build_dir, output, backtrace = T.unsafe(nil)); end
+
+      def build_extension(extension, dest_path); end
+
+      def build_extensions; end
+
+      def builder_for(extension); end
+
+      def initialize(spec, build_args = T.unsafe(nil)); end
+
+      def write_gem_make_out(output); end
+
+      def self.class_name; end
+
+      def self.make(dest_path, results); end
+
+      def self.redirector; end
+
+      def self.run(command, results, command_name = T.unsafe(nil)); end
+
+      def clean_text(text); end
+
+      def format_text(text, wrap, indent = T.unsafe(nil)); end
+
+      def levenshtein_distance(str1, str2); end
+
+      def min3(a, b, c); end
+
+      def truncate_text(text, description, max_length = T.unsafe(nil)); end
+
+      def ui; end
+
+      def ui=(new_ui); end
+
+      def use_ui(new_ui, &block); end
+
+      def alert(statement, question = T.unsafe(nil)); end
+
+      def alert_error(statement, question = T.unsafe(nil)); end
+
+      def alert_warning(statement, question = T.unsafe(nil)); end
+
+      def ask(question); end
+
+      def ask_for_password(prompt); end
+
+      def ask_yes_no(question, default = T.unsafe(nil)); end
+
+      def choose_from_list(question, list); end
+
+      def say(statement = T.unsafe(nil)); end
+
+      def terminate_interaction(exit_code = T.unsafe(nil)); end
+
+      def verbose(msg = T.unsafe(nil)); end
+    end
+
+    class CmakeBuilder
+      def self.build(extension, dest_path, results, args = T.unsafe(nil), lib_dir = T.unsafe(nil)); end
+    end
+
+    class ConfigureBuilder
+      def self.build(extension, dest_path, results, args = T.unsafe(nil), lib_dir = T.unsafe(nil)); end
+    end
+
+    class ExtConfBuilder
+      def self.build(extension, dest_path, results, args = T.unsafe(nil), lib_dir = T.unsafe(nil)); end
+
+      def self.get_relative_path(path); end
+    end
+
+    class RakeBuilder
+      def self.build(extension, dest_path, results, args = T.unsafe(nil), lib_dir = T.unsafe(nil)); end
+    end
+  end
+
+  class FilePermissionError
+    def directory; end
+
+    def initialize(directory); end
+  end
+
+  class FormatException
+    def file_path; end
+
+    def file_path=(file_path); end
+  end
+
+  class GemNotInHomeException
+    def spec; end
+
+    def spec=(spec); end
+  end
+
+  class ImpossibleDependenciesError
+    def build_message; end
+
+    def conflicts; end
+
+    def dependency; end
+
+    def initialize(request, conflicts); end
+
+    def request; end
+  end
+
+  class Installer
+    include Gem::UserInteraction
+    include Gem::DefaultUserInteraction
+    include Gem::Text
+    extend Gem::Deprecate
+    ENV_PATHS = T.let(nil, T.untyped)
+
+    def _deprecated_extension_build_error(build_dir, output, backtrace = T.unsafe(nil)); end
+
+    def app_script_text(bin_file_name); end
+
+    def bin_dir; end
+
+    def build_extensions; end
+
+    def build_root; end
+
+    def check_executable_overwrite(filename); end
+
+    def check_that_user_bin_dir_is_in_path; end
+
+    def default_spec_file; end
+
+    def dir; end
+
+    def ensure_dependencies_met; end
+
+    def ensure_dependency(spec, dependency); end
+
+    def ensure_loadable_spec; end
+
+    def ensure_required_ruby_version_met; end
+
+    def ensure_required_rubygems_version_met; end
+
+    def extension_build_error(*args, &block); end
+
+    def extract_bin; end
+
+    def extract_files; end
+
+    def formatted_program_filename(filename); end
+
+    def gem; end
+
+    def gem_dir; end
+
+    def gem_home; end
+
+    def generate_bin; end
+
+    def generate_bin_script(filename, bindir); end
+
+    def generate_bin_symlink(filename, bindir); end
+
+    def generate_windows_script(filename, bindir); end
+
+    def initialize(package, options = T.unsafe(nil)); end
+
+    def install; end
+
+    def installation_satisfies_dependency?(dependency); end
+
+    def installed_specs; end
+
+    def options; end
+
+    def pre_install_checks; end
+
+    def process_options; end
+
+    def run_post_build_hooks; end
+
+    def run_post_install_hooks; end
+
+    def run_pre_install_hooks; end
+
+    def shebang(bin_file_name); end
+
+    def spec; end
+
+    def spec_file; end
+
+    def unpack(directory); end
+
+    def verify_gem_home(unpack = T.unsafe(nil)); end
+
+    def verify_spec; end
+
+    def windows_stub_script(bindir, bin_file_name); end
+
+    def write_build_info_file; end
+
+    def write_cache_file; end
+
+    def write_default_spec; end
+
+    def write_spec; end
+
+    def self.at(path, options = T.unsafe(nil)); end
+
+    def self.exec_format; end
+
+    def self.exec_format=(exec_format); end
+
+    def self.for_spec(spec, options = T.unsafe(nil)); end
+
+    def self.install_lock; end
+
+    def self.path_warning; end
+
+    def self.path_warning=(path_warning); end
+
+    def clean_text(text); end
+
+    def format_text(text, wrap, indent = T.unsafe(nil)); end
+
+    def levenshtein_distance(str1, str2); end
+
+    def min3(a, b, c); end
+
+    def truncate_text(text, description, max_length = T.unsafe(nil)); end
+
+    def ui; end
+
+    def ui=(new_ui); end
+
+    def use_ui(new_ui, &block); end
+
+    def alert(statement, question = T.unsafe(nil)); end
+
+    def alert_error(statement, question = T.unsafe(nil)); end
+
+    def alert_warning(statement, question = T.unsafe(nil)); end
+
+    def ask(question); end
+
+    def ask_for_password(prompt); end
+
+    def ask_yes_no(question, default = T.unsafe(nil)); end
+
+    def choose_from_list(question, list); end
+
+    def say(statement = T.unsafe(nil)); end
+
+    def terminate_interaction(exit_code = T.unsafe(nil)); end
+
+    def verbose(msg = T.unsafe(nil)); end
+  end
+
+  class Licenses
+    extend Gem::Text
+    EXCEPTION_IDENTIFIERS = T.let(nil, T.untyped)
+    LICENSE_IDENTIFIERS = T.let(nil, T.untyped)
+    NONSTANDARD = T.let(nil, T.untyped)
+    REGEXP = T.let(nil, T.untyped)
+
+    def self.match?(license); end
+
+    def self.suggestions(license); end
+
+    def self.clean_text(text); end
+
+    def self.format_text(text, wrap, indent = T.unsafe(nil)); end
+
+    def self.levenshtein_distance(str1, str2); end
+
+    def self.min3(a, b, c); end
+
+    def self.truncate_text(text, description, max_length = T.unsafe(nil)); end
+  end
+
+  class List
+    def each(&blk); end
+
+    def initialize(value = T.unsafe(nil), tail = T.unsafe(nil)); end
+
+    def prepend(value); end
+
+    def pretty_print(q); end
+
+    def tail; end
+
+    def tail=(tail); end
+
+    def to_a; end
+
+    def value; end
+
+    def value=(value); end
+
+    def self.prepend(list, value); end
+  end
+
+  class LoadError
+    def name; end
+
+    def name=(name); end
+
+    def requirement; end
+
+    def requirement=(requirement); end
+  end
+
+  class MissingSpecError
+    def initialize(name, requirement); end
+  end
+
+  class MissingSpecVersionError
+    def initialize(name, requirement, specs); end
+
+    def specs; end
+  end
+
+  class NameTuple
+    include Comparable
+
+    def ==(other); end
+
+    def eql?(other); end
+
+    def full_name; end
+
+    def initialize(name, version, platform = T.unsafe(nil)); end
+
+    def match_platform?; end
+
+    def name; end
+
+    def platform; end
+
+    def prerelease?; end
+
+    def spec_name; end
+
+    def to_a; end
+
+    def version; end
+
+    def self.from_list(list); end
+
+    def self.null; end
+
+    def self.to_basic(list); end
+  end
+
+  class Package
+    include Gem::UserInteraction
+    include Gem::DefaultUserInteraction
+    include Gem::Text
+
+    def add_checksums(tar); end
+
+    def add_contents(tar); end
+
+    def add_files(tar); end
+
+    def add_metadata(tar); end
+
+    def build(skip_validation = T.unsafe(nil), strict_validation = T.unsafe(nil)); end
+
+    def build_time; end
+
+    def build_time=(build_time); end
+
+    def checksums; end
+
+    def contents; end
+
+    def copy_to(path); end
+
+    def data_mode; end
+
+    def data_mode=(data_mode); end
+
+    def digest(entry); end
+
+    def dir_mode; end
+
+    def dir_mode=(dir_mode); end
+
+    def extract_files(destination_dir, pattern = T.unsafe(nil)); end
+
+    def extract_tar_gz(io, destination_dir, pattern = T.unsafe(nil)); end
+
+    def file_mode(mode); end
+
+    def files; end
+
+    def gzip_to(io); end
+
+    def initialize(gem, security_policy); end
+
+    def install_location(filename, destination_dir); end
+
+    def load_spec(entry); end
+
+    def mkdir_p_safe(mkdir, mkdir_options, destination_dir, file_name); end
+
+    def normalize_path(pathname); end
+
+    def open_tar_gz(io); end
+
+    def prog_mode; end
+
+    def prog_mode=(prog_mode); end
+
+    def read_checksums(gem); end
+
+    def security_policy; end
+
+    def security_policy=(security_policy); end
+
+    def setup_signer(signer_options: T.unsafe(nil)); end
+
+    def spec; end
+
+    def spec=(spec); end
+
+    def verify; end
+
+    def verify_checksums(digests, checksums); end
+
+    def verify_entry(entry); end
+
+    def verify_files(gem); end
+
+    def verify_gz(entry); end
+
+    def self.build(spec, skip_validation = T.unsafe(nil), strict_validation = T.unsafe(nil), file_name = T.unsafe(nil)); end
+
+    def self.new(gem, security_policy = T.unsafe(nil)); end
+
+    def clean_text(text); end
+
+    def format_text(text, wrap, indent = T.unsafe(nil)); end
+
+    def levenshtein_distance(str1, str2); end
+
+    def min3(a, b, c); end
+
+    def truncate_text(text, description, max_length = T.unsafe(nil)); end
+
+    def ui; end
+
+    def ui=(new_ui); end
+
+    def use_ui(new_ui, &block); end
+
+    def alert(statement, question = T.unsafe(nil)); end
+
+    def alert_error(statement, question = T.unsafe(nil)); end
+
+    def alert_warning(statement, question = T.unsafe(nil)); end
+
+    def ask(question); end
+
+    def ask_for_password(prompt); end
+
+    def ask_yes_no(question, default = T.unsafe(nil)); end
+
+    def choose_from_list(question, list); end
+
+    def say(statement = T.unsafe(nil)); end
+
+    def terminate_interaction(exit_code = T.unsafe(nil)); end
+
+    def verbose(msg = T.unsafe(nil)); end
+
+    class DigestIO
+      def digests; end
+
+      def initialize(io, digests); end
+
+      def write(data); end
+
+      def self.wrap(io, digests); end
+    end
+
+    class Error
+    end
+
+    class FileSource
+      def initialize(path); end
+
+      def path; end
+
+      def present?; end
+
+      def start; end
+
+      def with_read_io(&block); end
+
+      def with_write_io(&block); end
+    end
+
+    class FormatError
+      def initialize(message, source = T.unsafe(nil)); end
+
+      def path; end
+    end
+
+    class IOSource
+      def initialize(io); end
+
+      def io; end
+
+      def path; end
+
+      def present?; end
+
+      def start; end
+
+      def with_read_io; end
+
+      def with_write_io; end
+    end
+
+    class NonSeekableIO
+    end
+
+    class Old
+      def extract_files(destination_dir); end
+
+      def file_list(io); end
+
+      def read_until_dashes(io); end
+
+      def skip_ruby(io); end
+    end
+
+    class PathError
+      def initialize(destination, destination_dir); end
+    end
+
+    class Source
+    end
+
+    class TarHeader
+      EMPTY_HEADER = T.let(nil, T.untyped)
+      FIELDS = T.let(nil, T.untyped)
+      PACK_FORMAT = T.let(nil, T.untyped)
+      UNPACK_FORMAT = T.let(nil, T.untyped)
+
+      def ==(other); end
+
+      def checksum; end
+
+      def devmajor; end
+
+      def devminor; end
+
+      def empty?; end
+
+      def gid; end
+
+      def gname; end
+
+      def initialize(vals); end
+
+      def linkname; end
+
+      def magic; end
+
+      def mode; end
+
+      def mtime; end
+
+      def name; end
+
+      def prefix; end
+
+      def size; end
+
+      def typeflag; end
+
+      def uid; end
+
+      def uname; end
+
+      def update_checksum; end
+
+      def version; end
+
+      def self.from(stream); end
+
+      def self.strict_oct(str); end
+    end
+
+    class TarInvalidError
+    end
+
+    class TarReader
+      include Enumerable
+      Elem = type_member(fixed: T.untyped)
+
+      def close; end
+
+      def each(&blk); end
+
+      def each_entry; end
+
+      def initialize(io); end
+
+      def rewind; end
+
+      def seek(name); end
+
+      def self.new(io); end
+
+      class Entry
+        def bytes_read; end
+
+        def check_closed; end
+
+        def close; end
+
+        def closed?; end
+
+        def directory?; end
+
+        def eof?; end
+
+        def file?; end
+
+        def full_name; end
+
+        def getc; end
+
+        def header; end
+
+        def initialize(header, io); end
+
+        def length; end
+
+        def pos; end
+
+        def read(len = T.unsafe(nil)); end
+
+        def readpartial(maxlen = T.unsafe(nil), outbuf = T.unsafe(nil)); end
+
+        def rewind; end
+
+        def size; end
+
+        def symlink?; end
+      end
+
+      class UnexpectedEOF
+      end
+    end
+
+    class TarWriter
+      def add_file(name, mode); end
+
+      def add_file_digest(name, mode, digest_algorithms); end
+
+      def add_file_signed(name, mode, signer); end
+
+      def add_file_simple(name, mode, size); end
+
+      def add_symlink(name, target, mode); end
+
+      def check_closed; end
+
+      def close; end
+
+      def closed?; end
+
+      def flush; end
+
+      def initialize(io); end
+
+      def mkdir(name, mode); end
+
+      def split_name(name); end
+
+      def self.new(io); end
+
+      class BoundedStream
+        def initialize(io, limit); end
+
+        def limit; end
+
+        def write(data); end
+
+        def written; end
+      end
+
+      class FileOverflow
+      end
+
+      class RestrictedStream
+        def initialize(io); end
+
+        def write(data); end
+      end
+    end
+
+    class TooLongFileName
+    end
+  end
+
+  class PathSupport
+    def home; end
+
+    def initialize(env); end
+
+    def path; end
+
+    def spec_cache_dir; end
+  end
+
+  class Platform
+    JAVA = T.let(nil, T.untyped)
+    MINGW = T.let(nil, T.untyped)
+    MSWIN = T.let(nil, T.untyped)
+    MSWIN64 = T.let(nil, T.untyped)
+    X64_MINGW = T.let(nil, T.untyped)
+
+    def ==(other); end
+
+    def ===(other); end
+
+    def =~(other); end
+
+    def cpu; end
+
+    def cpu=(cpu); end
+
+    def eql?(other); end
+
+    def initialize(arch); end
+
+    def os; end
+
+    def os=(os); end
+
+    def to_a; end
+
+    def version; end
+
+    def version=(version); end
+
+    def self.installable?(spec); end
+
+    def self.local; end
+
+    def self.match(platform); end
+
+    def self.new(arch); end
+  end
+
+  class PlatformMismatch
+    def add_platform(platform); end
+
+    def initialize(name, version); end
+
+    def name; end
+
+    def platforms; end
+
+    def version; end
+
+    def wordy; end
+  end
+
+  class RemoteFetcher
+    include Gem::UserInteraction
+    include Gem::DefaultUserInteraction
+    include Gem::Text
+    BASE64_URI_TRANSLATE = T.let(nil, T.untyped)
+
+    def cache_update_path(uri, path = T.unsafe(nil), update = T.unsafe(nil)); end
+
+    def close_all; end
+
+    def correct_for_windows_path(path); end
+
+    def download(spec, source_uri, install_dir = T.unsafe(nil)); end
+
+    def download_to_cache(dependency); end
+
+    def fetch_file(uri, *_); end
+
+    def fetch_http(uri, last_modified = T.unsafe(nil), head = T.unsafe(nil), depth = T.unsafe(nil)); end
+
+    def fetch_https(uri, last_modified = T.unsafe(nil), head = T.unsafe(nil), depth = T.unsafe(nil)); end
+
+    def fetch_path(uri, mtime = T.unsafe(nil), head = T.unsafe(nil)); end
+
+    def fetch_s3(uri, mtime = T.unsafe(nil), head = T.unsafe(nil)); end
+
+    def fetch_size(uri); end
+
+    def headers; end
+
+    def headers=(headers); end
+
+    def https?(uri); end
+
+    def initialize(proxy = T.unsafe(nil), dns = T.unsafe(nil), headers = T.unsafe(nil)); end
+
+    def request(uri, request_class, last_modified = T.unsafe(nil)); end
+
+    def s3_expiration; end
+
+    def sign_s3_url(uri, expiration = T.unsafe(nil)); end
+
+    def self.fetcher; end
+
+    def clean_text(text); end
+
+    def format_text(text, wrap, indent = T.unsafe(nil)); end
+
+    def levenshtein_distance(str1, str2); end
+
+    def min3(a, b, c); end
+
+    def truncate_text(text, description, max_length = T.unsafe(nil)); end
+
+    def ui; end
+
+    def ui=(new_ui); end
+
+    def use_ui(new_ui, &block); end
+
+    def alert(statement, question = T.unsafe(nil)); end
+
+    def alert_error(statement, question = T.unsafe(nil)); end
+
+    def alert_warning(statement, question = T.unsafe(nil)); end
+
+    def ask(question); end
+
+    def ask_for_password(prompt); end
+
+    def ask_yes_no(question, default = T.unsafe(nil)); end
+
+    def choose_from_list(question, list); end
+
+    def say(statement = T.unsafe(nil)); end
+
+    def terminate_interaction(exit_code = T.unsafe(nil)); end
+
+    def verbose(msg = T.unsafe(nil)); end
+  end
+
+  class Request
+    include Gem::UserInteraction
+    include Gem::DefaultUserInteraction
+    include Gem::Text
+    extend Gem::UserInteraction
+    extend Gem::DefaultUserInteraction
+    extend Gem::Text
+
+    def cert_files; end
+
+    def connection_for(uri); end
+
+    def fetch; end
+
+    def initialize(uri, request_class, last_modified, pool); end
+
+    def perform_request(request); end
+
+    def proxy_uri; end
+
+    def reset(connection); end
+
+    def user_agent; end
+
+    def self.configure_connection_for_https(connection, cert_files); end
+
+    def self.create_with_proxy(uri, request_class, last_modified, proxy); end
+
+    def self.get_cert_files; end
+
+    def self.get_proxy_from_env(scheme = T.unsafe(nil)); end
+
+    def self.proxy_uri(proxy); end
+
+    def self.verify_certificate(store_context); end
+
+    def self.verify_certificate_message(error_number, cert); end
+
+    def self.clean_text(text); end
+
+    def self.format_text(text, wrap, indent = T.unsafe(nil)); end
+
+    def self.levenshtein_distance(str1, str2); end
+
+    def self.min3(a, b, c); end
+
+    def self.truncate_text(text, description, max_length = T.unsafe(nil)); end
+
+    def self.ui; end
+
+    def self.ui=(new_ui); end
+
+    def self.use_ui(new_ui, &block); end
+
+    def self.alert(statement, question = T.unsafe(nil)); end
+
+    def self.alert_error(statement, question = T.unsafe(nil)); end
+
+    def self.alert_warning(statement, question = T.unsafe(nil)); end
+
+    def self.ask(question); end
+
+    def self.ask_for_password(prompt); end
+
+    def self.ask_yes_no(question, default = T.unsafe(nil)); end
+
+    def self.choose_from_list(question, list); end
+
+    def self.say(statement = T.unsafe(nil)); end
+
+    def self.terminate_interaction(exit_code = T.unsafe(nil)); end
+
+    def self.verbose(msg = T.unsafe(nil)); end
+
+    def clean_text(text); end
+
+    def format_text(text, wrap, indent = T.unsafe(nil)); end
+
+    def levenshtein_distance(str1, str2); end
+
+    def min3(a, b, c); end
+
+    def truncate_text(text, description, max_length = T.unsafe(nil)); end
+
+    def ui; end
+
+    def ui=(new_ui); end
+
+    def use_ui(new_ui, &block); end
+
+    def alert(statement, question = T.unsafe(nil)); end
+
+    def alert_error(statement, question = T.unsafe(nil)); end
+
+    def alert_warning(statement, question = T.unsafe(nil)); end
+
+    def ask(question); end
+
+    def ask_for_password(prompt); end
+
+    def ask_yes_no(question, default = T.unsafe(nil)); end
+
+    def choose_from_list(question, list); end
+
+    def say(statement = T.unsafe(nil)); end
+
+    def terminate_interaction(exit_code = T.unsafe(nil)); end
+
+    def verbose(msg = T.unsafe(nil)); end
+
+    class ConnectionPools
+      def close_all; end
+
+      def initialize(proxy_uri, cert_files); end
+
+      def pool_for(uri); end
+
+      def self.client; end
+
+      def self.client=(client); end
+    end
+
+    class HTTPPool
+      def cert_files; end
+
+      def checkin(connection); end
+
+      def checkout; end
+
+      def close_all; end
+
+      def initialize(http_args, cert_files, proxy_uri); end
+
+      def proxy_uri; end
+    end
+
+    class HTTPSPool
+    end
+  end
+
+  class RequestSet
+    include TSort
+
+    def always_install; end
+
+    def always_install=(always_install); end
+
+    def dependencies; end
+
+    def development; end
+
+    def development=(development); end
+
+    def development_shallow; end
+
+    def development_shallow=(development_shallow); end
+
+    def errors; end
+
+    def gem(name, *reqs); end
+
+    def git_set; end
+
+    def ignore_dependencies; end
+
+    def ignore_dependencies=(ignore_dependencies); end
+
+    def import(deps); end
+
+    def initialize(*deps); end
+
+    def install(options, &block); end
+
+    def install_dir; end
+
+    def install_from_gemdeps(options, &block); end
+
+    def install_hooks(requests, options); end
+
+    def install_into(dir, force = T.unsafe(nil), options = T.unsafe(nil)); end
+
+    def load_gemdeps(path, without_groups = T.unsafe(nil), installing = T.unsafe(nil)); end
+
+    def prerelease; end
+
+    def prerelease=(prerelease); end
+
+    def pretty_print(q); end
+
+    def remote; end
+
+    def remote=(remote); end
+
+    def resolve(set = T.unsafe(nil)); end
+
+    def resolve_current; end
+
+    def resolver; end
+
+    def sets; end
+
+    def soft_missing; end
+
+    def soft_missing=(soft_missing); end
+
+    def sorted_requests; end
+
+    def source_set; end
+
+    def specs; end
+
+    def specs_in(dir); end
+
+    def tsort_each_node(&block); end
+
+    def vendor_set; end
+
+    class GemDependencyAPI
+      ENGINE_MAP = T.let(nil, T.untyped)
+      PLATFORM_MAP = T.let(nil, T.untyped)
+      VERSION_MAP = T.let(nil, T.untyped)
+      WINDOWS = T.let(nil, T.untyped)
+
+      def dependencies; end
+
+      def find_gemspec(name, path); end
+
+      def gem(name, *requirements); end
+
+      def gem_deps_file; end
+
+      def gem_git_reference(options); end
+
+      def gemspec(options = T.unsafe(nil)); end
+
+      def git(repository); end
+
+      def git_set; end
+
+      def git_source(name, &callback); end
+
+      def group(*groups); end
+
+      def initialize(set, path); end
+
+      def installing=(installing); end
+
+      def load; end
+
+      def platform(*platforms); end
+
+      def platforms(*platforms); end
+
+      def requires; end
+
+      def ruby(version, options = T.unsafe(nil)); end
+
+      def source(url); end
+
+      def vendor_set; end
+
+      def without_groups; end
+
+      def without_groups=(without_groups); end
+    end
+
+    class Lockfile
+      def add_DEPENDENCIES(out); end
+
+      def add_GEM(out, spec_groups); end
+
+      def add_GIT(out, git_requests); end
+
+      def add_PATH(out, path_requests); end
+
+      def add_PLATFORMS(out); end
+
+      def initialize(request_set, gem_deps_file, dependencies); end
+
+      def platforms; end
+
+      def relative_path_from(dest, base); end
+
+      def spec_groups; end
+
+      def write; end
+
+      def self.build(request_set, gem_deps_file, dependencies = T.unsafe(nil)); end
+
+      def self.requests_to_deps(requests); end
+
+      class ParseError
+        def column; end
+
+        def initialize(message, column, line, path); end
+
+        def line; end
+
+        def path; end
+      end
+
+      class Parser
+        def get(expected_types = T.unsafe(nil), expected_value = T.unsafe(nil)); end
+
+        def initialize(tokenizer, set, platforms, filename = T.unsafe(nil)); end
+
+        def parse; end
+
+        def parse_DEPENDENCIES; end
+
+        def parse_GEM; end
+
+        def parse_GIT; end
+
+        def parse_PATH; end
+
+        def parse_PLATFORMS; end
+
+        def parse_dependency(name, op); end
+      end
+
+      class Tokenizer
+        EOF = T.let(nil, T.untyped)
+
+        def empty?; end
+
+        def initialize(input, filename = T.unsafe(nil), line = T.unsafe(nil), pos = T.unsafe(nil)); end
+
+        def make_parser(set, platforms); end
+
+        def next_token; end
+
+        def peek; end
+
+        def shift; end
+
+        def skip(type); end
+
+        def to_a; end
+
+        def token_pos(byte_offset); end
+
+        def unshift(token); end
+
+        def self.from_file(file); end
+
+        class Token
+          def column; end
+
+          def column=(_); end
+
+          def line; end
+
+          def line=(_); end
+
+          def type; end
+
+          def type=(_); end
+
+          def value; end
+
+          def value=(_); end
+
+          def self.[](*_); end
+
+          def self.members; end
+        end
+      end
+    end
+  end
+
+  class Requirement
+    DefaultRequirement = T.let(nil, T.untyped)
+
+    def ==(other); end
+
+    def ===(version); end
+
+    def =~(version); end
+
+    def _tilde_requirements; end
+
+    def as_list; end
+
+    def concat(new); end
+
+    def encode_with(coder); end
+
+    def exact?; end
+
+    def for_lockfile; end
+
+    def init_with(coder); end
+
+    def initialize(*requirements); end
+
+    def marshal_dump; end
+
+    def marshal_load(array); end
+
+    def none?; end
+
+    def prerelease?; end
+
+    def pretty_print(q); end
+
+    def requirements; end
+
+    def satisfied_by?(version); end
+
+    def specific?; end
+
+    def to_yaml_properties; end
+
+    def yaml_initialize(tag, vals); end
+
+    def self.create(*inputs); end
+
+    def self.default; end
+
+    def self.parse(obj); end
+
+    def self.source_set; end
+  end
+
+  class Resolver
+    include Gem::Resolver::Molinillo::UI
+    include Gem::Resolver::Molinillo::SpecificationProvider
+    DEBUG_RESOLVER = T.let(nil, T.untyped)
+
+    def activation_request(dep, possible); end
+
+    def development; end
+
+    def development=(development); end
+
+    def development_shallow; end
+
+    def development_shallow=(development_shallow); end
+
+    def explain(stage, *data); end
+
+    def explain_list(stage); end
+
+    def find_possible(dependency); end
+
+    def ignore_dependencies; end
+
+    def ignore_dependencies=(ignore_dependencies); end
+
+    def initialize(needed, set = T.unsafe(nil)); end
+
+    def missing; end
+
+    def requests(s, act, reqs = T.unsafe(nil)); end
+
+    def resolve; end
+
+    def select_local_platforms(specs); end
+
+    def skip_gems; end
+
+    def skip_gems=(skip_gems); end
+
+    def soft_missing; end
+
+    def soft_missing=(soft_missing); end
+
+    def stats; end
+
+    def self.compose_sets(*sets); end
+
+    def self.for_current_gems(needed); end
+
+    def allow_missing?(dependency); end
+
+    def dependencies_for(specification); end
+
+    def name_for(dependency); end
+
+    def name_for_explicit_dependency_source; end
+
+    def name_for_locking_dependency_source; end
+
+    def requirement_satisfied_by?(requirement, activated, spec); end
+
+    def search_for(dependency); end
+
+    def sort_dependencies(dependencies, activated, conflicts); end
+
+    def after_resolution; end
+
+    def before_resolution; end
+
+    def debug(depth = T.unsafe(nil)); end
+
+    def debug?; end
+
+    def indicate_progress; end
+
+    def output; end
+
+    def progress_rate; end
+
+    class APISet
+      def dep_uri; end
+
+      def initialize(dep_uri = T.unsafe(nil)); end
+
+      def prefetch_now; end
+
+      def pretty_print(q); end
+
+      def source; end
+
+      def uri; end
+
+      def versions(name); end
+    end
+
+    class APISpecification
+      def ==(other); end
+
+      def initialize(set, api_data); end
+
+      def pretty_print(q); end
+    end
+
+    class ActivationRequest
+      def ==(other); end
+
+      def development?; end
+
+      def download(path); end
+
+      def full_name; end
+
+      def full_spec; end
+
+      def initialize(spec, request, others_possible = T.unsafe(nil)); end
+
+      def installed?; end
+
+      def name; end
+
+      def others_possible?; end
+
+      def parent; end
+
+      def pretty_print(q); end
+
+      def request; end
+
+      def spec; end
+
+      def version; end
+    end
+
+    class BestSet
+      def initialize(sources = T.unsafe(nil)); end
+
+      def pick_sets; end
+
+      def pretty_print(q); end
+
+      def replace_failed_api_set(error); end
+    end
+
+    class ComposedSet
+      def initialize(*sets); end
+
+      def prerelease=(allow_prerelease); end
+
+      def remote=(remote); end
+
+      def sets; end
+    end
+
+    class Conflict
+      def ==(other); end
+
+      def activated; end
+
+      def conflicting_dependencies; end
+
+      def dependency; end
+
+      def explain; end
+
+      def explanation; end
+
+      def failed_dep; end
+
+      def for_spec?(spec); end
+
+      def initialize(dependency, activated, failed_dep = T.unsafe(nil)); end
+
+      def pretty_print(q); end
+
+      def request_path(current); end
+
+      def requester; end
+    end
+
+    class CurrentSet
+    end
+
+    class DependencyRequest
+      def ==(other); end
+
+      def dependency; end
+
+      def development?; end
+
+      def explicit?; end
+
+      def implicit?; end
+
+      def initialize(dependency, requester); end
+
+      def match?(spec, allow_prerelease = T.unsafe(nil)); end
+
+      def matches_spec?(spec); end
+
+      def name; end
+
+      def pretty_print(q); end
+
+      def request_context; end
+
+      def requester; end
+
+      def requirement; end
+
+      def type; end
+    end
+
+    class GitSet
+      def add_git_gem(name, repository, reference, submodules); end
+
+      def add_git_spec(name, version, repository, reference, submodules); end
+
+      def need_submodules; end
+
+      def pretty_print(q); end
+
+      def repositories; end
+
+      def root_dir; end
+
+      def root_dir=(root_dir); end
+
+      def specs; end
+    end
+
+    class GitSpecification
+      def ==(other); end
+
+      def add_dependency(dependency); end
+
+      def pretty_print(q); end
+    end
+
+    class IndexSet
+      def initialize(source = T.unsafe(nil)); end
+
+      def pretty_print(q); end
+    end
+
+    class IndexSpecification
+      def initialize(set, name, version, source, platform); end
+
+      def pretty_print(q); end
+    end
+
+    class InstalledSpecification
+      def ==(other); end
+
+      def pretty_print(q); end
+    end
+
+    class InstallerSet
+      def add_always_install(dependency); end
+
+      def add_local(dep_name, spec, source); end
+
+      def always_install; end
+
+      def consider_local?; end
+
+      def consider_remote?; end
+
+      def ignore_dependencies; end
+
+      def ignore_dependencies=(ignore_dependencies); end
+
+      def ignore_installed; end
+
+      def ignore_installed=(ignore_installed); end
+
+      def initialize(domain); end
+
+      def load_spec(name, ver, platform, source); end
+
+      def local?(dep_name); end
+
+      def prerelease=(allow_prerelease); end
+
+      def pretty_print(q); end
+
+      def remote=(remote); end
+
+      def remote_set; end
+    end
+
+    class LocalSpecification
+      def pretty_print(q); end
+    end
+
+    class LockSet
+      def add(name, version, platform); end
+
+      def initialize(sources); end
+
+      def load_spec(name, version, platform, source); end
+
+      def pretty_print(q); end
+
+      def specs; end
+    end
+
+    class LockSpecification
+      def add_dependency(dependency); end
+
+      def initialize(set, name, version, sources, platform); end
+
+      def pretty_print(q); end
+
+      def sources; end
+    end
+
+    module Molinillo
+      VERSION = T.let(nil, T.untyped)
+
+      class CircularDependencyError
+        def dependencies; end
+
+        def initialize(nodes); end
+      end
+
+      module Delegates
+        module ResolutionState
+          def activated; end
+
+          def conflicts; end
+
+          def depth; end
+
+          def name; end
+
+          def possibilities; end
+
+          def requirement; end
+
+          def requirements; end
+        end
+
+        module SpecificationProvider
+          def allow_missing?(dependency); end
+
+          def dependencies_for(specification); end
+
+          def name_for(dependency); end
+
+          def name_for_explicit_dependency_source; end
+
+          def name_for_locking_dependency_source; end
+
+          def requirement_satisfied_by?(requirement, activated, spec); end
+
+          def search_for(dependency); end
+
+          def sort_dependencies(dependencies, activated, conflicts); end
+        end
+      end
+
+      class DependencyGraph
+        include Enumerable
+        include TSort
+        Elem = type_member(fixed: T.untyped)
+
+        def ==(other); end
+
+        def add_child_vertex(name, payload, parent_names, requirement); end
+
+        def add_edge(origin, destination, requirement); end
+
+        def add_vertex(name, payload, root = T.unsafe(nil)); end
+
+        def delete_edge(edge); end
+
+        def detach_vertex_named(name); end
+
+        def each(&blk); end
+
+        def log; end
+
+        def rewind_to(tag); end
+
+        def root_vertex_named(name); end
+
+        def set_payload(name, payload); end
+
+        def tag(tag); end
+
+        def to_dot(options = T.unsafe(nil)); end
+
+        def tsort_each_child(vertex, &block); end
+
+        def vertex_named(name); end
+
+        def vertices; end
+
+        def self.tsort(vertices); end
+
+        class Action
+          def down(graph); end
+
+          def next; end
+
+          def next=(_); end
+
+          def previous; end
+
+          def previous=(previous); end
+
+          def up(graph); end
+
+          def self.action_name; end
+        end
+
+        class AddEdgeNoCircular
+          def destination; end
+
+          def initialize(origin, destination, requirement); end
+
+          def make_edge(graph); end
+
+          def origin; end
+
+          def requirement; end
+        end
+
+        class AddVertex
+          def initialize(name, payload, root); end
+
+          def name; end
+
+          def payload; end
+
+          def root; end
+        end
+
+        class DeleteEdge
+          def destination_name; end
+
+          def initialize(origin_name, destination_name, requirement); end
+
+          def make_edge(graph); end
+
+          def origin_name; end
+
+          def requirement; end
+        end
+
+        class DetachVertexNamed
+          def initialize(name); end
+
+          def name; end
+        end
+
+        class Edge
+          def destination; end
+
+          def destination=(_); end
+
+          def origin; end
+
+          def origin=(_); end
+
+          def requirement; end
+
+          def requirement=(_); end
+
+          def self.[](*_); end
+
+          def self.members; end
+        end
+
+        class Log
+          extend T::Enumerable
+          Elem = type_member(fixed: T.untyped)
+
+          def add_edge_no_circular(graph, origin, destination, requirement); end
+
+          def add_vertex(graph, name, payload, root); end
+
+          def delete_edge(graph, origin_name, destination_name, requirement); end
+
+          def detach_vertex_named(graph, name); end
+
+          def each(&blk); end
+
+          def pop!(graph); end
+
+          def reverse_each; end
+
+          def rewind_to(graph, tag); end
+
+          def set_payload(graph, name, payload); end
+
+          def tag(graph, tag); end
+        end
+
+        class SetPayload
+          def initialize(name, payload); end
+
+          def name; end
+
+          def payload; end
+        end
+
+        class Tag
+          def down(_graph); end
+
+          def initialize(tag); end
+
+          def tag; end
+
+          def up(_graph); end
+        end
+
+        class Vertex
+          def ==(other); end
+
+          def ancestor?(other); end
+
+          def descendent?(other); end
+
+          def eql?(other); end
+
+          def explicit_requirements; end
+
+          def incoming_edges; end
+
+          def incoming_edges=(incoming_edges); end
+
+          def initialize(name, payload); end
+
+          def is_reachable_from?(other); end
+
+          def name; end
+
+          def name=(name); end
+
+          def outgoing_edges; end
+
+          def outgoing_edges=(outgoing_edges); end
+
+          def path_to?(other); end
+
+          def payload; end
+
+          def payload=(payload); end
+
+          def predecessors; end
+
+          def recursive_predecessors; end
+
+          def recursive_successors; end
+
+          def requirements; end
+
+          def root; end
+
+          def root=(root); end
+
+          def root?; end
+
+          def shallow_eql?(other); end
+
+          def successors; end
+        end
+      end
+
+      class DependencyState
+        def pop_possibility_state; end
+      end
+
+      class NoSuchDependencyError
+        def dependency; end
+
+        def dependency=(dependency); end
+
+        def initialize(dependency, required_by = T.unsafe(nil)); end
+
+        def required_by; end
+
+        def required_by=(required_by); end
+      end
+
+      class PossibilityState
+      end
+
+      class ResolutionState
+        def activated; end
+
+        def activated=(_); end
+
+        def conflicts; end
+
+        def conflicts=(_); end
+
+        def depth; end
+
+        def depth=(_); end
+
+        def name; end
+
+        def name=(_); end
+
+        def possibilities; end
+
+        def possibilities=(_); end
+
+        def requirement; end
+
+        def requirement=(_); end
+
+        def requirements; end
+
+        def requirements=(_); end
+
+        def self.[](*_); end
+
+        def self.empty; end
+
+        def self.members; end
+      end
+
+      class Resolver
+        def initialize(specification_provider, resolver_ui); end
+
+        def resolve(requested, base = T.unsafe(nil)); end
+
+        def resolver_ui; end
+
+        def specification_provider; end
+
+        class Resolution
+          include Gem::Resolver::Molinillo::Delegates::ResolutionState
+          include Gem::Resolver::Molinillo::Delegates::SpecificationProvider
+
+          def base; end
+
+          def initialize(specification_provider, resolver_ui, requested, base); end
+
+          def iteration_rate=(iteration_rate); end
+
+          def original_requested; end
+
+          def resolve; end
+
+          def resolver_ui; end
+
+          def specification_provider; end
+
+          def started_at=(started_at); end
+
+          def states=(states); end
+
+          def allow_missing?(dependency); end
+
+          def dependencies_for(specification); end
+
+          def name_for(dependency); end
+
+          def name_for_explicit_dependency_source; end
+
+          def name_for_locking_dependency_source; end
+
+          def requirement_satisfied_by?(requirement, activated, spec); end
+
+          def search_for(dependency); end
+
+          def sort_dependencies(dependencies, activated, conflicts); end
+
+          def activated; end
+
+          def conflicts; end
+
+          def depth; end
+
+          def name; end
+
+          def possibilities; end
+
+          def requirement; end
+
+          def requirements; end
+
+          class Conflict
+            def activated_by_name; end
+
+            def activated_by_name=(_); end
+
+            def existing; end
+
+            def existing=(_); end
+
+            def locked_requirement; end
+
+            def locked_requirement=(_); end
+
+            def possibility; end
+
+            def possibility=(_); end
+
+            def requirement; end
+
+            def requirement=(_); end
+
+            def requirement_trees; end
+
+            def requirement_trees=(_); end
+
+            def requirements; end
+
+            def requirements=(_); end
+
+            def self.[](*_); end
+
+            def self.members; end
+          end
+        end
+      end
+
+      class ResolverError
+      end
+
+      module SpecificationProvider
+        def allow_missing?(dependency); end
+
+        def dependencies_for(specification); end
+
+        def name_for(dependency); end
+
+        def name_for_explicit_dependency_source; end
+
+        def name_for_locking_dependency_source; end
+
+        def requirement_satisfied_by?(requirement, activated, spec); end
+
+        def search_for(dependency); end
+
+        def sort_dependencies(dependencies, activated, conflicts); end
+      end
+
+      module UI
+        def after_resolution; end
+
+        def before_resolution; end
+
+        def debug(depth = T.unsafe(nil)); end
+
+        def debug?; end
+
+        def indicate_progress; end
+
+        def output; end
+
+        def progress_rate; end
+      end
+
+      class VersionConflict
+        def conflicts; end
+
+        def initialize(conflicts); end
+      end
+    end
+
+    class RequirementList
+      include Enumerable
+      Elem = type_member(fixed: T.untyped)
+
+      def add(req); end
+
+      def each(&blk); end
+
+      def empty?; end
+
+      def next5; end
+
+      def remove; end
+
+      def size; end
+    end
+
+    class Set
+      def errors; end
+
+      def errors=(errors); end
+
+      def find_all(req); end
+
+      def prefetch(reqs); end
+
+      def prerelease; end
+
+      def prerelease=(prerelease); end
+
+      def remote; end
+
+      def remote=(remote); end
+
+      def remote?; end
+    end
+
+    class SourceSet
+      def add_source_gem(name, source); end
+    end
+
+    class SpecSpecification
+      def initialize(set, spec, source = T.unsafe(nil)); end
+    end
+
+    class Specification
+      def dependencies; end
+
+      def download(options); end
+
+      def fetch_development_dependencies; end
+
+      def full_name; end
+
+      def install(options = T.unsafe(nil)); end
+
+      def installable_platform?; end
+
+      def local?; end
+
+      def name; end
+
+      def platform; end
+
+      def set; end
+
+      def source; end
+
+      def spec; end
+
+      def version; end
+    end
+
+    class Stats
+      PATTERN = T.let(nil, T.untyped)
+
+      def backtracking!; end
+
+      def display; end
+
+      def iteration!; end
+
+      def record_depth(stack); end
+
+      def record_requirements(reqs); end
+
+      def requirement!; end
+    end
+
+    class VendorSet
+      def add_vendor_gem(name, directory); end
+
+      def load_spec(name, version, platform, source); end
+
+      def pretty_print(q); end
+
+      def specs; end
+    end
+
+    class VendorSpecification
+      def ==(other); end
+    end
+  end
+
+  class RuntimeRequirementNotMetError
+    def suggestion; end
+
+    def suggestion=(suggestion); end
+  end
+
+  module Security
+    AlmostNoSecurity = T.let(nil, T.untyped)
+    DIGEST_NAME = T.let(nil, T.untyped)
+    EXTENSIONS = T.let(nil, T.untyped)
+    HighSecurity = T.let(nil, T.untyped)
+    KEY_CIPHER = T.let(nil, T.untyped)
+    KEY_LENGTH = T.let(nil, T.untyped)
+    LowSecurity = T.let(nil, T.untyped)
+    MediumSecurity = T.let(nil, T.untyped)
+    NoSecurity = T.let(nil, T.untyped)
+    ONE_DAY = T.let(nil, T.untyped)
+    ONE_YEAR = T.let(nil, T.untyped)
+    Policies = T.let(nil, T.untyped)
+    SigningPolicy = T.let(nil, T.untyped)
+
+    def self.alt_name_or_x509_entry(certificate, x509_entry); end
+
+    def self.create_cert(subject, key, age = T.unsafe(nil), extensions = T.unsafe(nil), serial = T.unsafe(nil)); end
+
+    def self.create_cert_email(email, key, age = T.unsafe(nil), extensions = T.unsafe(nil)); end
+
+    def self.create_cert_self_signed(subject, key, age = T.unsafe(nil), extensions = T.unsafe(nil), serial = T.unsafe(nil)); end
+
+    def self.create_key(length = T.unsafe(nil), algorithm = T.unsafe(nil)); end
+
+    def self.email_to_name(email_address); end
+
+    def self.re_sign(expired_certificate, private_key, age = T.unsafe(nil), extensions = T.unsafe(nil)); end
+
+    def self.reset; end
+
+    def self.sign(certificate, signing_key, signing_cert, age = T.unsafe(nil), extensions = T.unsafe(nil), serial = T.unsafe(nil)); end
+
+    def self.trust_dir; end
+
+    def self.trusted_certificates(&block); end
+
+    def self.write(pemmable, path, permissions = T.unsafe(nil), passphrase = T.unsafe(nil), cipher = T.unsafe(nil)); end
+
+    class DIGEST_ALGORITHM
+      def initialize(data = T.unsafe(nil)); end
+
+      def self.digest(data); end
+
+      def self.hexdigest(data); end
+    end
+
+    class Exception
+    end
+
+    class KEY_ALGORITHM
+      NO_PADDING = T.let(nil, T.untyped)
+      PKCS1_OAEP_PADDING = T.let(nil, T.untyped)
+      PKCS1_PADDING = T.let(nil, T.untyped)
+      SSLV23_PADDING = T.let(nil, T.untyped)
+
+      def d; end
+
+      def d=(d); end
+
+      def dmp1; end
+
+      def dmp1=(dmp1); end
+
+      def dmq1; end
+
+      def dmq1=(dmq1); end
+
+      def e; end
+
+      def e=(e); end
+
+      def export(*_); end
+
+      def initialize(*_); end
+
+      def iqmp; end
+
+      def iqmp=(iqmp); end
+
+      def n; end
+
+      def n=(n); end
+
+      def p; end
+
+      def p=(p); end
+
+      def params; end
+
+      def private?; end
+
+      def private_decrypt(*_); end
+
+      def private_encrypt(*_); end
+
+      def public?; end
+
+      def public_decrypt(*_); end
+
+      def public_encrypt(*_); end
+
+      def public_key; end
+
+      def q; end
+
+      def q=(q); end
+
+      def set_crt_params(_, _1, _2); end
+
+      def set_factors(_, _1); end
+
+      def set_key(_, _1, _2); end
+
+      def sign_pss(*_); end
+
+      def to_der; end
+
+      def to_pem(*_); end
+
+      def to_s(*_); end
+
+      def to_text; end
+
+      def verify_pss(*_); end
+
+      def self.generate(*_); end
+    end
+
+    class Policy
+      include Gem::UserInteraction
+      include Gem::DefaultUserInteraction
+      include Gem::Text
+
+      def check_cert(signer, issuer, time); end
+
+      def check_chain(chain, time); end
+
+      def check_data(public_key, digest, signature, data); end
+
+      def check_key(signer, key); end
+
+      def check_root(chain, time); end
+
+      def check_trust(chain, digester, trust_dir); end
+
+      def initialize(name, policy = T.unsafe(nil), opt = T.unsafe(nil)); end
+
+      def name; end
+
+      def only_signed; end
+
+      def only_signed=(only_signed); end
+
+      def only_trusted; end
+
+      def only_trusted=(only_trusted); end
+
+      def subject(certificate); end
+
+      def verify(chain, key = T.unsafe(nil), digests = T.unsafe(nil), signatures = T.unsafe(nil), full_name = T.unsafe(nil)); end
+
+      def verify_chain; end
+
+      def verify_chain=(verify_chain); end
+
+      def verify_data; end
+
+      def verify_data=(verify_data); end
+
+      def verify_root; end
+
+      def verify_root=(verify_root); end
+
+      def verify_signatures(spec, digests, signatures); end
+
+      def verify_signer; end
+
+      def verify_signer=(verify_signer); end
+
+      def clean_text(text); end
+
+      def format_text(text, wrap, indent = T.unsafe(nil)); end
+
+      def levenshtein_distance(str1, str2); end
+
+      def min3(a, b, c); end
+
+      def truncate_text(text, description, max_length = T.unsafe(nil)); end
+
+      def ui; end
+
+      def ui=(new_ui); end
+
+      def use_ui(new_ui, &block); end
+
+      def alert(statement, question = T.unsafe(nil)); end
+
+      def alert_error(statement, question = T.unsafe(nil)); end
+
+      def alert_warning(statement, question = T.unsafe(nil)); end
+
+      def ask(question); end
+
+      def ask_for_password(prompt); end
+
+      def ask_yes_no(question, default = T.unsafe(nil)); end
+
+      def choose_from_list(question, list); end
+
+      def say(statement = T.unsafe(nil)); end
+
+      def terminate_interaction(exit_code = T.unsafe(nil)); end
+
+      def verbose(msg = T.unsafe(nil)); end
+    end
+
+    class Signer
+      include Gem::UserInteraction
+      include Gem::DefaultUserInteraction
+      include Gem::Text
+      DEFAULT_OPTIONS = T.let(nil, T.untyped)
+
+      def cert_chain; end
+
+      def cert_chain=(cert_chain); end
+
+      def digest_algorithm; end
+
+      def digest_name; end
+
+      def extract_name(cert); end
+
+      def initialize(key, cert_chain, passphrase = T.unsafe(nil), options = T.unsafe(nil)); end
+
+      def key; end
+
+      def key=(key); end
+
+      def load_cert_chain; end
+
+      def options; end
+
+      def re_sign_key(expiration_length: T.unsafe(nil)); end
+
+      def sign(data); end
+
+      def self.re_sign_cert(expired_cert, expired_cert_path, private_key); end
+
+      def clean_text(text); end
+
+      def format_text(text, wrap, indent = T.unsafe(nil)); end
+
+      def levenshtein_distance(str1, str2); end
+
+      def min3(a, b, c); end
+
+      def truncate_text(text, description, max_length = T.unsafe(nil)); end
+
+      def ui; end
+
+      def ui=(new_ui); end
+
+      def use_ui(new_ui, &block); end
+
+      def alert(statement, question = T.unsafe(nil)); end
+
+      def alert_error(statement, question = T.unsafe(nil)); end
+
+      def alert_warning(statement, question = T.unsafe(nil)); end
+
+      def ask(question); end
+
+      def ask_for_password(prompt); end
+
+      def ask_yes_no(question, default = T.unsafe(nil)); end
+
+      def choose_from_list(question, list); end
+
+      def say(statement = T.unsafe(nil)); end
+
+      def terminate_interaction(exit_code = T.unsafe(nil)); end
+
+      def verbose(msg = T.unsafe(nil)); end
+    end
+
+    class TrustDir
+      DEFAULT_PERMISSIONS = T.let(nil, T.untyped)
+
+      def cert_path(certificate); end
+
+      def dir; end
+
+      def each_certificate; end
+
+      def initialize(dir, permissions = T.unsafe(nil)); end
+
+      def issuer_of(certificate); end
+
+      def load_certificate(certificate_file); end
+
+      def name_path(name); end
+
+      def trust_cert(certificate); end
+
+      def verify; end
+    end
+  end
+
+  class SilentUI
+    def initialize; end
+  end
+
+  class Source
+    include Comparable
+    FILES = T.let(nil, T.untyped)
+
+    def ==(other); end
+
+    def cache_dir(uri); end
+
+    def dependency_resolver_set; end
+
+    def download(spec, dir = T.unsafe(nil)); end
+
+    def eql?(other); end
+
+    def fetch_spec(name_tuple); end
+
+    def initialize(uri); end
+
+    def load_specs(type); end
+
+    def pretty_print(q); end
+
+    def update_cache?; end
+
+    def uri; end
+
+    class Git
+      def base_dir; end
+
+      def cache; end
+
+      def checkout; end
+
+      def dir_shortref; end
+
+      def download(full_spec, path); end
+
+      def initialize(name, repository, reference, submodules = T.unsafe(nil)); end
+
+      def install_dir; end
+
+      def name; end
+
+      def need_submodules; end
+
+      def reference; end
+
+      def remote; end
+
+      def remote=(remote); end
+
+      def repo_cache_dir; end
+
+      def repository; end
+
+      def rev_parse; end
+
+      def root_dir; end
+
+      def root_dir=(root_dir); end
+
+      def specs; end
+
+      def uri_hash; end
+    end
+
+    class Installed
+      def download(spec, path); end
+
+      def initialize; end
+    end
+
+    class Local
+      def download(spec, cache_dir = T.unsafe(nil)); end
+
+      def fetch_spec(name); end
+
+      def find_gem(gem_name, version = T.unsafe(nil), prerelease = T.unsafe(nil)); end
+
+      def initialize; end
+    end
+
+    class Lock
+      def initialize(source); end
+
+      def wrapped; end
+    end
+
+    class SpecificFile
+      def fetch_spec(name); end
+
+      def initialize(file); end
+
+      def load_specs(*a); end
+
+      def path; end
+
+      def spec; end
+    end
+
+    class Vendor
+      def initialize(path); end
+    end
+  end
+
+  class SourceFetchProblem
+    def error; end
+
+    def exception; end
+
+    def initialize(source, error); end
+
+    def source; end
+
+    def wordy; end
+  end
+
+  class SourceList
+    include Enumerable
+    Elem = type_member(fixed: T.untyped)
+
+    def <<(obj); end
+
+    def ==(other); end
+
+    def clear; end
+
+    def delete(source); end
+
+    def each(&blk); end
+
+    def each_source(&b); end
+
+    def empty?; end
+
+    def first; end
+
+    def include?(other); end
+
+    def replace(other); end
+
+    def sources; end
+
+    def to_a; end
+
+    def to_ary; end
+
+    def self.from(ary); end
+  end
+
+  class SpecFetcher
+    include Gem::UserInteraction
+    include Gem::DefaultUserInteraction
+    include Gem::Text
+
+    def available_specs(type); end
+
+    def detect(type = T.unsafe(nil)); end
+
+    def initialize(sources = T.unsafe(nil)); end
+
+    def latest_specs; end
+
+    def prerelease_specs; end
+
+    def search_for_dependency(dependency, matching_platform = T.unsafe(nil)); end
+
+    def sources; end
+
+    def spec_for_dependency(dependency, matching_platform = T.unsafe(nil)); end
+
+    def specs; end
+
+    def suggest_gems_from_name(gem_name, type = T.unsafe(nil)); end
+
+    def tuples_for(source, type, gracefully_ignore = T.unsafe(nil)); end
+
+    def self.fetcher; end
+
+    def self.fetcher=(fetcher); end
+
+    def clean_text(text); end
+
+    def format_text(text, wrap, indent = T.unsafe(nil)); end
+
+    def levenshtein_distance(str1, str2); end
+
+    def min3(a, b, c); end
+
+    def truncate_text(text, description, max_length = T.unsafe(nil)); end
+
+    def ui; end
+
+    def ui=(new_ui); end
+
+    def use_ui(new_ui, &block); end
+
+    def alert(statement, question = T.unsafe(nil)); end
+
+    def alert_error(statement, question = T.unsafe(nil)); end
+
+    def alert_warning(statement, question = T.unsafe(nil)); end
+
+    def ask(question); end
+
+    def ask_for_password(prompt); end
+
+    def ask_yes_no(question, default = T.unsafe(nil)); end
+
+    def choose_from_list(question, list); end
+
+    def say(statement = T.unsafe(nil)); end
+
+    def terminate_interaction(exit_code = T.unsafe(nil)); end
+
+    def verbose(msg = T.unsafe(nil)); end
+  end
+
+  class SpecificGemNotFoundException
+    def errors; end
+
+    def initialize(name, version, errors = T.unsafe(nil)); end
+
+    def name; end
+
+    def version; end
+  end
+
+  class Specification
+    include Bundler::MatchPlatform
+    include Bundler::GemHelpers
+    extend Gem::Deprecate
+    DateLike = T.let(nil, T.untyped)
+    DateTimeFormat = T.let(nil, T.untyped)
+    INITIALIZE_CODE_FOR_DEFAULTS = T.let(nil, T.untyped)
+
+    def ==(other); end
+
+    def _deprecated_default_executable; end
+
+    def _deprecated_default_executable=(_deprecated_default_executable); end
+
+    def _deprecated_has_rdoc; end
+
+    def _deprecated_has_rdoc=(ignored); end
+
+    def _deprecated_has_rdoc?(*args, &block); end
+
+    def _dump(limit); end
+
+    def abbreviate; end
+
+    def activate; end
+
+    def activate_dependencies; end
+
+    def activated; end
+
+    def activated=(activated); end
+
+    def add_bindir(executables); end
+
+    def add_dependency(gem, *requirements); end
+
+    def add_development_dependency(gem, *requirements); end
+
+    def add_runtime_dependency(gem, *requirements); end
+
+    def add_self_to_load_path; end
+
+    def author; end
+
+    def author=(o); end
+
+    def authors; end
+
+    def authors=(value); end
+
+    def autorequire; end
+
+    def autorequire=(autorequire); end
+
+    def bin_dir; end
+
+    def bin_file(name); end
+
+    def bindir; end
+
+    def bindir=(bindir); end
+
+    def build_args; end
+
+    def build_extensions; end
+
+    def build_info_dir; end
+
+    def build_info_file; end
+
+    def cache_dir; end
+
+    def cache_file; end
+
+    def cert_chain; end
+
+    def cert_chain=(cert_chain); end
+
+    def conficts_when_loaded_with?(list_of_specs); end
+
+    def conflicts; end
+
+    def date; end
+
+    def date=(date); end
+
+    def default_executable(*args, &block); end
+
+    def default_executable=(*args, &block); end
+
+    def default_value(name); end
+
+    def dependencies; end
+
+    def dependent_gems; end
+
+    def dependent_specs; end
+
+    def description; end
+
+    def description=(str); end
+
+    def development_dependencies; end
+
+    def doc_dir(type = T.unsafe(nil)); end
+
+    def email; end
+
+    def email=(email); end
+
+    def encode_with(coder); end
+
+    def eql?(other); end
+
+    def executable; end
+
+    def executable=(o); end
+
+    def executables; end
+
+    def executables=(value); end
+
+    def extensions; end
+
+    def extensions=(extensions); end
+
+    def extra_rdoc_files; end
+
+    def extra_rdoc_files=(files); end
+
+    def file_name; end
+
+    def files; end
+
+    def files=(files); end
+
+    def for_cache; end
+
+    def git_version; end
+
+    def groups; end
+
+    def has_conflicts?; end
+
+    def has_rdoc(*args, &block); end
+
+    def has_rdoc=(*args, &block); end
+
+    def has_rdoc?(*args, &block); end
+
+    def has_test_suite?; end
+
+    def has_unit_tests?; end
+
+    def homepage; end
+
+    def homepage=(homepage); end
+
+    def init_with(coder); end
+
+    def initialize(name = T.unsafe(nil), version = T.unsafe(nil)); end
+
+    def installed_by_version; end
+
+    def installed_by_version=(version); end
+
+    def keep_only_files_and_directories; end
+
+    def lib_files; end
+
+    def license; end
+
+    def license=(o); end
+
+    def licenses; end
+
+    def licenses=(licenses); end
+
+    def load_paths; end
+
+    def location; end
+
+    def location=(location); end
+
+    def mark_version; end
+
+    def metadata; end
+
+    def metadata=(metadata); end
+
+    def method_missing(sym, *a, &b); end
+
+    def missing_extensions?; end
+
+    def name=(name); end
+
+    def name_tuple; end
+
+    def nondevelopment_dependencies; end
+
+    def normalize; end
+
+    def original_name; end
+
+    def original_platform; end
+
+    def original_platform=(original_platform); end
+
+    def platform=(platform); end
+
+    def post_install_message; end
+
+    def post_install_message=(post_install_message); end
+
+    def pretty_print(q); end
+
+    def raise_if_conflicts; end
+
+    def rdoc_options; end
+
+    def rdoc_options=(options); end
+
+    def relative_loaded_from; end
+
+    def relative_loaded_from=(relative_loaded_from); end
+
+    def remote; end
+
+    def remote=(remote); end
+
+    def require_path; end
+
+    def require_path=(path); end
+
+    def require_paths=(val); end
+
+    def required_ruby_version; end
+
+    def required_ruby_version=(req); end
+
+    def required_rubygems_version; end
+
+    def required_rubygems_version=(req); end
+
+    def requirements; end
+
+    def requirements=(req); end
+
+    def reset_nil_attributes_to_default; end
+
+    def rg_extension_dir; end
+
+    def rg_full_gem_path; end
+
+    def rg_loaded_from; end
+
+    def ri_dir; end
+
+    def rubyforge_project=(rubyforge_project); end
+
+    def rubygems_version; end
+
+    def rubygems_version=(rubygems_version); end
+
+    def runtime_dependencies; end
+
+    def sanitize; end
+
+    def sanitize_string(string); end
+
+    def satisfies_requirement?(dependency); end
+
+    def signing_key; end
+
+    def signing_key=(signing_key); end
+
+    def sort_obj; end
+
+    def source; end
+
+    def source=(source); end
+
+    def spec_dir; end
+
+    def spec_file; end
+
+    def spec_name; end
+
+    def specification_version; end
+
+    def specification_version=(specification_version); end
+
+    def summary; end
+
+    def summary=(str); end
+
+    def test_file; end
+
+    def test_file=(file); end
+
+    def test_files; end
+
+    def test_files=(files); end
+
+    def to_gemfile(path = T.unsafe(nil)); end
+
+    def to_ruby; end
+
+    def to_ruby_for_cache; end
+
+    def to_yaml(opts = T.unsafe(nil)); end
+
+    def traverse(trail = T.unsafe(nil), visited = T.unsafe(nil), &block); end
+
+    def validate(packaging = T.unsafe(nil), strict = T.unsafe(nil)); end
+
+    def validate_dependencies; end
+
+    def validate_metadata; end
+
+    def validate_permissions; end
+
+    def version=(version); end
+
+    def yaml_initialize(tag, vals); end
+
+    def self._all; end
+
+    def self._clear_load_cache; end
+
+    def self._latest_specs(specs, prerelease = T.unsafe(nil)); end
+
+    def self._load(str); end
+
+    def self._resort!(specs); end
+
+    def self.add_spec(spec); end
+
+    def self.add_specs(*specs); end
+
+    def self.all; end
+
+    def self.all=(specs); end
+
+    def self.all_names; end
+
+    def self.array_attributes; end
+
+    def self.attribute_names; end
+
+    def self.dirs; end
+
+    def self.dirs=(dirs); end
+
+    def self.each(&blk); end
+
+    def self.each_gemspec(dirs); end
+
+    def self.each_spec(dirs); end
+
+    def self.find_active_stub_by_path(path); end
+
+    def self.find_all_by_full_name(full_name); end
+
+    def self.find_all_by_name(name, *requirements); end
+
+    def self.find_by_name(name, *requirements); end
+
+    def self.find_by_path(path); end
+
+    def self.find_in_unresolved(path); end
+
+    def self.find_in_unresolved_tree(path); end
+
+    def self.find_inactive_by_path(path); end
+
+    def self.from_yaml(input); end
+
+    def self.latest_specs(prerelease = T.unsafe(nil)); end
+
+    def self.load(file); end
+
+    def self.load_defaults; end
+
+    def self.non_nil_attributes; end
+
+    def self.normalize_yaml_input(input); end
+
+    def self.outdated; end
+
+    def self.outdated_and_latest_version; end
+
+    def self.remove_spec(spec); end
+
+    def self.required_attribute?(name); end
+
+    def self.required_attributes; end
+
+    def self.reset; end
+
+    def self.stubs; end
+
+    def self.stubs_for(name); end
+
+    def self.unresolved_deps; end
+  end
+
+  class SpecificationPolicy
+    HOMEPAGE_URI_PATTERN = T.let(nil, T.untyped)
+    LAZY = T.let(nil, T.untyped)
+    LAZY_PATTERN = T.let(nil, T.untyped)
+    METADATA_LINK_KEYS = T.let(nil, T.untyped)
+    SPECIAL_CHARACTERS = T.let(nil, T.untyped)
+    VALID_NAME_PATTERN = T.let(nil, T.untyped)
+    VALID_URI_PATTERN = T.let(nil, T.untyped)
+
+    def initialize(specification); end
+
+    def packaging; end
+
+    def packaging=(packaging); end
+
+    def validate(strict = T.unsafe(nil)); end
+
+    def validate_dependencies; end
+
+    def validate_metadata; end
+
+    def validate_permissions; end
+  end
+
+  class StreamUI
+    extend Gem::Deprecate
+
+    def _deprecated_debug(statement); end
+
+    def _gets_noecho; end
+
+    def alert(statement, question = T.unsafe(nil)); end
+
+    def alert_error(statement, question = T.unsafe(nil)); end
+
+    def alert_warning(statement, question = T.unsafe(nil)); end
+
+    def ask(question); end
+
+    def ask_for_password(question); end
+
+    def ask_yes_no(question, default = T.unsafe(nil)); end
+
+    def backtrace(exception); end
+
+    def choose_from_list(question, list); end
+
+    def close; end
+
+    def debug(*args, &block); end
+
+    def download_reporter(*args); end
+
+    def errs; end
+
+    def initialize(in_stream, out_stream, err_stream = T.unsafe(nil), usetty = T.unsafe(nil)); end
+
+    def ins; end
+
+    def outs; end
+
+    def progress_reporter(*args); end
+
+    def require_io_console; end
+
+    def say(statement = T.unsafe(nil)); end
+
+    def terminate_interaction(status = T.unsafe(nil)); end
+
+    def tty?; end
+  end
+
+  class StubSpecification
+    def build_extensions; end
+
+    def extensions; end
+
+    def initialize(filename, base_dir, gems_dir, default_gem); end
+
+    def missing_extensions?; end
+
+    def valid?; end
+
+    def self.default_gemspec_stub(filename, base_dir, gems_dir); end
+
+    def self.gemspec_stub(filename, base_dir, gems_dir); end
+
+    class StubLine
+      def extensions; end
+
+      def full_name; end
+
+      def initialize(data, extensions); end
+
+      def name; end
+
+      def platform; end
+
+      def require_paths; end
+
+      def version; end
+    end
+  end
+
+  class SystemExitException
+    def exit_code; end
+
+    def exit_code=(exit_code); end
+
+    def initialize(exit_code); end
+  end
+
+  module Text
+    def clean_text(text); end
+
+    def format_text(text, wrap, indent = T.unsafe(nil)); end
+
+    def levenshtein_distance(str1, str2); end
+
+    def min3(a, b, c); end
+
+    def truncate_text(text, description, max_length = T.unsafe(nil)); end
+  end
+
+  class UninstallError
+    def spec; end
+
+    def spec=(spec); end
+  end
+
+  class UnsatisfiableDependencyError
+    def dependency; end
+
+    def errors; end
+
+    def errors=(errors); end
+
+    def initialize(dep, platform_mismatch = T.unsafe(nil)); end
+
+    def name; end
+
+    def version; end
+  end
+
+  class UriFormatter
+    def escape; end
+
+    def initialize(uri); end
+
+    def normalize; end
+
+    def unescape; end
+
+    def uri; end
+  end
+
+  module UserInteraction
+    include Gem::DefaultUserInteraction
+    include Gem::Text
+
+    def alert(statement, question = T.unsafe(nil)); end
+
+    def alert_error(statement, question = T.unsafe(nil)); end
+
+    def alert_warning(statement, question = T.unsafe(nil)); end
+
+    def ask(question); end
+
+    def ask_for_password(prompt); end
+
+    def ask_yes_no(question, default = T.unsafe(nil)); end
+
+    def choose_from_list(question, list); end
+
+    def say(statement = T.unsafe(nil)); end
+
+    def terminate_interaction(exit_code = T.unsafe(nil)); end
+
+    def verbose(msg = T.unsafe(nil)); end
+
+    def clean_text(text); end
+
+    def format_text(text, wrap, indent = T.unsafe(nil)); end
+
+    def levenshtein_distance(str1, str2); end
+
+    def min3(a, b, c); end
+
+    def truncate_text(text, description, max_length = T.unsafe(nil)); end
+
+    def ui; end
+
+    def ui=(new_ui); end
+
+    def use_ui(new_ui, &block); end
+  end
+
+  module Util
+    def self.glob_files_in_dir(glob, base_path); end
+
+    def self.gunzip(data); end
+
+    def self.gzip(data); end
+
+    def self.inflate(data); end
+
+    def self.popen(*command); end
+
+    def self.silent_system(*command); end
+
+    def self.traverse_parents(directory, &block); end
+  end
+
+  class Version
+    def _segments; end
+
+    def _split_segments; end
+
+    def _version; end
+
+    def approximate_recommendation; end
+
+    def bump; end
+
+    def canonical_segments; end
+
+    def encode_with(coder); end
+
+    def eql?(other); end
+
+    def init_with(coder); end
+
+    def marshal_dump; end
+
+    def marshal_load(array); end
+
+    def prerelease?; end
+
+    def pretty_print(q); end
+
+    def release; end
+
+    def segments; end
+
+    def to_yaml_properties; end
+
+    def version; end
+
+    def yaml_initialize(tag, map); end
+
+    def self.correct?(version); end
+
+    def self.create(input); end
+
+    def self.new(version); end
+  end
+end
+
+Gem::UnsatisfiableDepedencyError = Gem::UnsatisfiableDependencyError
+Gem::Ext::ExtConfBuilder::FileEntry = FileUtils::Entry_
+Gem::Version::Requirement = Gem::Requirement
+Gem::Resolver::DependencyConflict = Gem::Resolver::Conflict
diff --git a/2019/ruby/sorbet/rbi/sorbet-typed/lib/ruby/all/open3.rbi b/2019/ruby/sorbet/rbi/sorbet-typed/lib/ruby/all/open3.rbi
new file mode 100644
index 0000000..4b1fed1
--- /dev/null
+++ b/2019/ruby/sorbet/rbi/sorbet-typed/lib/ruby/all/open3.rbi
@@ -0,0 +1,111 @@
+# This file is autogenerated. Do not edit it by hand. Regenerate it with:
+#   srb rbi sorbet-typed
+#
+# If you would like to make changes to this file, great! Please upstream any changes you make here:
+#
+#   https://github.com/sorbet/sorbet-typed/edit/master/lib/ruby/all/open3.rbi
+#
+# typed: strong
+
+module Open3
+  sig do
+    params(
+      cmd: T.any(String, T::Array[String]),
+      opts: T::Hash[Symbol, T.untyped],
+      block: T.nilable(T.proc.params(stdin: IO, stdout: IO, stderr: IO, wait_thr: Process::Waiter).void)
+    ).returns([IO, IO, IO, Process::Waiter])
+  end
+  def self.popen3(*cmd, **opts, &block); end
+
+  sig do
+    params(
+      cmd: T.any(String, T::Array[String]),
+      opts: T::Hash[Symbol, T.untyped],
+      block: T.nilable(T.proc.params(stdin: IO, stdout: IO, wait_thr: Process::Waiter).void)
+    ).returns([IO, IO, Process::Waiter])
+  end
+  def self.popen2(*cmd, **opts, &block); end
+
+  sig do
+    params(
+      cmd: T.any(String, T::Array[String]),
+      opts: T::Hash[Symbol, T.untyped],
+      block: T.nilable(T.proc.params(stdin: IO, stdout_and_stderr: IO, wait_thr: Process::Waiter).void)
+    ).returns([IO, IO, Process::Waiter])
+  end
+  def self.popen2e(*cmd, **opts, &block); end
+
+  sig do
+    params(
+      cmd: T.any(String, T::Array[String]),
+      stdin_data: T.nilable(String),
+      binmode: T.any(FalseClass, TrueClass),
+      opts: T::Hash[Symbol, T.untyped]
+    ).returns([String, String, Process::Status])
+  end
+  def self.capture3(*cmd, stdin_data: '', binmode: false, **opts); end
+
+  sig do
+    params(
+      cmd: T.any(String, T::Array[String]),
+      stdin_data: T.nilable(String),
+      binmode: T.any(FalseClass, TrueClass),
+      opts: T::Hash[Symbol, T.untyped]
+    ).returns([String, Process::Status])
+  end
+  def self.capture2(*cmd, stdin_data: nil, binmode: false, **opts); end
+
+  sig do
+    params(
+      cmd: T.any(String, T::Array[String]),
+      stdin_data: T.nilable(String),
+      binmode: T.any(FalseClass, TrueClass),
+      opts: T::Hash[Symbol, T.untyped]
+    ).returns([String, Process::Status])
+  end
+  def self.capture2e(*cmd, stdin_data: nil, binmode: false, **opts); end
+
+  sig do
+    params(
+      cmds: T.any(String, T::Array[String]),
+      opts: T::Hash[Symbol, T.untyped],
+      block: T.nilable(T.proc.params(first_stdin: IO, last_stdout: IO, wait_threads: T::Array[Process::Waiter]).void)
+    ).returns([IO, IO, T::Array[Process::Waiter]])
+  end
+  def self.pipeline_rw(*cmds, **opts, &block); end
+
+  sig do
+    params(
+      cmds: T.any(String, T::Array[String]),
+      opts: T::Hash[Symbol, T.untyped],
+      block: T.nilable(T.proc.params(last_stdout: IO, wait_threads: T::Array[Process::Waiter]).void)
+    ).returns([IO, T::Array[Process::Waiter]])
+  end
+  def self.pipeline_r(*cmds, **opts, &block); end
+
+  sig do
+    params(
+      cmds: T.any(String, T::Array[String]),
+      opts: T::Hash[Symbol, T.untyped],
+      block: T.nilable(T.proc.params(first_stdin: IO, wait_threads: T::Array[Process::Waiter]).void)
+    ).returns([IO, T::Array[Process::Waiter]])
+  end
+  def self.pipeline_w(*cmds, **opts, &block); end
+
+  sig do
+    params(
+      cmds: T.any(String, T::Array[String]),
+      opts: T::Hash[Symbol, T.untyped],
+      block: T.nilable(T.proc.params(wait_threads: T::Array[Process::Waiter]).void)
+    ).returns(T::Array[Process::Waiter])
+  end
+  def self.pipeline_start(*cmds, **opts, &block); end
+
+  sig do
+    params(
+      cmds: T.any(String, T::Array[String]),
+      opts: T::Hash[Symbol, T.untyped]
+    ).returns(T::Array[Process::Status])
+  end
+  def self.pipeline(*cmds, **opts); end
+end
diff --git a/2019/ruby/sorbet/rbi/sorbet-typed/lib/ruby/all/resolv.rbi b/2019/ruby/sorbet/rbi/sorbet-typed/lib/ruby/all/resolv.rbi
new file mode 100644
index 0000000..487e803
--- /dev/null
+++ b/2019/ruby/sorbet/rbi/sorbet-typed/lib/ruby/all/resolv.rbi
@@ -0,0 +1,543 @@
+# This file is autogenerated. Do not edit it by hand. Regenerate it with:
+#   srb rbi sorbet-typed
+#
+# If you would like to make changes to this file, great! Please upstream any changes you make here:
+#
+#   https://github.com/sorbet/sorbet-typed/edit/master/lib/ruby/all/resolv.rbi
+#
+# typed: strong
+
+class Resolv
+  sig { params(name: String).returns(String) }
+  def self.getaddress(name); end
+
+  sig { params(name: String).returns(T::Array[String]) }
+  def self.getaddresses(name); end
+
+  sig { params(name: String, block: T.proc.params(address: String).void).void }
+  def self.each_address(name, &block); end
+
+  sig { params(address: String).returns(String) }
+  def self.getname(address); end
+
+  sig { params(address: String).returns(T::Array[String]) }
+  def self.getnames(address); end
+
+  sig { params(address: String, proc: T.proc.params(name: String).void).void }
+  def self.each_name(address, &proc); end
+
+  sig { params(resolvers: [Hosts, DNS]).void }
+  def initialize(resolvers=[Hosts.new, DNS.new]); end
+
+  sig { params(name: String).returns(String) }
+  def getaddress(name); end
+
+  sig { params(name: String).returns(T::Array[String]) }
+  def getaddresses(name); end
+
+  sig { params(name: String, block: T.proc.params(address: String).void).void }
+  def each_address(name, &block); end
+
+  sig { params(address: String).returns(String) }
+  def getname(address); end
+
+  sig { params(address: String).returns(T::Array[String]) }
+  def getnames(address); end
+
+  sig { params(address: String, proc: T.proc.params(name: String).void).void }
+  def each_name(address, &proc); end
+
+  class ResolvError < StandardError; end
+  class ResolvTimeout < Timeout::Error; end
+
+  class Hosts
+    DefaultFileName = T.let(T.unsafe(nil), String)
+
+    sig { params(filename: String).void }
+    def initialize(filename = DefaultFileName); end
+
+    sig { params(name: String).returns(String) }
+    def getaddress(name); end
+
+    sig { params(name: String).returns(T::Array[String]) }
+    def getaddresses(name); end
+
+    sig { params(name: String, block: T.proc.params(address: String).void).void }
+    def each_address(name, &block); end
+
+    sig { params(address: String).returns(String) }
+    def getname(address); end
+
+    sig { params(address: String).returns(T::Array[String]) }
+    def getnames(address); end
+
+    sig { params(address: String, proc: T.proc.params(name: String).void).void }
+    def each_name(address, &proc); end
+  end
+
+  class DNS
+    Port = T.let(T.unsafe(nil), Integer)
+
+    UDPSize = T.let(T.unsafe(nil), Integer)
+
+    sig do
+      params(
+        config_info: T.any(
+          NilClass,
+          String,
+          { nameserver: T.any(String, T::Array[String]), search: T::Array[String], ndots: Integer },
+          { nameserver_port: T::Array[[String, Integer]], search: T::Array[String], ndots: Integer }
+        )
+      ).returns(Resolv::DNS)
+    end
+    def self.open(config_info = nil); end
+
+    sig do
+      params(
+        config_info: T.any(
+          NilClass,
+          String,
+          { nameserver: T.any(String, T::Array[String]), search: T::Array[String], ndots: Integer },
+          { nameserver_port: T::Array[[String, Integer]], search: T::Array[String], ndots: Integer }
+        )
+      ).void
+    end
+    def initialize(config_info = nil); end
+
+    sig { params(values: T.any(NilClass, Integer, T::Array[Integer])).void }
+    def timeouts=(values); end
+
+    sig { void }
+    def close; end
+
+    sig { params(name: String).returns(String) }
+    def getaddress(name); end
+
+    sig { params(name: String).returns(T::Array[String]) }
+    def getaddresses(name); end
+
+    sig { params(name: String, block: T.proc.params(address: String).void).void }
+    def each_address(name, &block); end
+
+    sig { params(address: String).returns(String) }
+    def getname(address); end
+
+    sig { params(address: String).returns(T::Array[String]) }
+    def getnames(address); end
+
+    sig { params(address: String, proc: T.proc.params(name: String).void).void }
+    def each_name(address, &proc); end
+
+    sig do
+      params(
+        name: T.any(String, Resolv::DNS::Name),
+        typeclass: T.class_of(Resolv::DNS::Resource)
+      ).returns(Resolv::DNS::Resource)
+    end
+    def getresource(name, typeclass); end
+
+    sig do
+      params(
+        name: T.any(String, Resolv::DNS::Name),
+        typeclass: T.class_of(Resolv::DNS::Resource)
+      ).returns(T::Array[Resolv::DNS::Resource])
+    end
+    def getresources(name, typeclass); end
+
+    sig do
+      params(
+        name: T.any(String, Resolv::DNS::Name),
+        typeclass: T.class_of(Resolv::DNS::Resource),
+        proc: T.proc.params(resource: Resolv::DNS::Resource).void
+      ).void
+    end
+    def each_resource(name, typeclass, &proc); end
+
+    class DecodeError < StandardError; end
+    class EncodeError < StandardError; end
+
+    class Name
+      sig { params(arg: T.any(String, Resolv::DNS::Name)).returns(Resolv::DNS::Name) }
+      def self.create(arg); end
+
+      sig { params(labels: T::Array[String], absolute: T.any(FalseClass, TrueClass)).void }
+      def initialize(labels, absolute=true); end
+
+      sig { returns(T.any(FalseClass, TrueClass)) }
+      def absolute?; end
+
+      sig { params(other: Resolv::DNS::Name).returns(T.any(FalseClass, TrueClass)) }
+      def subdomain_of?(other); end
+    end
+
+    class Query; end
+
+    class Resource < Query
+      sig { returns(T.nilable(Integer)) }
+      attr_reader :ttl
+
+      sig { void }
+      def initialize
+        @ttl = T.let(T.unsafe(nil), T.nilable(Integer))
+      end
+
+      class Generic < Resource
+        sig { params(data: T.untyped).void }
+        def initialize(data)
+          @data = T.let(T.unsafe(nil), T.untyped)
+        end
+
+        sig { returns(T.untyped) }
+        attr_reader :data
+      end
+
+      class DomainName < Resource
+        sig { params(name: String).void }
+        def initialize(name)
+          @name = T.let(T.unsafe(nil), String)
+        end
+
+        sig { returns(String) }
+        attr_reader :name
+      end
+
+      class NS < DomainName; end
+
+      class CNAME < DomainName; end
+
+      class SOA < Resource
+        sig do
+          params(
+            mname: String,
+            rname: String,
+            serial: Integer,
+            refresh: Integer,
+            retry_: Integer,
+            expire: Integer,
+            minimum: Integer
+          ).void
+        end
+        def initialize(mname, rname, serial, refresh, retry_, expire, minimum)
+          @mname = T.let(T.unsafe(nil), String)
+          @rname = T.let(T.unsafe(nil), String)
+          @serial = T.let(T.unsafe(nil), Integer)
+          @refresh = T.let(T.unsafe(nil), Integer)
+          @retry = T.let(T.unsafe(nil), Integer)
+          @expire = T.let(T.unsafe(nil), Integer)
+          @minimum = T.let(T.unsafe(nil), Integer)
+        end
+
+        sig { returns(String) }
+        attr_reader :mname
+
+        sig { returns(String) }
+        attr_reader :rname
+
+        sig { returns(Integer) }
+        attr_reader :serial
+
+        sig { returns(Integer) }
+        attr_reader :refresh
+
+        sig { returns(Integer) }
+        attr_reader :retry
+
+        sig { returns(Integer) }
+        attr_reader :expire
+
+        sig { returns(Integer) }
+        attr_reader :minimum
+      end
+
+      class PTR < DomainName; end
+
+      class HINFO < Resource
+        sig { params(cpu: String, os: String).void }
+        def initialize(cpu, os)
+          @cpu = T.let(T.unsafe(nil), String)
+          @os = T.let(T.unsafe(nil), String)
+        end
+
+        sig { returns(String) }
+        attr_reader :cpu
+
+        sig { returns(String) }
+        attr_reader :os
+      end
+
+      class MINFO < Resource
+        sig { params(rmailbx: String, emailbx: String).void }
+        def initialize(rmailbx, emailbx)
+          @rmailbx = T.let(T.unsafe(nil), String)
+          @emailbx = T.let(T.unsafe(nil), String)
+        end
+
+        sig { returns(String) }
+        attr_reader :rmailbx
+
+        sig { returns(String) }
+        attr_reader :emailbx
+      end
+
+      class MX < Resource
+        sig { params(preference: Integer, exchange: String).void }
+        def initialize(preference, exchange)
+          @preference = T.let(T.unsafe(nil), Integer)
+          @exchange = T.let(T.unsafe(nil), String)
+        end
+
+        sig { returns(Integer) }
+        attr_reader :preference
+
+        sig { returns(String) }
+        attr_reader :exchange
+      end
+
+      class TXT < Resource
+        sig { params(first_string: String, rest_strings: String).void }
+        def initialize(first_string, *rest_strings)
+          @strings = T.let(T.unsafe(nil), T::Array[String])
+        end
+
+        sig { returns(T::Array[String]) }
+        attr_reader :strings
+
+        sig { returns(String) }
+        def data; end
+      end
+
+      class LOC < Resource
+        sig do
+          params(
+            version: String,
+            ssize: T.any(String, Resolv::LOC::Size),
+            hprecision: T.any(String, Resolv::LOC::Size),
+            vprecision: T.any(String, Resolv::LOC::Size),
+            latitude: T.any(String, Resolv::LOC::Coord),
+            longitude: T.any(String, Resolv::LOC::Coord),
+            altitude: T.any(String, Resolv::LOC::Alt)
+          ).void
+        end
+        def initialize(version, ssize, hprecision, vprecision, latitude, longitude, altitude)
+          @version = T.let(T.unsafe(nil), String)
+          @ssize = T.let(T.unsafe(nil), Resolv::LOC::Size)
+          @hprecision = T.let(T.unsafe(nil), Resolv::LOC::Size)
+          @vprecision = T.let(T.unsafe(nil), Resolv::LOC::Size)
+          @latitude = T.let(T.unsafe(nil), Resolv::LOC::Coord)
+          @longitude = T.let(T.unsafe(nil), Resolv::LOC::Coord)
+          @altitude = T.let(T.unsafe(nil), Resolv::LOC::Alt)
+        end
+
+        sig { returns(String) }
+        attr_reader :version
+
+        sig { returns(Resolv::LOC::Size) }
+        attr_reader :ssize
+
+        sig { returns(Resolv::LOC::Size) }
+        attr_reader :hprecision
+
+        sig { returns(Resolv::LOC::Size) }
+        attr_reader :vprecision
+
+        sig { returns(Resolv::LOC::Coord) }
+        attr_reader :latitude
+
+        sig { returns(Resolv::LOC::Coord) }
+        attr_reader :longitude
+
+        sig { returns(Resolv::LOC::Alt) }
+        attr_reader :altitude
+      end
+
+      class ANY < Query; end
+
+      module IN
+        class A < Resource
+          sig { params(address: String).void }
+          def initialize(address)
+            @address = T.let(T.unsafe(nil), Resolv::IPv4)
+          end
+
+          sig { returns(Resolv::IPv4) }
+          attr_reader :address
+        end
+
+        class WKS < Resource
+          sig { params(address: String, protocol: Integer, bitmap: String).void }
+          def initialize(address, protocol, bitmap)
+            @address = T.let(T.unsafe(nil), Resolv::IPv4)
+            @protocol = T.let(T.unsafe(nil), Integer)
+            @bitmap = T.let(T.unsafe(nil), String)
+          end
+
+          sig { returns(Resolv::IPv4) }
+          attr_reader :address
+
+          sig { returns(Integer) }
+          attr_reader :protocol
+
+          sig { returns(String) }
+          attr_reader :bitmap
+        end
+
+        class AAAA < Resource
+          sig { params(address: String).void }
+          def initialize(address)
+            @address = T.let(T.unsafe(nil), Resolv::IPv6)
+          end
+
+          sig { returns(Resolv::IPv6) }
+          attr_reader :address
+        end
+
+        class SRV < Resource
+          # Create a SRV resource record.
+          #
+          # See the documentation for #priority, #weight, #port and #target
+          # for +priority+, +weight+, +port and +target+ respectively.
+
+          sig do
+            params(
+              priority: T.any(Integer, String),
+              weight: T.any(Integer, String),
+              port: T.any(Integer, String),
+              target: T.any(String, Resolv::DNS::Name)
+            ).void
+          end
+          def initialize(priority, weight, port, target)
+            @priority = T.let(T.unsafe(nil), Integer)
+            @weight = T.let(T.unsafe(nil), Integer)
+            @port = T.let(T.unsafe(nil), Integer)
+            @target = T.let(T.unsafe(nil), Resolv::DNS::Name)
+          end
+
+          sig { returns(Integer) }
+          attr_reader :priority
+
+          sig { returns(Integer) }
+          attr_reader :weight
+
+          sig { returns(Integer) }
+          attr_reader :port
+
+          sig { returns(Resolv::DNS::Name) }
+          attr_reader :target
+        end
+      end
+    end
+  end
+
+  class IPv4
+    Regex256 = T.let(T.unsafe(nil), Regexp)
+    Regex = T.let(T.unsafe(nil), Regexp)
+
+    sig { params(arg: T.any(String, Resolv::IPv4)).returns(Resolv::IPv4) }
+    def self.create(arg); end
+
+    sig { params(address: String).void }
+    def initialize(address)
+      @address = T.let(T.unsafe(nil), String)
+    end
+
+    sig { returns(String) }
+    attr_reader :address
+
+    sig { returns(DNS::Name) }
+    def to_name; end
+  end
+
+  class IPv6
+    Regex_8Hex = T.let(T.unsafe(nil), Regexp)
+    Regex_CompressedHex = T.let(T.unsafe(nil), Regexp)
+    Regex_6Hex4Dec = T.let(T.unsafe(nil), Regexp)
+    Regex_CompressedHex4Dec = T.let(T.unsafe(nil), Regexp)
+    Regex = T.let(T.unsafe(nil), Regexp)
+
+    sig { params(arg: T.any(String, Resolv::IPv6)).returns(Resolv::IPv6) }
+    def self.create(arg); end
+
+    sig { params(address: String).void }
+    def initialize(address)
+      @address = T.let(T.unsafe(nil), String)
+    end
+
+    sig { returns(String) }
+    attr_reader :address
+
+    sig { returns(DNS::Name) }
+    def to_name; end
+  end
+
+  class MDNS < DNS
+    Port = T.let(T.unsafe(nil), Integer)
+    AddressV4 = T.let(T.unsafe(nil), String)
+    AddressV6 = T.let(T.unsafe(nil), String)
+    Addresses = T.let(T.unsafe(nil), [[String, Integer], [String, Integer]])
+
+    sig do
+      params(
+        config_info: T.any(
+          NilClass,
+          { nameserver: T.any(String, T::Array[String]), search: T::Array[String], ndots: Integer },
+          { nameserver_port: T::Array[[String, Integer]], search: T::Array[String], ndots: Integer }
+        )
+      ).void
+    end
+    def initialize(config_info = nil); end
+  end
+
+  module LOC
+    class Size
+      Regex = T.let(T.unsafe(nil), Regexp)
+
+      sig { params(arg: T.any(String, Resolv::LOC::Size)).returns(Resolv::LOC::Size) }
+      def self.create(arg); end
+
+      sig { params(scalar: String).void }
+      def initialize(scalar)
+        @scalar = T.let(T.unsafe(nil), String)
+      end
+
+      sig { returns(String) }
+      attr_reader :scalar
+    end
+
+    class Coord
+      Regex = T.let(T.unsafe(nil), Regexp)
+
+      sig { params(arg: T.any(String, Resolv::LOC::Coord)).returns(Resolv::LOC::Coord) }
+      def self.create(arg); end
+
+      sig { params(coordinates: String, orientation: T.enum(%w[lat lon])).void }
+      def initialize(coordinates, orientation)
+        @coordinates = T.let(T.unsafe(nil), String)
+        @orientation = T.let(T.unsafe(nil), T.enum(%w[lat lon]))
+      end
+
+      sig { returns(String) }
+      attr_reader :coordinates
+
+      sig { returns(T.enum(%w[lat lon])) }
+      attr_reader :orientation
+    end
+
+    class Alt
+      Regex = T.let(T.unsafe(nil), Regexp)
+
+      sig { params(arg: T.any(String, Resolv::LOC::Alt)).returns(Resolv::LOC::Alt) }
+      def self.create(arg); end
+
+      sig { params(altitude: String).void }
+      def initialize(altitude)
+        @altitude = T.let(T.unsafe(nil), String)
+      end
+
+      sig { returns(String) }
+      attr_reader :altitude
+    end
+  end
+
+  DefaultResolver = T.let(T.unsafe(nil), Resolv)
+  AddressRegex = T.let(T.unsafe(nil), Regexp)
+end
diff --git a/2019/ruby/sorbet/rbi/todo.rbi b/2019/ruby/sorbet/rbi/todo.rbi
new file mode 100644
index 0000000..6e054cc
--- /dev/null
+++ b/2019/ruby/sorbet/rbi/todo.rbi
@@ -0,0 +1,221 @@
+# This file is autogenerated. Do not edit it by hand. Regenerate it with:
+#   srb rbi todo
+
+# typed: strong
+module Chalk::Tools::RedactionUtils; end
+module Chalk::Tools::RedactionUtils::RedactionDirectiveSpec; end
+module CodeRay::Encoders::HTML::Numbering::DEFAULT_OPTIONS; end
+module CodeRay::Encoders::HTML::Numbering::Output::TABLE; end
+module CodeRay::Encoders::XML::REXML::Document; end
+module CodeRay::Encoders::XML::REXML::Text; end
+module CodeRay::Encoders::XML::REXML::Text; end
+module CodeRay::Encoders::XML::REXML::Text; end
+module CodeRay::Encoders::XML::REXML::Text; end
+module CodeRay::Encoders::XML::REXML::XMLDecl; end
+module Opus::Ownership; end
+module Opus::Sensitivity::Utils; end
+module Pry::Command::ClearScreen::Helpers::Platform; end
+module Pry::Command::Ri::RDoc::Markup::ToAnsi; end
+module Pry::Command::Ri::RDoc::RI; end
+module Pry::Command::Ri::RDoc::RI::Driver; end
+module Pry::Command::Ri::RDoc::RI::Driver::NotFoundError; end
+module Pry::Command::Ri::RDoc::RI::PryDriver; end
+module Pry::Config::Default::Readline; end
+module Pry::Editor::FFI::NotFoundError; end
+module Pry::Editor::Spoon; end
+module Pry::History::Readline::HISTORY; end
+module Pry::History::Readline::HISTORY; end
+module Pry::History::Readline::HISTORY; end
+module Pry::InputCompleter::IRB::Context; end
+module Pry::Pager::SimplePager::Readline; end
+module Pry::Pry::BasicObject; end
+module Pry::Pry::BasicObject; end
+module Pry::Pry::BasicObject; end
+module Pry::Pry::BasicObject; end
+module Pry::Pry::BasicObject; end
+module Pry::Pry::BlockCommand; end
+module Pry::Pry::CLI; end
+module Pry::Pry::CLI; end
+module Pry::Pry::CLI; end
+module Pry::Pry::ClassCommand; end
+module Pry::Pry::ClassCommand; end
+module Pry::Pry::ClassCommand; end
+module Pry::Pry::ClassCommand; end
+module Pry::Pry::ClassCommand; end
+module Pry::Pry::ClassCommand; end
+module Pry::Pry::ClassCommand; end
+module Pry::Pry::ClassCommand; end
+module Pry::Pry::ClassCommand; end
+module Pry::Pry::ClassCommand; end
+module Pry::Pry::ClassCommand; end
+module Pry::Pry::ClassCommand; end
+module Pry::Pry::ClassCommand; end
+module Pry::Pry::ClassCommand; end
+module Pry::Pry::ClassCommand; end
+module Pry::Pry::ClassCommand; end
+module Pry::Pry::ClassCommand; end
+module Pry::Pry::ClassCommand; end
+module Pry::Pry::ClassCommand; end
+module Pry::Pry::ClassCommand; end
+module Pry::Pry::ClassCommand; end
+module Pry::Pry::ClassCommand; end
+module Pry::Pry::Code; end
+module Pry::Pry::Code; end
+module Pry::Pry::Code; end
+module Pry::Pry::Code; end
+module Pry::Pry::Code; end
+module Pry::Pry::Code; end
+module Pry::Pry::Code; end
+module Pry::Pry::Code; end
+module Pry::Pry::Code; end
+module Pry::Pry::Code; end
+module Pry::Pry::Code; end
+module Pry::Pry::Code; end
+module Pry::Pry::Code; end
+module Pry::Pry::CodeObject; end
+module Pry::Pry::CodeObject; end
+module Pry::Pry::CodeObject::Helpers; end
+module Pry::Pry::ColorPrinter; end
+module Pry::Pry::ColorPrinter; end
+module Pry::Pry::ColorPrinter; end
+module Pry::Pry::Command; end
+module Pry::Pry::Command; end
+module Pry::Pry::Command; end
+module Pry::Pry::Command; end
+module Pry::Pry::Command::ExitProgram; end
+module Pry::Pry::Command::GemInstall; end
+module Pry::Pry::Command::Help; end
+module Pry::Pry::Command::InstallCommand; end
+module Pry::Pry::Command::Ls::DEFAULT_OPTIONS; end
+module Pry::Pry::Command::Ls::Formatter; end
+module Pry::Pry::Command::Ls::Formatter; end
+module Pry::Pry::Command::Ls::Formatter; end
+module Pry::Pry::Command::Ls::Formatter; end
+module Pry::Pry::Command::Ls::Formatter; end
+module Pry::Pry::Command::Ls::Formatter; end
+module Pry::Pry::Command::Ls::Formatter; end
+module Pry::Pry::Command::Ls::Interrogatable; end
+module Pry::Pry::Command::Ls::Interrogatable; end
+module Pry::Pry::Command::Ls::Interrogatable; end
+module Pry::Pry::Command::Ls::Interrogatable; end
+module Pry::Pry::Command::Ls::MethodsHelper; end
+module Pry::Pry::Command::Ls::MethodsHelper; end
+module Pry::Pry::Command::Nesting; end
+module Pry::Pry::Command::RaiseUp; end
+module Pry::Pry::Command::Ri; end
+module Pry::Pry::Command::Whereami; end
+module Pry::Pry::Command::Wtf; end
+module Pry::Pry::CommandError; end
+module Pry::Pry::CommandError; end
+module Pry::Pry::Commands; end
+module Pry::Pry::Commands; end
+module Pry::Pry::Commands; end
+module Pry::Pry::Commands; end
+module Pry::Pry::Commands; end
+module Pry::Pry::Commands; end
+module Pry::Pry::Commands; end
+module Pry::Pry::Commands; end
+module Pry::Pry::Commands; end
+module Pry::Pry::Commands; end
+module Pry::Pry::Commands; end
+module Pry::Pry::Commands; end
+module Pry::Pry::Commands; end
+module Pry::Pry::Commands; end
+module Pry::Pry::Commands; end
+module Pry::Pry::Commands; end
+module Pry::Pry::Commands; end
+module Pry::Pry::Config; end
+module Pry::Pry::Config; end
+module Pry::Pry::Config; end
+module Pry::Pry::Config; end
+module Pry::Pry::Config; end
+module Pry::Pry::Config; end
+module Pry::Pry::Config::Lazy; end
+module Pry::Pry::DEFAULT_CONTROL_D_HANDLER; end
+module Pry::Pry::DEFAULT_EXCEPTION_HANDLER; end
+module Pry::Pry::DEFAULT_EXCEPTION_WHITELIST; end
+module Pry::Pry::DEFAULT_HOOKS; end
+module Pry::Pry::DEFAULT_PRINT; end
+module Pry::Pry::DEFAULT_SYSTEM; end
+module Pry::Pry::Editor; end
+module Pry::Pry::Forwardable; end
+module Pry::Pry::Forwardable; end
+module Pry::Pry::Helpers; end
+module Pry::Pry::Helpers::BaseHelpers; end
+module Pry::Pry::Helpers::BaseHelpers; end
+module Pry::Pry::Helpers::BaseHelpers; end
+module Pry::Pry::Helpers::BaseHelpers; end
+module Pry::Pry::Helpers::BaseHelpers; end
+module Pry::Pry::Helpers::BaseHelpers; end
+module Pry::Pry::Helpers::BaseHelpers; end
+module Pry::Pry::Helpers::BaseHelpers; end
+module Pry::Pry::Helpers::BaseHelpers; end
+module Pry::Pry::Helpers::CommandHelpers; end
+module Pry::Pry::Helpers::CommandHelpers; end
+module Pry::Pry::Helpers::CommandHelpers; end
+module Pry::Pry::Helpers::CommandHelpers; end
+module Pry::Pry::Helpers::CommandHelpers; end
+module Pry::Pry::Helpers::CommandHelpers; end
+module Pry::Pry::Helpers::DocumentationHelpers; end
+module Pry::Pry::Helpers::Platform; end
+module Pry::Pry::Helpers::Text; end
+module Pry::Pry::Helpers::Text; end
+module Pry::Pry::Helpers::Text; end
+module Pry::Pry::Helpers::Text; end
+module Pry::Pry::Helpers::Text; end
+module Pry::Pry::Helpers::Text; end
+module Pry::Pry::Helpers::Text; end
+module Pry::Pry::Helpers::Text; end
+module Pry::Pry::Helpers::Text; end
+module Pry::Pry::Hooks; end
+module Pry::Pry::Indent; end
+module Pry::Pry::Indent; end
+module Pry::Pry::Indent::UnparseableNestingError; end
+module Pry::Pry::InputCompleter; end
+module Pry::Pry::InputLock; end
+module Pry::Pry::InputLock; end
+module Pry::Pry::InputLock; end
+module Pry::Pry::Method; end
+module Pry::Pry::Method; end
+module Pry::Pry::Method; end
+module Pry::Pry::Method; end
+module Pry::Pry::Method; end
+module Pry::Pry::Method; end
+module Pry::Pry::Method; end
+module Pry::Pry::Method; end
+module Pry::Pry::Method; end
+module Pry::Pry::Method; end
+module Pry::Pry::Method; end
+module Pry::Pry::Method; end
+module Pry::Pry::Method; end
+module Pry::Pry::Method::Patcher; end
+module Pry::Pry::Method::Patcher; end
+module Pry::Pry::Pager::StopPaging; end
+module Pry::Pry::Prompt; end
+module Pry::Pry::Prompt::DEFAULT_NAME; end
+module Pry::Pry::Prompt::SAFE_CONTEXTS; end
+module Pry::Pry::REPL; end
+module Pry::Pry::RescuableException; end
+module Pry::Pry::RescuableException; end
+module Pry::Pry::RescuableException; end
+module Pry::Pry::RescuableException; end
+module Pry::Pry::RescuableException; end
+module Pry::Pry::Slop; end
+module Pry::Pry::Slop; end
+module Pry::Pry::Slop; end
+module Pry::Pry::Slop::InvalidOptionError; end
+module Pry::Pry::Terminal; end
+module Pry::Pry::Terminal; end
+module Pry::Pry::Terminal; end
+module Pry::Pry::WrappedModule; end
+module Pry::Pry::WrappedModule; end
+module Pry::Pry::WrappedModule; end
+module Pry::Pry::WrappedModule; end
+module Pry::Pry::WrappedModule; end
+module Pry::Pry::WrappedModule; end
+module Pry::Pry::WrappedModule::Candidate; end
+module Pry::REPL::Coolline; end
+module Pry::REPL::Readline; end
+module Pry::REPL::Readline; end
+module Pry::REPL::Readline; end
+module Pry::REPL::Readline; end