/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/Gemfile/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/generators/sidekiq/templates/job_test.rb.erb/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/generators/sidekiq/job_generator.rb/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/sidekiq/api.rb/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/examples/por.rb/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/generators/sidekiq/templates/job_spec.rb.erb/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/generators/sidekiq/templates/job.rb.erb/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/generators/sidekiq/templates/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/generators/sidekiq/home/sim4n6/Desktop/GhSec/repos/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/generators/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/sidekiq/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/examples/home/sim4n6/Desktop/GhSec/home/sim4n6/Desktop/home/sim4n6/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/sidekiq/cli.rb/home/source<%require 'test_helper'
 module_namespacing do "-%>https://rubygems.org# frozen_string_literal: truerequire 'rails_helper'

class $stdout<%=. class_name syncrequire%>gemspecgem=JobTest < Minitest::Test
  def test_example
    skip "add some examples to (or delete) #{__FILE__}"
  end
end
Job
  include Sidekiq::Job

  def perform(*args)
    # Do something
  end
end
truerakerails/generators/named_base end 
yamlredis-namespace'sidekiq
RSpec.describe railssingleton,>= 6.0.2moduleJob, type: :job do
  pending "add some examples to (or delete) #{__FILE__}"
end
Sidekiqmodule_namespacingzlibdoGeneratorsclass_name# :nodoc:sqlite3classendJobGeneratorbase64<platforms::Rails::rubyStatsdefinitialize/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/sidekiq/client.rbNamedBasefetch_stats_fast!activerecord-jdbcsqlite3-adapterdescThis generator creates a Sidekiq Job in app/sidekiq and a corresponding testprocessed/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/sidekiq/delay.rbstatsecurerandom:processed:jrubycheck_class_collisionsuffix# mail dependenciesJobsidekiq/middleware/chainnet-smtpfailedExtensions:failedselfsidekiq/job_utilenable_delay!default_generator_rootscheduled_sizeFilelogger:scheduled_sizedirnameClient(include__FILE__erroroptparse)retry_sizeSidekiq's Delayed Extensions will be removed in Sidekiq 7.0. :mriJobUtil:retry_size#{erbcaller##falsedead_size1# Define client-side middleware:create_job_file#..:dead_sizetemplate#   client = Sidekiq::Client.newgroupfileutils#   client.middleware do |chain|:testjob.rb.erb#     chain.use MyClientMiddleware#   endenqueued#   client.push('class' => 'SomeWorker', 'args' => [1,2,3])# All client instances default to the globally-definedminitestjoin:enqueued# Sidekiq.client_middleware but you can change as necessary.firstapp/sidekiq}sidekiq/launchermiddlewaresimplecovprocesses_size&class_path# Start up sidekiq via:processes_size# ./bin/sidekiq -r ./examples/por.rbsidekiq/util# and then you can open up an IRB session like so:codecovfile_name# irb -r ./examples/por.rbifworkers_size# where you can then sayblock# PlainOldRuby.perform_async "like a dog", 3_job.rb:workers_sizeCLIUtilPlainOldRubydefault_queue_latency@chainSingleton||=Worker:default_queue_latencyunless:development/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/sidekiq/exception_handler.rbclient_middleware$TESTINGcreate_test_fileattr_accessorqueuesreturndefined?perform:launcherstandardtest_frameworkhow_hard:environmentdupQueuessuper hard==parseyieldnew:rspecargshow_longARGVcreate_job_spec:load_testlengthsExceptionHandlerelseLoggersleepsetup_optionscreate_job_test# O(1) redis callscallhiredisputsexpipe1_res:redis_poolinitialize_loggerctxvalidate!Workin' redisprivate{toxiproxy# Sidekiq::Client normally uses the default Redis pool but you may|# pass a custom ConnectionPool if you want to shard yourconntemplate_filejruby?warn# Sidekiq jobs across several Redis instances (for scalabilitydump_jsonspec/sidekiq# reasons, e.g.)#   Sidekiq::Client.new(ConnectionPool.new { Redis.new })pipelined# Generally this is only needed for very large Sidekiq installs processing/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/sidekiq/extensions/action_mailer.rb_job_spec.rb# thousands of jobs per second.  I don't recommend sharding unless youempty?get/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/sidekiq/extensions# cannot scale any other way (e.g. splitting your app into smaller apps)./home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/sidekiq/extensions/active_record.rbstat:processedredis_poolActiveSupportjob_spec.rb.erbJRUBY_VERSIONnil@redis_poolstat:failednamesidekiq/extensions/active_record# Code within this method is not tested because it alters||Thread: # global process state irreversibly.  PRs which improve thesidekiq/extensions/action_mailer# test coverage of Sidekiq::CLI are welcomed.currentzcardmessagerun[# Need to patch Psych so it can autoload classes whose names are serializedtest/sidekiqschedule:sidekiq_via_pool# in the delayed YAML.boot_app]Psychsidekiq/extensions/generic_proxyVisitorsToRubyboot_applicationretryprepend# Adds +delay+, +delay_for+ and +delay_until+ methods to ActionMailer to offload arbitrary email_job_test.rb# delivery to Sidekiq.backtraceenvironment# @example# The main method used to push a job to Redis.  Accepts a number of options:#    UserMailer.delay.send_welcome_email(new_user)development#   queue - the named queue to use, default 'default'#    UserMailer.delay_for(5.days).send_welcome_email(new_user)#   class - the worker class to call, required#    UserMailer.delay_until(5.days.from_now).send_welcome_email(new_user)\njob_test.rb.erb#   args - an array of simple arguments to the perform method, must be JSON-serializable&&DelayedMailer#   at - timestamp to schedule the job (optional), must be Numeric (e.g. Time.now.to_f)dead#   retry - whether to retry this job if it fails, default true or an integer number of retriestty?#   backtrace - whether to save any error backtrace, default false# If class is set to the class name, the jobs' options will be based on Sidekiq's default# worker options. Otherwise, they will be based on the job class's options.scardlog_formatter@_file_name# Any options valid for a worker class's sidekiq_options are also available here.nil?ymlis_a?processessuper# All options must be strings, not symbols.  NB: because we are serializing to JSON, all# Adds +delay+, +delay_for+ and +delay_until+ methods to ActiveRecord to offload instance method# symbols in 'args' will be converted to strings.  Note that +backtrace: true+ can take quite a bit ofsub# space in Redis; a large volume of failing jobs can start Redis swapping if you aren't careful.targetPsychAutoload# Returns a unique Job ID.  If middleware stops the job, nil will be returned instead.method_namelrange# Example:#   push('queue' => 'my_queue', 'class' => MyWorker, 'args' => ['foo', 1, :bat => 'bar'])kwargsqueue:defaulton_load# execution to Sidekiq.:active_record#   User.recent_signups.each { |user| user.delay.mark_as_awesome }-# Please note, this is not recommended as this will serialize the entire# object to Redis.  Your Sidekiq jobs should pass IDs, not entire instances.# This is here for backwards compatibility with Delayed::Job only.DelayedModelActiveRecord_?jobFormatters\zerror_handlers/iYAMLPrettypush<<load:action_maileritemnormedextendprint_bannermsgnormalize_itemActionMailer?infopayloadpublic_sendBooted Rails process_single*versionsidekiq/extensions/class_methods application in entry environmentModule__send__6**:includerails_app?self_readapplicationself_writejob# The email method can return nil, which causes ActionMailer to returnKlassconfig# an undeliverable empty message.beginIOgeneratorsload_jsonpipedeliver_nowoptionssigs%w[:railsrescueraiseINTresolve_classklass_nameTERMTTINTSTPnow returned an undeliverable mail object:test_frameworkTime# USR1 and USR2 don't work on the JVM!sidekiq_delayraw_pushUSR2pro?handle_exceptionProxyjid# constantizeto_fnameseachthencesigsplitenqueued_atold_handlerSignalhandlertrapshift0sidekiq_delay_forrespond_to?interval:call=>@statsExceptionto_i!!! ERROR HANDLER THREW AN ERROR !!!# Push a large number of jobs to Redis. This method cuts out the redisexc# network round trip latency.  I wouldn't recommend pushing more than# 1000 per call but YMMV based on network quality, size of job args, etc.# signal handlers can't use Logger so puts only# A large number of jobs can cause a bit of Redis command processing latency.# Takes the same arguments as #push except that args is expected to beError in # an Array of Arrays.  All other keys are duplicated for each job.  Each job# is run through the client middleware pipeline and each job gets its own Job IDmerge handler2# as normal.# Returns an array of the of pushed jobs' jids.  The number of jobs pushed can be lessatinject# than the number given if the middleware stopped processing for one or more jobs.3inspectObjectpush_bulkitems+constant4const_defined?ArgumentError5Bulk arguments must be an Array of Arrays: [[1], [2]]sidekiq_delay_untilconst_gettimestampSignal # O(number of processes + number of queues) redis calls not supportedconst_missingfetch_stats_slow!NameErrorRunning in sscan_eachalias_methodRUBY_DESCRIPTION:delay:sidekiq_delayto_a:delay_for:sidekiq_delay_for:delay_until:sidekiq_delay_untilpipe2_res/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/sidekiq/fetch.rbkey/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/sidekiq/job.rbhgetBasicFetch/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/sidekiq/extensions/class_methods.rb# We want the fetch operation to timeout every few seconds so the threadbusy# can check if the process is shutting down.TIMEOUTUnitOfWorkqueueStructsidekiq/workerArray:queuellen# Sidekiq::Job is a new alias for Sidekiq::Worker as of Sidekiq 6.3.0.all?:jobqueue:# Use `include Sidekiq::Job` rather than `include Sidekiq::Worker`.# Adds `delay`, `delay_for` and `delay_until` methods to all Classes to offload class method# The term "worker" is too generic and overly confusing, used in severalLICENSE#   User.delay.delete_inactive# different contexts meaning different things. Many people call a Sidekiq#   Wikipedia.delay.download_changes_for(Date.today)# process a "worker". Some people call the thread that executes jobs aUpgrade to Sidekiq Pro for more features and support: https://sidekiq.orgDelayedClass# "worker". This change brings Sidekiq closer to ActiveJob where your job# classes extend ApplicationJob.# no jobs to pushacknowledges# nothing to dodeletesizequeue_namedelete_prefix...Job 'at' must be a Numeric or an Array of Numeric timestamps/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/sidekiq/job_logger.rbsumrequeue:to_irpushJobLogger@loggerNumericmissing queue liststart:queuesfetch_stats!Processclock_gettimereset@optionsstats/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/sidekiq/job_retry.rb@strictly_ordered_queuesCLOCK_MONOTONICJob 'at' Array must have same size as 'args' Array:strictall@queueswith_elapsed_time_contextsidekiq/scheduled!=mapqsidekiq/apidoneProflatten# Automatically retry jobs that fail in Sidekiq.# touch the connection pool so it is created before weuniq!# Sidekiq's retry support assumes a typical development lifecycle:payloadscompact#   0. Push some code changes with a bug in it.# fire startup and start multithreading.#   1. Bug causes job processing to fail, Sidekiq's middleware captures:to_s#      the job and pushes it onto a retry queue.#   2. Sidekiq retries jobs in the retry queue multiple times withredis_info#      an exponential delay, the job continues to fail.#   3. After a few days, a developer deploys a fix. The job isvermset_args#      reprocessed successfully.retrieve_work#   4. Once retries are exhausted, Sidekiq will give up and move theredis_versionqs#      job to the Dead Job Queue (aka morgue) where it must be dealt withqueues_cmd#      manually in the Web UI.#   5. After 6 months on the DJQ, Sidekiq will discard the job.# A job looks like:# 4825 Sidekiq Pro with all queues paused will return anYou are connecting to Redis v# empty set of queues with a trailing TIMEOUT value.<=with_indexjob_argsworkindexcopybrpopfail#     { 'class' => 'HardWorker', 'args' => [1, 2, 'foo'], 'retry' => true }/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/sidekiq/extensions/generic_proxy.rb# The 'retry' option also accepts a number (in place of 'true'):#     { 'class' => 'HardWorker', 'args' => [1, 2, 'foo'], 'retry' => 5 }# The job will be retried this number of times before giving up. (If simply# 'true', Sidekiq retries 25 times)# Relevant options for job retries:#  * 'queue' - the queue for the initial job#  * 'retry_queue' - if job retries should be pushed to a different (e.g. lower priority) queue#  * 'retry_count' - number of times we've retried so far.#  * 'error_message' - the message from the exception#  * 'error_class' - the exception class#  * 'failed_at' - the first time it failed#  * 'retried_at' - the last time it was retried#  * 'backtrace' - the number of lines of error backtrace to store# We don't store the backtrace by default as that can add a lot of overhead# to the job and everyone is using an error service, right?# The default number of retries is 25 which works out to about 3 weeks# You can change the default maximum number of retries in your initializer:#   Sidekiq.options[:max_retries] = 7# or limit the number of retries for a particular worker and send retries to# a low priority queue with:#    class MyWorker#      include Sidekiq::Worker#      sidekiq_options retry: 10, retry_queue: 'low'#    endJobRetryHandledbulk_requeueprepareSecureRandominprogressjob_hashhex12/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/sidekiq/job_util.rb, Sidekiq requires Redis v4.0.0 or greaterleveltimedebugstat:SIZE_LIMITmsetRuntimeErrormaxmemory_policylog_level;# These functions encapsulate various job utilities.Re-queueing terminated jobs# They must be simple and free from side effects.noevictionlog_atSkipvalidatejobs_to_requeue<<~EOMContext


          WARNING: Your Redis instance will evict Sidekiq data under heavy load.
          The 'noeviction' maxmemory policy is recommended (current policy: 'Job must be a Hash with 'class' and 'args' keys: `withDEFAULT_MAX_RETRY_ATTEMPTS').
          See: https://github.com/mperham/sidekiq/wiki/Using-Redis#memory

        job_hash_contextunit_of_workEOM`25Unknown stat Hasharray_of_arraysjobs# If we're using a wrapper class, like ActiveJob, use the "wrapped"8_192# attribute to expose the underlying thing.zipkey?resulthsort_byBasicObjectdisplay_class_wrappedperformable@max_retries# Since the user can pass us a connection pool explicitly in the initializer, weJob args must be an Array: `# need to verify the size is large enough or else Sidekiq's performance is dramatically slowed.Pushed cursizefetch jobs back to Redis:max_retriesneeded# The global retry handler requires only the barest of data.:concurrency# We want to be able to retry as much as possible so we don'tJob class must be either a Class or String representation of the class name: `# require the worker to be instantiated.:bidYour pool of global Redis connections is too small, please increase the size to at least jobstrcollectFailed to requeue to_hClass jobs: # cache process identity# Allows sharding of jobs across any number of Redis instances.  All jobs# defined within the block will use the given Redis connection pool.StringHistorybid@performabledays_previousstart_date@target@opts:identity@days_previousidentity@start_date#   pool = ConnectionPool.new { Redis.new }# Creating the Redis#brpop command takes into account any# configured queue weights. By default Redis#brpop returnsutc#   Sidekiq::Client.via(pool) do#     SomeWorker.perform_async(1,2,3)#     SomeOtherWorker.perform_async(1,2,3)Shutdown# thousands of jobs per second.  I do not recommend sharding unless# Touch middleware so it isn't lazy loaded by multiple threads, #3043# you cannot scale any other way (e.g. splitting your app into smaller apps).ey:tagsserver_middlewareJob 'at' must be a Numeric timestamp: `via# Before this point, the process is initializing with just the main thread.pooltagsNo pool given# Starting here the process will now have multiple threads running.fire_event:startup# ignore, will be pushed back onto queue during hard_shutdownmethod_missingcurrent_sidekiq_poolto_dateelapsed_time_contexteexception_caused_by_shutdown?# data from the first queue that has pending elements. Weelapsedensure@processedreverseJob tags must be an Array: `# recreate the queue command each time we invoke Redis#brpop# to honor weights and avoid queue starvation.to_sreraiseattempt_retry# Sidekiq has a limitation in that its message must be JSON.Client Middleware: permute:on_complex_argumentsdate_stat_hash:klass:raisedeath_handlers
          Job arguments to @failed, shuffle must be native JSON types, see https://github.com/mperham/sidekiq/wiki/Best-Practices.
          To disable this error, remove `Sidekiq.strict_args!` from your initializer.
        # Resque compatibility helpers.  Note all helpershandler_ex# should go through Worker#client_push.stat_hash# Example usage:context#   Sidekiq::Client.enqueue(MyWorker, 'foo', 1, :bat => 'bar')dates# Messages are enqueued to the 'default' queue.# JSON can't round trip real Ruby objects so we use YAML tojson_safe?downto# serialize the objects to a String.  The YAML will be convertedenqueue# to JSON and then deserialized on the other side back into a# Ruby object.klasselsifobjServer Middleware: date:warnstrftime%Y-%m-%dmarshalleddumproundkeyslaunchError calling death handlerclient_pushdatestr>/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/sidekiq/launcher.rb job argument is #   Sidekiq::Client.enqueue_to(:queue_name, MyWorker, 'foo', 1, :bat => 'bar')bytesizemgetenqueue_toStarting processing, hit Ctrl-C to stop bytes, you should refactor it to reduce the sizeeach_with_indexsidekiq/manager@launchervaluesidekiq/fetchLauncher# The Launcher starts the Manager and Poller threads and provides the process heartbeat.STATS_TTLlauncher do not serialize to JSON safely. This will raise an error in
          Sidekiq 7.0. See https://github.com/mperham/sidekiq/wiki/Best-Practices or raise an error today
          by calling `Sidekiq.strict_args!` during Sidekiq initialization.
        365while24readable_io#   Sidekiq::Client.enqueue_to_in(:queue_name, 3.minutes, MyWorker, 'foo', 1, :bat => 'bar')60selectenqueue_to_in# 5 yearsPROCTITLESsignalprocintVERSION# The local retry support means that any errors that occur within# merge in the default sidekiq_options for the item's class and/or wrapped elementgets# this allows ActiveJobs to control sidekiq_options too.defaultsstripmenormalized_hashhandle_signaldatatag/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/sidekiq/logger.rbtsProcessorWORKER_STATEget_sidekiq_optionsidx# this block can be associated with the given worker instance.# This is required to support the `sidekiq_retries_exhausted` block.hash:get_sidekiq_options# Note that any exception from the block is wrapped in the Skiporig_contextInterruptShutting downmerge!RedisstopCommandErrorBye!:sidekiq_context# Explicitly exit so busy Processor threads won't block process shutdown./home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/sidekiq/manager.rb# mget will trigger a CROSSSLOT error when run against a Cluster# NB: slow at_exit handlers will prevent a timely exit if they take# a while to run. If Sidekiq is getting here but the process isn't exiting,# use the TTIN signal to determine where things are stuck.exit1_000_000_000# TODO Someone want to add Cluster support?wsidekiq/processor\e# Encapsulates a queue within Sidekiq.# Allows enumeration of all jobs within the queueset# and deletion of jobs.#   queue = Sidekiq::Queue.new("mailer")[37m# The Manager is the central coordination point in Sidekiq, controllingLoggingUtils#   queue.each do |job|# the lifecycle of the Processors.LEVELS#     job.klass # => 'MyWorker'# Tasks:#     job.args # => [1, 2, 3]# 1. start: Spin up Processors.#     job.delete if job.jid == 'abcdef1234567890'# 3. processor_died: Handle job failure, throw away Processor, create new one.# 4. quiet: shutdown idle Processors.Queue# 5. stop: hard stop the Processors by deadline.Job must include a valid queue namer# Note that only the last task requires its own Thread since it has to monitorEnumerable# the shutdown process.  The other tasks are performed by other threads.[31m# Return all known queues within Redis.Managerattr_readerfatalb:workersc[30m:optionsdefault_proc[0msortInvalid log level: banner%{
               m,
      @countdebug?#   Sidekiq::Client.enqueue_in(3.minutes, MyWorker, 'foo', 1, :bat => 'bar')         `$b
      :nameenqueue_in10    .ss,  $$:         .,d$
      default    `$$P,d$P'    .,md$P"'
      Concurrency of created_atinfo?perform_in     ,$$$$$b@name is not supportedwarn?@rname@doneerror?item_class@workersmd$$$P^'
      Setfatal?con   .d$$$$$$ of # exception so the global block does not reprocess the error.  Thelocal_levelMessage must include a Sidekiq::Worker class, not class name: # Skip exception is unwrapped within Sidekiq::Processor#process beforeconcurrency# calling the handle_exception handlers.ancestors:sidekiq_log_levellocal# Sidekiq Pro overrides this busy]workerpaused?# Calculates this queue's latency, the difference in seconds since the oldestatomic_push# job in the queue was enqueued.# @return FloatstoppingcaselatencywhenIntegerstopping?default_worker_options:managerJSON:poller:fetcherSymbolzadd:fetch@manager@pollertimesScheduledPoller/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/sidekiq/middleware/chain.rb/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/sidekiq/middleware@plockinitial_sizeMutex@threaddeleted_sizesafe_threadpageheartbeatpage_sizemethodx:start_heartbeat50loop# Middleware is code configured to run before/after# a message is processed.  It is patterned after Rack# middleware. Middleware exists for the client side# (pushing jobs onto the queue) as well as the server$$$P'
         $$^' `"range_start# side (when jobs are actually processed).# Stops this instance from processing any more jobs,# To add middleware for the client:to_pushquiet# Sidekiq.configure_client do |config|$$$'       #   config.client_middleware do |chain|#     chain.add MyClientHookrange_end# end____  _     _      _    _
      # To modify middleware for the server, just callterminate# with another block:   $:     ,$$:      # Sidekiq.configure_server do |config|# Shuts down the process.  This method does not#   config.server_middleware do |chain|# return until all work is complete and cleaned up. / ___|(_) __| | ___| | _(_) __ _
      #     chain.add MyServerHookTerminating quiet workers# It can take up to the timeout to complete.deadline   `b     :$$       entries \\___ | |/ _` |/ _ sadd# We've handled this error associated with this job, don't#     chain.remove ActiveRecord# need to handle it at the global level# To insert immediately preceding another entry:break#     chain.insert_before ActiveRecord, MyClientHook:quietlpush# Note that +worker+ can be nil here if an error is raised before we can# To insert immediately after another entry:# instantiate the worker instance.  All access must be guarded and# best effort.#     chain.insert_after ActiveRecord, MyClientHook# Change the thread-local level for the duration of the given block.# This is an example of a minimal server middleware:# class MyServerHookexception:shutdown#   def call(worker_instance, msg, queue)max_retry_attemptsold_local_levelretry_attempts_from# some of the shutdown events can be async,# we don't have any way to know when they're done but# give them a little time to take effectPAUSE_TIME:timeoutPausing to allow workers to finish...#     puts "Before work"wait_for#     yield# Redefined to check severity against #level, and thus the thread-local level, rather than +@level+.#     puts "After work"retry_queue# FIXME: Remove when the minimum Ruby version supports overriding Logger#level.# Requeue everything in case there was a worker who grabbed work while stoppedadd# This call is a no-op in Sidekiq but necessary for Sidekiq Pro.severityhard_shutdownstrategyprocessor_stoppedprognameprocessormexception_messagesynchronizeclear_heartbeatworker_class:scrub!processor_diedforce_encodingreasonutf-8invokeUNKNOWNscrub!@prognameBEAT_PAUSEstart_heartbeaterror_messagep@logdeverror_class# This is an example of a minimal client middleware, notecount# the method must return the result or the job will not pushHeartbeat stopping...# to Redis:retry_count# class MyClientHook#   def call(worker_class, msg, queue, redis_pool)#     puts "Before push"#     result = yield# Remove record from Redis since we are shutting down.stopped?#     puts "After push"# Note we don't stop the heartbeat thread; if the process#     result |/ / |/ _` |
      # doesn't actually exit, it'll reappear in the Web UI.Middleware# We've reached the timeout and we still have busy workers.          $$:        Chainwriteretried_atinitialize_copysrem/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/sidekiq/middleware/current_attributes.rbinstance_variable_setunlink# best effort, ignore network errors$0active_support/current_attributesto_data# Automatically save and load any current attributes in the execution contextformat_message# so context attributes "flow" from Rails actions into any associated jobs.# This can be useful for multi-tenancy, i18n locale, timezone, any implicitformat_severity# per-request attribute. See +ActiveSupport::CurrentAttributes+.❤#   # in your initializer+= ___) | | (_| |  __/   <| | (_| |
      #   require "sidekiq/middleware/current_attributes"flush_stats#   Sidekiq::CurrentAttributes.persist(Myapp::Current)failsCurrentAttributes          $$         FAILURESaveJobRecord|____/|_|cattrprocd__,_|@klass___|_|PROCESSED_|__, |
      formatter        .d$$          attrs# They must die but their jobs shall live on.nowdatecleanupattributes                             |_|
      Basehas_key?Formatter# Find the job with the given JID within this queue.# This is a slow, inefficient operation.  Do not use undertid# normal conditions.SIGNAL_HANDLERSfind_jobsidekiq_tid# Ctrl-C in terminaldetectincrbyj->cliobject_idstat:processed:^clearTerminating pidLoadexpiremulti busy worker threads# TERM is the signal that Sidekiq must exit.# Heroku sends TERM and then waits 30 seconds for process to exit.36:@entriesformat_contextany?stat:failed:kvReceived TSTP, no longer accepting new work:💣Work still in progress list:clearthreadpersist# Encapsulates a pending job within a Sidekiq queue or@entries# sorted set.configure_clientThread TID-# The job should be considered immutable but may be# removed from the queue via JobRecord#delete.:itemblock_given?:value@argsremoveconfigure_server@valueprogram_name@itemiso8601 pid=<no backtrace available> tid=# Re-enqueue unfinished jobs# NOTE: You may notice that we may push a job back to redis before# the worker thread is terminated. This is ok because Sidekiq's# contract says that jobs are run AT LEAST once. Process termination# is delayed until we're certain the jobs are back in Redis because# it is worse to lose a job than to run it twice.delete_ifUNHANDLED_SIGNAL_HANDLER/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/sidekiq/middleware/i18n.rbWithoutTimestampNo signal handler registered, ignoring# Simple middleware to save the current locale and restore it when the job executes.killpid=# Use it by requiring it in your initializer:#     require 'sidekiq/middleware/i18n'# when this method returns, we immediately call `exit` which may not giveI18n# the remaining threads time to run `ensure` blocks, etc. We pause here up# Get the current locale and store it in the message# to 3 seconds to give threads a minimal amount of time to run `ensure` blocks.failed_at# to be sent to Sidekiq._worker_queue_redislocalelines@queueEntrylvlinserterror_backtracecompress_backtraceinsert_beforedelayoldklassdelay_fornewklass# Logging here can break retries if the logging device raises ENOSPC #3979# logger.debug { "Failure! Retry #{count} in #{delay} seconds" }retry_at# Pull the msg locale out and set the current thread to use it.# we're exiting the process, things might be shut down so don't# try to handle the exceptionServerUnable to flush stats: with_localeParserErrordefault_locale/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/sidekiq/monitor.rb# If the job payload in Redis is invalid JSON, we'll load# the item as an empty hash and store the invalid JSON as# the job 'args' for display in the Web UI.@invalidat_exiti#!/usr/bin/env ruby:flush_stats# Goodbye dear message, you (re)tried your best I'm sure.retries_exhaustedchainnew_entry# Unwrap known wrappers so they show up in a human-friendly manner in the Web UI&.curstatesidekiq_retries_exhausted_blockdelete_atMonitorworkers_keyStatusVALID_SECTIONS/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/sidekiq/paginator.rboverviewError calling retries_exhaustedPaginatorpageidxoptsCOL_PADinsert_aftersend_to_morguedisplaysection\ASidekiq::Extensions::Delayedinclude?I don't know how to check the status of 'safe_load'!Try one of these: current_pageGot total_sizesend signalActiveJob::QueueAdapters::SidekiqAdapter::JobWrapperstartingjob_classCouldn't get status: endingtypeSidekiq ActionMailer::DeliveryJobrev:reverseActionMailer::MailDeliveryJob# MailerClass#mailer_methodset_environmentzsetAdding dead ---- Overview ----arguments  Processed: delimit job zrevrangecli_env# See #984 for discussion.with_scores# APP_ENV is now the preferred ENV term since it is not tech-specific.# Both Sinatra 2.0+ and Sidekiq support this term.# RAILS_ENV and RACK_ENV are there for legacy support.@environmentENVzrangeAPP_ENV     Failed: DeadSetRAILS_ENVRACK_ENVnotify_failure       Busy: /home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/sidekiq/processor.rbdisplay_argssymbolize_keys_deep!@display_argsmsg_retry   Enqueued: symkey:to_symto_symarg    Retries:   Scheduled: jitterrand       Dead: sidekiq_retry_in_blockcustom_retry_in---- Processes (retry_in# remove MailerClass, mailer_method and 'deliver_now'process_setdropexists?) ----process:die:exitparse_error15A parse error occurred. Check the syntax of the file. If the file is invalid, correct the error or exclude the file from analysis./home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/sidekiq/cli.rb:223: A parse error occurred. Check the syntax of the file. If the file is invalid, correct the error or exclude the file from analysis.tags_for☠retrieve:make_new# parse CLI optionsparse_options  Started: started_at# check config file presence:config_fileencrypt (# no point in showing 150+ bytes of random garbageexist?time_agotraverse_chain[encrypted data]No such file Failure scheduling retry using the defined `sidekiq_retry_in` in   Threads: config_dir, falling back to defaultdirectory?:require busy)sidekiq/job_loggersidekiq/job_retry   Queues: split_multiline# The Processor is a standalone thread which:# 1. fetches a job from Redis# 2. executes the job#   a. instantiate the Worker#   b. run the middleware chain#   c. call #perform# A Processor can exit due to shutdown (processor_stopped)# or due to an error during job execution (processor_died)pad# If an error occurs in the job execution, the11# Processor calls the Manager to create a new onesidekiq.yml# to replace itself and exits.# Cache nil valuessidekiq.yml.erb:thread@error_backtracemgrconfig_file@mgr@down@job---- Queues (queue_data@strategyuncompress_backtracepatheach_paircolumns@reloader:reloader:ljusthset@job_logger# parse config file optionsmake_new:job_logger# Remove this job from the queue.:lengthlremmax@retrierrttcheck_rtt:rjustkbwait/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/sidekiq/rails.rbmemory_usage[]:size# nil will happen if the JSON fails to parse.exists# We don't guarantee Sidekiq will work with bad job JSON but we should# make a best effort to minimize the damage.EnginecontentReloaderchecked_causesparse_config# unlike the other actors, terminate does not wait# for the thread to finish because we don't know how# long the job will take to finish.  Instead we# provide a `kill` method to call after the shutdown# timeout passes.:latency# set defaultscause# #1761 in dev mode, it's possible to have jobs enqueued which haven't been loaded into# Handle circular causes# memory yet so the YAML can't be loaded.Unable to load YAML: :runhmsetto_jsonRAILS_MAX_THREADSinstance_of?process_oneuntilbeatcoldirwidth# merge with defaults# Handle old jobs with raw Array backtrace format# Extract message from exception.# Set a default if the message raises an errordecodedprintBase64upcasertt_usMAJORget_onedecode64appuncompressedreverse!ZlibInflateSidekiq no longer supports this version of RailsinflaterssRedis is online, sidekiq/railsnoneexpand_path# Handle old jobs with marshalled backtrace format# TODO Remove in 7.xMarshal/config/environment.rbrpopcan't page a -signals:tag sec downtimedefault_tagSortedEntry# first heartbeat or recovering from an outage and need to reestablish our heartbeat:score:heartbeat:parentrootparentscorebasenamehandle_fetch_exceptionprevdir@score# Capistrano release directory?/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/sidekiq/redis_connection.rbreleasesconnection_pooluriRedisConnection# App code can stuff all sorts of crazy binary data into the error message# that won't convert to JSON.10_000@parent!!! ERROR MESSAGE THREW AN ERROR !!!numberserializedcompresseddelete_by_valueDeflatescan@appError fetching job: deflate.{1,3}encode64delete_by_jidreloaderwrapreschedule#<Sidekiq::Rails::Reloader @app=dispatch# since middleware can mutate the job hash# By including the Options module, we allow AJs to directly control sidekiq features# via the *sidekiq_options* class method and, for instance, not use AJ's retry system.# we need to clone it to report the original# AJ retries don't show up in the Sidekiq UI Retries tab, save any error data, can't be# job structure to the Web UI# manually retried, don't automatically die, etc.# or to push back to redis when retrying.#   class SomeJob < ActiveJob::Basezincrby# To avoid costly and, most of the time, useless cloning here,#     queue_as :default# we pass original String of JSON to respected methods#     sidekiq_options retry: 3, backtrace: 10# to re-parse it there if we need access to the original, untouched job#     def perform/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/sidekiq/scheduled.rb#     endinitializervaluessidekiq.active_job_integration:active_jobadd_to_queueremove_job:padOptionsmax_length:sidekiq_options:max_lengthSETS80sidekiq.rails_logger# Rails 5 requires a Reloader to wrap code execution.  In order to# constantize the worker and instantiate an instance, we have to call# the Reloader.  It handles code loading, db connection management, etc.# ignore all redis/network issues# Effectively this block denotes a "unit of work" to Rails.Enq/config/application.rbLUA_ZPOPBYSCORE<<~LUAheartbeat: constantize
        local key, now = KEYS[1], ARGV[1]
        local jobs = redis.call("zrangebyscore", key, "-inf", now, "limit", 0, 1)
        if jobs[1] then
          redis.call("zrem", key, jobs[1])
          return jobs[1]
        end
      LUA-=# don't lose the counts if there was a network issue==================================================================@lua_zpopbyscore_shaincrenqueue_jobs  Please point Sidekiq to a Rails application or a Ruby file  sorted_sets# A job's "score" in Redis is the time at which it should be processed.# Just check Redis for the set of jobs with a timestamp before now.  to load your worker classes with -r [DIR|FILE].sorted_set# Place job in the dead set@parser# Get next item in the queue with score (time to execute) <= now.# We need to go through the list one at a time to reduce the risk of somethingdie# going wrong between the time jobs are popped from the scheduled queue and when# they are pushed onto a work queue and losing the jobs.# We run the heartbeat every five seconds.# Capture five samples of RTT, log a warning if each sample# is above our warning threshold.RTT_READINGSzpopbyscoreRingBufferoptRTT_WARNING_LEVEL50_000argva# Treat malformed JSON as a special case: job goes straight to the morgue.resultszrangebyscore is not a valid valuezremrangebyscore:microsecondenqueued pingInvalid JSON for job# multiple jobs with the same score# we can't notify because the job isn't a valid hash payload.# This is the integration code necessary so that if code uses `Rails.logger.info "Hello"`,option_parser# find the one with the right JID and push it# it will appear in the Sidekiq console with all of the job context. See #5021 and# https://github.com/rails/rails/blob/b5f2b550f69a99336482739000c58e4e04e033aa/railties/lib/rails/commands/server/server_command.rb#L82-L84matchednonmatched# Ideal RTT for Redis is < 1000µs# Workable is < 10,000µs# Log a warning if it's a disaster.logger_outputs_to?raw_conn:redispartitionackscript:loadevalshabroadcaststart_with?
          Your Redis network connection is performing extremely poorly.
          Last RTT readings were NOSCRIPTbuffer# This hook happens after all initializers are run, just before returning# from config/environment.rb back to sidekiq/cli.rb.# None of this matters on the client-side, only within the Sidekiq process itself.execute_job, ideally these should be < 1000.
          Ensure Redis is running in the same AZ or datacenter as Sidekiq.
          If these values are close to 100,000, that means your Sidekiq process may be
          CPU overloaded; see https://github.com/mperham/sidekiq/discussions/5039
        after_initialize# The Poller checks Redis every N seconds for jobs in the retry or scheduled# set have passed their timestamp and should be enqueued.  If so, it# just pops the job back onto its original queue so the# workers can pick it up like any other job.INITIAL_WAITMEMORY_GRABBER@enqRUBY_PLATFORMlinux# Had to force kill this job because it didn't finish:scheduled_enq# within the timeout.  Don't acknowledge the work since# we didn't properly finish it.readlines/proc/$$# push the rest back onto the sorted set/statusline# this is the common case: job raised error and Sidekiq::JobRetry::Handled# signals that we created a retry successfully.  We can acknowlege the job.next/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/sidekiq/sd_notify.rb@sleeperVmRSS:ConnectionPoolJob raised exceptionTimedStack# The MIT License# Copyright (c) 2017, 2018, 2019, 2020 Agis Anastasopoulos# Permission is hereby granted, free of charge, to any person obtaining a copy of# this software and associated documentation files (the "Software"), to deal in# the Software without restriction, including without limitation the rights to# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of# the Software, and to permit persons to whom the Software is furnished to do so,# subject to the following conditions:# The above copyright notice and this permission notice shall be included in all@count_calls# copies or substantial portions of the Software.# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS# FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHERSortedSet# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.# Shut down this instance, will pause until the thread is dead.# This is a copy of https://github.com/agis/ruby-sdnotify as of commit a7d52ee# Unexpected error!  This is very bad and indicates an exception that got past# The only changes made was "rehoming" it within the Sidekiq module to avoid# the retry subsystem (e.g. network partition).  We won't acknowledge the job# namespace collisions and applying standard's code formatting style.# so it can be rescued when using Sidekiq Pro.socket# SdNotify is a pure-Ruby implementation of sd_notify(3). It can be used to# notify systemd about state changes. Methods of this package are no-op on@_size# non-systemd systems (eg. Darwin).# The API maps closely to the original implementation of sd_notify(3),# therefore be sure to check the official man pages prior to using SdNotify.darwin|bsd# @see https://www.freedesktop.org/software/systemd/man/sd_notify.htmlSdNotify# Exception raised when there's an error writing to the notification socketInternal exception!NotifyErrorps -o pid,rss -p READYREADY=1:terminateRELOADINGmatchtlastRELOADING=1100# We don't want a shutdown signal to interrupt job acknowledgment.to_enumhandle_interrupt:scanparse!:nevercreateoutsymbolized_optionstransform_keyscloned_argslength:urlu@datadetermine_redis_provider# Ruby doesn't provide atomic counters out of the box so we'llhostnamezscan_each# implement something simple ourselves.# https://bugs.ruby-lang.org/issues/14706Counter@lockamountserver?# Give ourselves plenty of connections.  pool is lazy# so we won't create them until we need them.val# jruby's Hash implementation is not threadsafe, so we wrap it in a mutex hereSharedWorkerState@worker_stateverify_sizingJobSetlabelspool_timeout:pool_timeoutlog_infotimeout] [uniqbuild_client:labelsseconds# Sidekiq needs a lot of concurrent Redis connections.# We need a connection for each Processor.# We need a connection for Pro's real-time change listener# We need a connection to various features to call Redis every few seconds:just now#   - the process heartbeat.#   - enterprise's leader election#   - enterprise's cron support# this data changes infrequently so dump it to a string# now so we don't need to dump it every heartbeat.@jsona minute agoYour Redis connection pool is too small for Sidekiq to work. Your pool has 120 connections but must have at least floornamespace minutes ago:namespace3600an hour ago/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/sidekiq/systemd.rb7200run_at hours ago# Sidekiq's systemd integration allows Sidekiq to inform systemd:client#  1. when it has successfully started#  2. when it is starting shutdownQUEUE_STRUCT#  3. periodically for a liveness check with a watchdog threadclient_optsstart_watchdogusec@queue_dataredis/namespaceWATCHDOG_USECNamespaceoffset_sizeparsersystemd Watchdog too fast: LoadErrorOptionParseroonstrYour Redis configuration uses the namespace '-c1_000_000--concurrency INTsec_f' but the redis-namespace gem is not included in the Gemfile.processor threads to useelements1_000_000.0Add the gem to your Gemfile to continue using a namespace. Otherwise, remove the namespace parameter.# "It is recommended that a daemon sends a keep-alive notification message# to the service manager every half of the time returned here."ping_fPinging systemd watchdog every -d127--daemonDaemonize process secreverse_eachelementERROR: Daemonization mode was removed in Sidekiq 6.0, please use a proper process supervisor to start and manage your services-ewatchdog--environment ENVApplication environment# Fetch jobs that match a given time or Range. Job ID is an# optional second argument.begin_scoreend_score# the false flag limits search for name to under the constant namespace#   which mimics Rails' behaviour-gRange:network_timeout--tag TAG/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/sidekiq/testing/inline.rb:driversprintfSTOPPING/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/sidekiq/testingSTOPPING=1ConnectionSTATUSdriversSTATUS=ERRNOERRNO=rubyMAINPIDMAINPID=sidekiq/testingeach_with_object# Issue #3303, redis-rb will silently retry an operation.WATCHDOG# This can lead to duplicate jobs if Sidekiq::Client's LPUSH# is performed twice but I believe this is much, much rarerWATCHDOG=1# The Sidekiq inline infrastructure overrides perform_async so that it# than the reconnect silently fixing a problem; we keep it# actually calls perform instead. This allows workers to be run inline in a# on by default.FDSTORE# testing environment./home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/sidekiq/testing.rbFDSTORE=1# This is similar to `Resque.inline = true` functionality.:reconnect_attemptsjob_score#   require 'sidekiq/testing/inline'ready#   $external_variable = 0#   class ExternalWorkerunset_env#     include Sidekiq::Worker#       $external_variable = 1redacted#   assert_equal 0, $external_variablenotify#   ExternalWorker.perform_asyncREDACTED#   assert_equal 1, $external_variable# Deep clone so we can muck with these options all we want and exclude# params from dump-and-load that may contain objects that Marshal isTesting# unable to safely dump.inline!:logger:__test_modereloading:ssl_params__set_test_modescrubbed_optionsmode# Find the job with the given JID within this sorted set.# This is a slower O(n) operation.  Do not use for app logic.slicecurrent_mode__test_mode/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/sidekiq/util.rb# @param status [String] a custom status string that describes the current#   state of the serviceforwardablestatusURIdisable!sidekiq/exception_handlerpassword:disable# This module is part of Sidekiq core and not intended for extensions.# @param errno [Integer]errnoForwardablefake!def_delegators:@buf:[]:each:fake:password# @param pid [Integer]mainpid@size:inline@bufschedulerenabled?initial_wait@indexdisabled?fake?Scheduler exiting...%inline?fdstore# Most likely a problem with redis networking.@server_chain# Punt and try again at the next intervalfill# @return [Boolean] true if the service manager expects watchdog keep-alive#   notification messages to be sent from this process.# If the $WATCHDOG_USEC environment variable is set,# and the $WATCHDOG_PID variable is unset or set to the PID of the current# process# @note Unlike sd_watchdog_enabled(3), this method does not mutate the#   environment.# hack for quicker development / testing environment #2774watchdog?popwd_usecrandom_poll_interval0.10.5# Wait for the orblock to be true or the deadline passed.retcondblockTimeoutzremwd_pidErrorProcess tag for procline# expected# if poll_interval_average hasn't been calculated yet, we can# raise an error trying to reach Redis.remaining-q--queue QUEUE[,WEIGHT]Queues to process with optional weights# We want one Sidekiq process to schedule jobs every N seconds.  We have M processes# and **don't** want to coordinate.# So in N*M second timespan, we want each process to schedule once.  The basic loop is:# * sleep a random amount within that N*M timespan# * wake up and scheduleweight# We want to avoid one edge case: imagine a set of 2 processes, scheduling every 5 seconds,# so N*M = 10.  Each process decides to randomly sleep 8 seconds, now we've failed to meet# that 5 second average. Thankfully each schedule cycle will sleep randomly so the next# iteration could see each process sleep for 1 second, undercutting our average.# So below 10 processes, we special case and ensure the processes sleep closer to the average.# In the example above, each process should schedule every 10 seconds on average. We special# case smaller clusters to add 50% so they would sleep somewhere between 5 and 15 seconds.# As we run more processes, the scheduling interval average will approach an even spread# between 0 and poll interval so we don't need this artifical boost.parse_queueprocess_count# For small clusters, calculate a random interval that is ±50% the desired average.poll_interval_average# Default to fake testing to keep old behavior-r--require [PATH|DIR]EmptyQueueError# With 10+ processes, we should have enough randomness to get decent pollingLocation of Rails application with workers or file to require# across the entire timespanlast_wordsTestingClient# We do our best to tune the poll interval to the size of the active Sidekiq# cluster.  If you have 30 processes and poll every 15 seconds, that means one# Sidekiq is checking Redis every 0.5 seconds - way too often for most people# and really bad if the retry or scheduled sets are large.# Instead try to avoid polling more than once every 15 seconds.  If you have-t# 30 Sidekiq processes, we'll poll every 30 * 15 or 450 seconds.# To keep things statistically random, we'll sleep a random amount between# 225 and 675 seconds for each poll or 450 seconds on average.  Otherwise restarting--timeout NUM# all your Sidekiq processes at the same time will lead to them all polling at# the same time: the thundering herd problem.# We only do this if poll_interval_average is unset (the default).Shutdown timeout:poll_interval_averagescaled_poll_interval:delete# Calculates an average poll interval based on the number of known Sidekiq processes.:delete_by_jid# This minimizes a single point of failure by dispersing check-ins but without taxing# Redis if you run many Sidekiq processes.# Allows enumeration of scheduled jobs within Sidekiq.# Based on this, you can search/filter for jobs.  Here's an# example where I'm selecting all jobs of a certain type# and deleting them from the schedule queue.:average_scheduled_poll_interval#   r = Sidekiq::ScheduledSet.new#   r.select do |scheduled|#     scheduled.klass == 'Sidekiq::Extensions::DelayedClass' &&#     scheduled.args[0] == 'User' &&#     scheduled.args[1] == 'setup_new_subscriber'# The work buried within Sidekiq::ProcessSet#cleanup can be#   end.map(&:delete)-v# expensive at scale. Cut it down by 90% with this counter.ScheduledSet# NB: This method is only called by the scheduler thread so we# don't need to worry about the thread safety of +=.--verbosepcountPrint more verbose outputProcessSet# Allows enumeration of retries within Sidekiq.:verbose# and deleting them from the retry queue.#   r = Sidekiq::RetrySet.new#   r.select do |retri|#     retri.klass == 'Sidekiq::Extensions::DelayedClass' &&#     retri.args[0] == 'User' &&#     retri.args[1] == 'setup_new_subscriber'RetrySetretry_all:retrykill_all:killDYNO# Allows enumeration of dead jobs within Sidekiq.Socketgethostnameprocess_nonce@@process_nonce@@identityevent:reraisearr:lifecycle_events-infzremrangebyrankException during Sidekiq lifecycle event.id:sentinels# Have all processes sleep between 5-15 seconds.  10 seconds%#.2fWATCHDOG_PID# to give time for the heartbeat to register (if the poll interval is going to be calculated by the number-C# of workers), and 5 random seconds to ensure they don't all hit Redis at the same time.total--config PATHpath to YAML config filesentinel@process_setprocess_job/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/sidekiq/version.rb-L--logfile PATHBooting Sidekiq path to writable logfile6.3.2 with redis options ERROR: Logfile redirection was removed in Sidekiq 6.0, Sidekiq will only log to STDOUT# The Queues class is only for testing the fake queue implementation.-P# There are 2 data structures involved in tandem. This is due to the# Rspec syntax of change(QueueWorker.jobs, :size). It keeps a reference# to the array. Because the array was dervied from a filter of the total--pidfile PATH# Notify systemd with the provided state, via the notification socket, if# any.NAME# Generally this method will be used indirectly through the other methodspath to pidfile# of the library./home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/sidekiq/web/application.rb# @param state [String]/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/sidekiq/web/action.rb# @param unset_env [Boolean]# jobs enqueued, it appeared as though the array didn't change./home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/sidekiq/web# @return [Fixnum, nil] the number of bytes written to the notification# To solve this, we'll keep 2 hashes containing the jobs. One with keys based#   socket or nil if there was no socket to report to (eg. the program wasn't# on the queue, and another with keys of the worker names, so the array for#   started by systemd)ERROR: PID file creation was removed in Sidekiq 6.0, please use a proper process supervisor to start and manage your services# @raise [NotifyError] if there was an error communicating with the systemd/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/sidekiq/web/csrf_protection.rb#   socket client with redis options state# QueueWorker.jobs is a straight reference to a real array.-V# Queue-based hash:# {--version#   "default"=>[sock# this file originally based on authenticity_token.rb from the sinatra/rack-protection project#     {WebApplication#       "class"=>"TestTesting::QueueWorker",# The MIT License (MIT)Print version and exit#       "args"=>[1, 2],NOTIFY_SOCKETWebRouter#       "retry"=>true,# Copyright (c) 2011-2017 Konstantin Haase#       "queue"=>"default",# Copyright (c) 2015-2017 Zachary Scott#       "jid"=>"abc5b065c5c4b27fc1102833",REDIS_KEYS#       "created_at"=>1447445554.419934# Permission is hereby granted, free of charge, to any person obtaining#     }# a copy of this software and associated documentation files (the#   ]uptime_in_days# }# 'Software'), to deal in the Software without restriction, including# without limitation the rights to use, copy, modify, merge, publish,connected_clients# distribute, sublicense, and/or sell copies of the Software, and to# permit persons to whom the Software is furnished to do so, subject to# the following conditions:# The above copyright notice and this permission notice shall be# included in all copies or substantial portions of the Software.Addrinfo# THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,unix# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.used_memory_human:DGRAM# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANYused_memory_peak_human# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.connectCSP_HEADERmax_jobsdefault-src 'self' https: http:close_on_execchild-src 'self'# Worker-based hash:/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/sidekiq/web/helpers.rb#   "TestTesting::QueueWorker"=>[connect-src 'self' https: http: wss: ws:WebActionfont-src 'self' https: http:RACK_SESSIONrack.sessionframe-src 'self'# If you have this in your environment::envimg-src 'self' https: http: data:# MY_REDIS_URL=redis://hostname.example.com:1238/4:block# then set::type# REDIS_PROVIDER=MY_REDIS_URLsettingsWebmanifest-src 'self'media-src 'self'request@request#   require 'sidekiq/testing'# and Sidekiq will find your custom URL variable with no customcgiobject-src 'none'#   assert_equal 0, Sidekiq::Queues["default"].size# initialization code at all.#   HardWorker.perform_async(:something)#   assert_equal 1, Sidekiq::Queues["default"].size:notify_failure#   assert_equal :something, Sidekiq::Queues["default"].first['args'][0]script-src 'self' https: http: 'unsafe-inline'# This is not a public API# You can also clear all workers' jobs:REDIS_PROVIDERWebHelpersstyle-src 'self' https: http: 'unsafe-inline'#   Sidekiq::Queues.clear_allstrings# This can be useful to make sure jobs don't linger between tests:langworker-src 'self'#   RSpec.configure do |config|#     config.before(:each) do#       Sidekiq::Queues.clear_all@strings=~base-uri 'self'# Allow sidekiq-web extensions to add locale paths# so extensions can be localizedJob killed by APIjobs_by_queue; locales
            REDIS_PROVIDER should be set to the name of the variable which contains the Redis URL, not a URL itself.
            Platforms like Heroku will sell addons that publish a *_URL variable.  You need to tell Sidekiq with REDIS_PROVIDER, e.g.:

            REDISTOGO_URL=redis://somehost.example.com:6379/4
            REDIS_PROVIDER=REDISTOGO_URL
          freezeset_backtracesidekiq [options]rack/requestfind_locale_fileson_tailREDIS_URL-hfileCsrfProtectionstrs--helpShow helpopenenvaccept?admitdenyDEBUGsingularizetabs/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/sidekiq/web/router.rb# On each successful request, we create a fresh masked token:singularize# which will be used in any forms rendered for this request.# railsERBsessionread# nothing, backwards compatibilityrackhead:csrfclear_cachesGETfilenameTOKEN_LENGTH@locale_filesDELETE# HEAD / is the cheapest heartbeat possible,:csrf_token@available_locales# it hits Redis to ensure connectivityPOSTmask_tokenlocale_filesPUTflat_mapPATCHDirHEAD:deep_symbolize_keys!ROUTE_PARAMS/*.ymldeep_symbolize_keys!rack.route_params@redis_infoREQUEST_METHODsafe?PATH_INFOOPTIONSTRACErouteavailable_localeshandlestats_history.ymlparamsdaysrack.logger30post@processed_historyrack.errors\/parse_queues@failed_history\.yml$:dashboard:dead_max_jobs# This is a hook for a Sidekiq Pro feature.  Please don't touch.filtering# This view helper provide ability display you html code inattack prevented by :dead_timeout_in_seconds# to head of page. Example:#   <% add_to_head do %>#     <link rel="stylesheet" .../>#     <meta .../>/busy#   <% end %>add_to_head# Enumerates the set of Sidekiq processes which are actively working@head_html# right now.  Each process sends a heartbeat to Redis every 5 secondsqueues_and_weights# so this set should be relatively accurate, barring network partitions.:busy403# Yields a Sidekiq::Process.putContent-Typequeue_and_weighttext/plainclean_plzdisplay_custom_headForbidden# Cleans up dead processes recorded in Redis.patch# Returns the number of processes cleaned.text_directionget_localeRackjobs_by_workerTextDirectionRequestltrquiet!@jobs_by_queuertl?haltresrtlthrowstop!:halt# See https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4user_preferred_languageslanguagesHTTP_ACCEPT_LANGUAGEprocs@jobs_by_workerredirectheartbeatslocationpro302downcasegsubdelete_forLocation\sbase_url# the hash named key has an expiry of 60 seconds.# if it's not found, that means the process has not reported# in to Redis and probably died.to_prunelanguagequalityindifferent_hash;q=# Ignore wildcards===root_path1.0/queuesclear_forleftroute_paramsrightQUEUE_NAME<=>[a-z_:.\-0-9]+:first@routes/queues/:nameclear_all404# Given an Accept-Language header like "fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,ru;q=0.2"# this method will try to best match the available locales to the user's preferred languages.# Inspiration taken from https://github.com/iain/http_accept_language/blob/master/lib/http_accept_language/parser.rb# The Sidekiq testing infrastructure overrides perform_async!~# so that it does not actually touch the network.  Instead it@locale# stores the asynchronous jobs in a per-class array so that# their presence/absence can be asserted by your tests.matched_locale# We're making a tradeoff here between consuming more memory instead of# This is similar to ActionMailer's :test delivery_method and its# making more roundtrips to Redis, but if you have hundreds or thousands of workers,# you'll be happier this waypreferred:"preferred_languagehmget_erb_lang_groupqueues: srcWebRoute@current_pageavailable cannot be defined twice@total_size@jobs# ActionMailer::Base.deliveries array.#   assert_equal 0, HardWorker.jobs.sizeviews#   assert_equal 1, HardWorker.jobs.size#   assert_equal :something, HardWorker.jobs[0]['args'][0]#   assert_equal 0, Sidekiq::Extensions::DelayedMailer.jobs.size#   MyMailer.delay.send_welcome_email('foo@example.com')#   assert_equal 1, Sidekiq::Extensions::DelayedMailer.jobs.size# You can also clear and drain all workers' jobs:.erb#   assert_equal 0, Sidekiq::Extensions::DelayedModel.jobs.size#   MyModel.delay.do_something_hard#   assert_equal 1, Sidekiq::Extensions::DelayedModel.jobs.sizerequest_methodat_sdirectionpath_infoclass_evalUtilsasc<<-RUBY# If a process is stopped between when we query Redis for `procs` and#   Sidekiq::Worker.clear_all # or .drain_allunescape# when we query for `result`, we will have an item in `result` that is# composed of `nil` values.#       Sidekiq::Worker.clear_all# There are servers which send an empty string when requesting the root.# or for acceptance testing, i.e. with cucumber:# These servers should be ashamed of themselves.#   AfterStep do#     Sidekiq::Worker.drain_all
          Sidekiq::Web needs a valid Rack session for CSRF protection. If this is a Rails app,
          make sure you mount Sidekiq::Web *inside* your application routes:


          Rails.application.routes.draw do
            mount Sidekiq::Web => "/sidekiq"
            ....
          end


          If this is a Rails app in API mode, you need to enable sessions.

            https://guides.rubyonrails.org/api_app.html#using-session-middlewares

          If this is a bare Rack app, use a session middleware before Sidekiq::Web:

            # first, use IRB to create a shared secret key for sessions and commit it
            require 'securerandom'; File.open(".session.key", "w") {|f| f.write(SecureRandom.hex(32)) }

            # now use the secret with a session cookie middleware
            use Rack::Session::Cookie, secret: File.read(".session.key"), same_site: true, max_age: 86400
            run Sidekiq::Web

        #   When I sign up as "foo@example.com"#   Then I should receive a welcome email to "foo@example.com"ClassMethods# Queue for this worker# Jobs queued for this worker:application# Clear all jobs for this workergiventokensidekiq/systemdauthenticity_tokenpause# Drain and run all jobs for this workervalid_token?drainpause!next_jobunpause32# This method is not guaranteed accurate since it does not prune the set# Checks that the token given to us as a parameter matches# based on current heartbeat.  #each does that and ensures the set only/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/sidekiq/web.rb# the token stored in the session.# contains Sidekiq processes which have sent a heartbeat within the last# 60 seconds.unpause!:request_method:patternNAMED_SEGMENTS_PATTERN([^]*):([^.:$]+)# Total number of threads available to execute jobs.sidekiq/paginator# For Sidekiq Enterprise customers this number (in production) must be# less than or equal to your licensed concurrency.# Pop out a single job and perform itpatterntotal_concurrencytokenperform_onesidekiq/web/helpersdecode_token/queues/:name/delete@request_methodperform_one called with empty job queuesidekiq/web/router# client input is invalidsidekiq/web/actionsesstotal_rss_in_kbsidekiq/web/applicationkey_vallocaltokensidekiq/web/csrf_protectionrack/content_lengthredirect_with_query# Checks that Rack::Session::Cookie actualy contains the csrf toeknrack/builder:total_rss:total_rss_in_kbqueues/# Returns the identity of the current cluster leader or "" if no leader.# Rotate the session token after every userack/static# This is a Sidekiq Enterprise feature, will always return "" in Sidekiq# or Sidekiq Pro.leader@leaderROOT__LINE__CGIescape
            def _erb_/../../web
              VIEWSfind
            end
          @patternRUBY/views/morgue@blockLOCALESmatcher/locales@_erb@matchermin_by_erbcompileLAYOUT:locals/layout.erbASSETS@dead/assetsDEFAULT_TABSenDashboard# within is used by Sidekiq Promatch?Busydisplay_tagswithin_render/\1(?<\2>[^$/]+)<span class='label label-info jobtag'>:bid=RegexpRetriesescape_htmlrenderretriesA</span>engineZscheduled:morgueDeadmorgue/morgue/:keyOnly erb templates are supported:key:erb# mperham/sidekiq#3243unfiltered?default_tabscustom_tabs@custom_tabsjson/filter/path_match200:tabs:custom_tabsparse_params@localesapplication/jsonnamed_captures@viewsCache-Controlenablestring:deadprivate, no-storedisable/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/sidekiq/worker.rb# Clear all queued jobs across all workers# Drain all queued jobs across all workerssidekiq/clientdrain_allworker_classessort_direction_label# Include this module in your worker class and you can easily create# asynchronous jobs::direction#   class HardWorker# See if it's actually a masked token or not. We should be able# to handle any unmasked tokens that we've issued without error.#     sidekiq_options queue: 'critical', retry: 5unmasked_token?#     def perform(*args)#       # do some work&uarr;compare_with_real_token# Then in your Rails app, you can do this:&darr;#   HardWorker.perform_async(1, 2, 3)# Note that perform_async is a class method, perform is an instance method.retry_or_delete_or_killmasked_token?# Sidekiq::Worker also includes several APIs to provide compatibility withdear-leader# ActiveJob.#   class SomeWorkerunmaskedworkers#     queue_as :criticalunmask_tokenWorkers#     def perform(...)middlewares@env@middlewares#   SomeWorker.set(wait_until: 1.hour).perform_async(123)/morgue/all/deleteTestingExtensions# Token is malformed# Note that arguments passed to the job must still obey Sidekiq'sjobs_for# best practice for simple, JSON-native data types. Sidekiq will not@files# implement ActiveJob's more complex argument serialization. Foruse# this reason, we don't implement `perform_later` as our call semantics# are very different.# Creates a masked version of the authenticity token that varies# on each request. The masking is used to mitigate SSL attacks# The Options module is extracted so we can include it in ActiveJob::Baselocals# and allow native AJs to configure Sidekiq features/internals.# like BREACH.define_singleton_method/morgue/all/retryincludedbaseattributesingleton_methodsone_time_padbindingrandom_bytessessionsencrypted_tokenxor_byte_strings@processesmasked_tokensidekiq_class_attribute:sidekiq_options_hashstrict_encode64:sidekiq_retry_in_block:sidekiq_retries_exhausted_block# Essentially the inverse of +mask_token+.# Split the token into the one-time pad and the encrypted# value and decrypt ittoken_lengthredis_connectionACCESSOR_MUTEX# Allows customization for this type of Worker.# Legal options:connection#   queue - name of queue to use for this job type, default *default*/retries#   retry - enable retries for this Worker in case of error during execution,:id#      *true* to use the default or *Integer* count#   backtrace - whether to save any error backtrace in the retry payload to display in web UI,#      can be true, false or an integer number of lines to save, default *false*# In practice, any option is allowed.  This is the main mechanism to configure the# options for a specific job.sidekiq_options@nstest?WARNING: Sidekiq::Web.sessions= is no longer relevant and will be removed in Sidekiq 7.0. @retries/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/lib/sidekiq.rbSCRIPT_NAMEsession_secretsidekiq/versionWARNING: Sidekiq::Web.session_secret= is no longer relevant and will be removed in Sidekiq 7.0. current_path@current_path⛔️ WARNING: Sidekiq testing API enabled, but this is not the test environment.  Your jobs will not go to Redis.uplevel does not support Ruby versions below 2.5.0.:app_urlattr_writercurrent_status:localesjava:viewsGemVersionidleRUBY_VERSIONactivesecure_comparerelative_timeinheritedchildstamp# need a non-falsy value so we can memoize2.5.0/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/Gemfile/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myappsidekiq/logger# Sidekiq::Process represents an active Sidekiq process talking with Redis.:retries# Each process has a set of attributes which look like this:strict_decode64#   'hostname' => 'app-1.example.com',#   'started_at' => <process start time>,#   'pid' => 12345,:path#   'tag' => 'myapp'sidekiq/job/retries/:key#   'concurrency' => 25,#   'queues' => ['default', 'low'],#   'busy' => 10,#   'beat' => <last heartbeat>,s1@retrysidekiq/redis_connection#   'identity' => <unique string identifying the process>,s2sidekiq/delaybytespuma# Ubuntu required packages to install rails@attribs# apt-get install build-essential patch ruby-dev zlib1g-dev liblzma-dev libsqlite3-devSee LICENSE and the LGPL-3.0 for licensing details.getutcDEFAULTSc1c2%(<time class="ltr" dir="ltr" title="" datetime="">pack/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/app/controllers/application_controller.rb</time>/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/app/controllersstrict/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/appc*ApplicationControllerActionControlleraverage_scheduled_poll_interval# stringifysidekiq_options_hashapp_urlsidekiq_retry_injob_paramson_complex_argumentslifecycle_eventssidekiq_retries_exhausted/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/app/helpers/application_helper.rb/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/app/controllers/work_controller.rb/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/app/helpersWorkControllerApplicationHelperSAFE_QPARAMSAdding  jobsinstance_readerinstance_writerHardWorker# Merge options with current params, filter safe params, and stringify to query stringperform_asyncqparamsbubbasynchronized_getter0.01stringified_options__synchronized_/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/app/jobs/application_job.rb/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/app/jobsbuildemailto_query_stringUserMailerApplicationJobsingleton_classActiveJobinstance_evalundef_method/retries/all/deletegreetingsmethod_defined?:plainprivate_method_defined?bulkbobmike/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/app/jobs/exit_job.rbdump_threads/retries/all/retryExitJobenbulkedqueue_asivar:default@longSidekiq::Web#sessions= is no longer relevant and will be removed in Sidekiq 7.0. Successtruncatetexttruncate_after_chars2000registerextensionregisteredcrash/retries/all/killrules:alldelayed_post# The WorkSet stores the work being done by this Sidekiq cluster.Invalid job payload, args is nil# It tracks the process and thread working on each job.Post# WARNING WARNING WARNING# This is live data that can change every millisecond.# If you call #size => 5 and then expect #each to be# called 5 times, you're going to have a bad time.#    works = Sidekiq::WorkSet.newstartup#    works.size => 2Invalid job payload, args must be an Array, not #    works.each do |process_id, thread_id, work|#      # process_id is a unique identifier per Sidekiq process#      # thread_id is a unique identifier per threaddefine_methodpublic, max-age=86400/scheduled#      # work is a Hash which looks like:#      # { 'queue' => name, 'run_at' => timestamp, 'payload' => job_hash }#      # run_at is an epoch Integer.SIDEKIQ_WEB_TESTINGWorkSetsingleton_class?Builder@scheduledStaticurls/stylesheets/images/javascriptsinstance_variable_defined?instance_variable_getcascadeheader_rules:scheduledvalid/scheduled/:keyhgetallhelpershsh:scheduled_job_info# avoid breaking API, this is a side effect of the JSON optimization in #4316
    def _render
      :jid
    end
  Sidekiq::Worker cannot be included in an ActiveJob: delete_or_add_queuecreate!:titleTitle!ActiveJob::Base:bodyBody!p2Other!Second Body!second# This helper class encapsulates the set options for `set`, e.g.long_method#     SomeWorker.set(queue: 'foo').perform_async(....)Setter/dashboard/stats# ActiveJob compatibility/statssidekiq_stats:wait_untilredis_stats:wait/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/app/models/exiter.rb/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/app/models/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/app/mailers/user_mailer.rb/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/app/mailersExiterfromsidekiq@example.com@now@hostnamemail/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/app/models/post.rb:todefault_latencymperham@gmail.com:subjectAhoy Matey!server_utc_timeother_postRunning long method with perform_inline/stats/queues and testing/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/app/views/layouts/application.html.erbaction/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/app/views/layoutsTestX-Cascade# Explicit inline execution of a job. Returns nil if the job did not/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/app/views# execute, true otherwise.passrawNot Found<!DOCTYPE html>
<html>
  <head>
    <title>Myapp</title>
    to_display/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/app/jobs/some_job.rbshutdown csrf_meta_tags respcatch
    SomeJob csp_meta_tag /home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/app/views/user_mailer/greetings.html.erbdead_max_jobs/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/app/views/user_mailer

    run_befores# validate and normalize payloaddead_timeout_in_seconds stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track': 'reload' What's up?!?! javascript_include_tag 'application', 'data-turbolinks-track': 'reload' 
  </head>

  <body>
    Illegal job arguments: instance_exec<p>
  Hi Mike, it's 180# Do something later# run client-side middleware @now  and I'm at  @hostname # 6 months.
</p>
csrf_tag/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/app/views/work/index.html.erb/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/app/views/workDEFAULT_WORKER_OPTIONS# Note that #size is only as accurate as Sidekiq's heartbeat,# which happens every 5 seconds.  It is NOT real-time.Added # Not very efficient if you have lots of Sidekiq @count # processes but the alternative is a global counter# which can easily get out of sync with crashy processes. jobs!
FAKE_INFO9.9.99999/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/app/workers/hard_worker.rb<input type='hidden' name='authenticity_token' value=''/>/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/app/workers# round-trip the payload via JSON:backtrace# prepare the job instanceCannot display argument: [# Since "worker" is a nebulous term, we've deprecated the use of this class name.# Is "worker" a process, a type of job, a thread? Undefined!# WorkSet better describes the data.9P❨╯°□°❩╯︵┻━┻Calm down, yo./home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/app/workers/lazy_worker.rbLazyWorker yield 
  </body>
</html>
csrf_meta_tags# Configuration for Sidekiq server, use like:csp_meta_tagstylesheet_link_tag#   Sidekiq.configure_server do |config|#     config.redis = { :namespace => 'myapp', :size => 25, :url => 'redis://myhost:8877/0' }#     config.server_middleware do |chain|media#       chain.add MyServerHookrun_aftersdata-turbolinks-trackreload] # Configuration for Sidekiq client, use like:javascript_include_tag# redirects go here#   Sidekiq.configure_client do |config|#     config.redis = { :namespace => 'myapp', :size => 1, :url => 'redis://myhost:8877/0' }# rendered content goes hereheaderstext/htmlRETRY_JOB_KEYSContent-Languagerequires a blockContent-Security-Policy# we'll let Rack calculate Content-Length for us.retryableretry_extra_itemsBaseErrorretry_job@retry_extra_items# 2550 Failover can cause the server to become a replica, need# to disconnect and reopen the socket to get back to the primary.# 4495 Use the same logic if we have a "Not enough replicas" error from the primary/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/app/workers/exit_worker.rb# 4985 Use the same logic when a blocking command is force-unblockedmodREADONLY|NOREPLICAS|UNBLOCKEDExitWorkerdisconnect!/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/config/boot.rb/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/configbeforeBUNDLE_GEMFILEbefores../Gemfile__dir__# admin commands can't go through redis-namespace startingtapbundler/setup# in redis-namespace 2.0extrasalt.*/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/config/environment.rb# run the job through server-side middleware# Load the Rails application.# Set up gems listed in the Gemfile.require_relative# Initialize the Rails application.# perform itinitialize!/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/config/environments/production.rb/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/config/environments/development.rb/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/config/environments# jobs do not return a result. they should store any# modified state.:perform_syncconfigure# Settings specified here will take precedence over those in config/application.rb./home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/config/environments/test.rb# In the development environment your application's code is reloaded on# every request. This slows down response time but is perfect for development# since you don't have to restart the web server when you make code changes.cache_classes/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/config/application.rb# The test environment is used exclusively to run your application's# test suite. You never need to work with it otherwise. Remember that# your test database is "scratch space" for the test suite and is wiped# and recreated between test runs. Don't rely on the data there!boot# Do not eager load code on boot. This avoids loading your whole application:perform_inline# just for the purpose of running a single test. If you are using a tool that# preloads Rails for running tests, you may have to set it to true.perform_bulkeager_loadbatch_size# Configure public file server for tests with Cache-Control for performance.1_000%w(active_record/railtiepublic_file_serveraction_controller/railtieenabledaction_view/railtieaction_mailer/railtie# Do not eager load code on boot.active_job/railtiesprockets/railtieeach_slice# Show full error reports.railtieconsider_all_requests_localpublic, max-age=hour# Enable/disable caching. By default caching is disabled.# Run rails dev:cache to toggle caching.# Require the gems listed in Gemfile, including any gems# you've limited to :test, :development, or :production.Bundler# Show full error reports and disable caching.ztmpgroupsformat_memorycaching-dev.txtrss_kb# Code is not reloaded between requests.afteraction_controller# Eager load code on boot. This eager loads most of Rails and# your application in memory, allowing both threaded web servers# and those relying on copy on write to perform better.perform_caching# Rake tasks automatically ignore this option for performance.# Raise exceptions instead of rendering exception templates.# 2850 return fake version when INFO command has (probably) been renamedcache_storeafters# Full error reports are disabled and caching is turned on.action_dispatch:memory_storeunknown commandshow_exceptions# Disable request forgery protection in test environment.# Ensures that a master key has been made available in either ENV["RAILS_MASTER_KEY"]# or in config/master.key. This key is used to decrypt credentials (and other encrypted files).# config.require_master_key = true# Disable serving static files from the `/public` folder by default since# Apache or NGINX already handles this.allow_forgery_protection# Store uploaded files on the local file system in a temporary directory#config.active_storage.service = :testRAILS_SERVE_STATIC_FILESaction_mailerpresent?# Tell Action Mailer not to deliver emails to the real world.# Compress JavaScripts and CSS.# The :test delivery method accumulates sent emails in theassetsdelivery_method# Print deprecation notices to the stderr.run_hooksjs_compressor:null_storeactive_support:uglifier# Store uploaded files on the local file system (see config/storage.yml for options)# config.assets.css_compressor = :sassMyapp# Do not fallback to assets pipeline if a precompiled asset is missed.Application# Load the defaults for whichever Rails version we are using, we need to# ensure we work with all defaults.# `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rbhooks# Enable serving of images, stylesheets, and JavaScripts from an asset server.load_defaultsEnumeratorLazyforce#config.active_storage.service = :local# Don't care if the mailer can't send.# +interval+ must be a timestamp, numeric or something that acts#   numeric (like an activesupport time interval).raise_delivery_errors100_000number_with_delimiter# Print deprecation notices to the Rails logger. KB@redis10_000_000:perform_at:perform_in@befores@afters1024.0@client_chain# Optimization to enqueue something now that is scheduled to go out now or in the past MBdefault_server_middlewareMINORDo not call .delay on a Sidekiq::Worker class, call .perform_async# Settings in config/environments/* take precedence over those specified here.# Application configuration can go into files in config/initializers/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/config/initializers/assets.rb# -- all .rb files in that directory are automatically loaded after loading# the framework and any gems in your application./home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/config/initializersactive_jobqueue_adapterDo not call .delay_for on a Sidekiq::Worker class, call .perform_in:sidekiq# Be sure to restart your server when you modify this file.@default_worker_options# Version of your assets, change this if you want to expire all your assets.delay_untildeprecation# Add additional assets to the asset load path# config.action_controller.asset_host = 'http://assets.example.com'# Specifies the header that your server uses for sending files.:stderrDo not call .delay_until on a Sidekiq::Worker class, call .perform_at# config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache# Raises error for missing translations# config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX# config.action_view.raise_on_missing_translations = true# Mount Action Cable outside main process or domain# config.action_cable.mount_path = nil# config.action_cable.url = 'wss://example.com/cable'# config.action_cable.allowed_request_origins = [ 'http://example.com', /http:\/\/example.*/ ]# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.# config.force_ssl = true# Use the lowest log level to ensure availability of diagnostic information# when problems arise.:debug# Prepend all log lines with the following tags.log_tags:request_id# Use a different cache store in production.# config.cache_store = :mem_cache_store:log# Use a real queuing backend for Active Job (and separate queues per environment)# config.active_job.queue_adapter     = :resque# config.active_job.queue_name_prefix = "myapp_#{Rails.env}"# Raise an error on page load if there are pending migrations.active_record# Ignore bad email addresses and do not raise email delivery errors.migration_error# Set this to true and configure the email server for immediate delivery to raise delivery errors.# config.action_mailer.raise_delivery_errors = false GB# Enable locale fallbacks for I18n (makes lookups for any locale fall back to# Inline execution of job's perform method after passing through Sidekiq.client_middleware and Sidekiq.server_middleware# the I18n.default_locale when a translation cannot be found).i18nfallbacksFloat# Push a large number of jobs to Redis, while limiting the batch of# each job payload to 1,000. This method helps cut down on the number# Send deprecation notices to registered listeners.# of round trips to Redis, which can increase the performance of enqueueing# large numbers of jobs.# +items+ must be an Array of Arrays.TypeError:notify# For finer-grained control, use `Sidekiq::Client.push_bulk` directly.# Use default logging formatter so that PID and timestamp are not suppressed.# Example (3 Redis round trips):#     SomeWorker.perform_async(1)#     SomeWorker.perform_async(2)#     SomeWorker.perform_async(3)# Would instead become (1 Redis round trip):#     SomeWorker.perform_bulk([[1], [2], [3]])# Use a different logger for distributed setups.# require 'syslog/logger'# config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name')delimiterRAILS_LOG_TO_STDOUT:page_loadseparator# Highlight code that triggered database queries in logs.STDOUTverbose_query_logs# Debug mode disables concatenation and preprocessing of assets.TaggedLogging# This option may cause significant delays in view rendering with a large# number of complex assets.# Do not dump schema after migrations.dump_schema_after_migration# Suppress logger output for asset requests.# Use an evented file watcher to asynchronously detect changes in source code,# routes, locales, etc. This feature depends on the listen gem.#config.file_watcher = ActiveSupport::EventedFileUpdateCheckerparts# Death handlers are called when all retries for a job have been exhausted and# the job dies.  It's the notification to your application# that this job will not succeed without manual intervention./home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/config/initializers/filter_parameter_logging.rb#   config.death_handlers << ->(job, ex) do/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/config/initializers/backtrace_silencers.rbto_str:death_handlers# Configure sensitive parameters which will be filtered from the log file.# You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces.# Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ }# You can also remove all the silencers if you're trying to debug a problem that might stem from framework code.# Rails.backtrace_cleaner.remove_silencers!filter_parametersobject/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/config/initializers/mime_types.rbgenerate/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/config/initializers/cookies_serializer.rb@log_formatter/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/config/initializers/secret_token.rb# Add new mime types for use in respond_to blocks:# Mime::Type.register "text/richtext", :rtf# Your secret key for verifying the integrity of signed cookies.# If you change this key, all old signed cookies will become invalid!# Specify a serializer for the signed and encrypted cookie jars.gsub!# Make sure the secret is at least 30 characters and all random,# Valid options are :json, :marshal, and :hybrid.# no regular words or you'll be exposed to dictionary attacks.\d)(?=()+(?!))secret_tokencookies_serializerbdd335500c81ba1f279f9dd8198d1f334445d0193168ed73c1282502180dca27e3e102ec345e99b2acac6a63f7fe29da69c60cc9e76e8da34fb5d4989db24cd8:json:delimiter/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/config/initializers/session_store.rbsession_store:cookie_store_myapp_session/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/config/initializers/sidekiq.rb/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/config/initializers/inflections.rb:separator# Add new inflection rules using the following format. Inflections# are locale specific, and you may define rules for as many different# locales as you wish. All of these examples are active by default:# ActiveSupport::Inflector.inflections(:en) do |inflect|#   inflect.plural /^(ox)$/i, '\1en'#   inflect.singular /^(ox)en/i, '\1'#   inflect.irregular 'person', 'people'/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/config/routes.rb#   inflect.uncountable %w( fish sheep )# These inflection rules are supported but not enabled by default:#   inflect.acronym 'RESTful'# turns off browser asset caching so we can test CSS changes quicklyeql?invalid byte sequence in UTF-8encode!UTF-16sidekiq/webUTF-8#result = RubyProf.stop/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/db/migrate/20120123214055_create_posts.rb## Write the results to a fileinvalid## Requires railsexpress patched MRI build/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/db/migrate# brew install qcachegrind:replace#File.open("callgrind.profile", "w") do |f|/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/db#RubyProf::CallTreePrinter.new(result).print(f, :min_percent => 1)replace#endINFOroutesEmptyWorkerCreatePostsdrawmountMigration6.0/sidekiqTimedWorkerchangecreate_table:posts#   queue - use a named queue for this Worker, default 'default'#   retry - enable the RetryJobs middleware for this Worker, *true* to use the default#      or *Integer* countwork#index# Any paginated list that performs an action needs to redirect# back to the proper page after performing that action.#   pool - use the given Redis connection pool to push this type of job to a given shard.FATALurlwork/emailrefererwork#emailLatency: timestampswork/post\?work#delayed_postwork/longrefwork#long# How frequently Redis should be checked by a random Sidekiq process for# scheduled and retriable jobs. Each individual process will take turns by# waiting some multiple of this value.work/crash# See sidekiq/scheduled.rb for an in-depth explanation of this valuequerywork#crash/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/db/schema.rbstringified_itemwork/bulkwork#bulk# This file is auto-generated from the current state of the database. Insteadenvironment_title_prefix# of editing this file, please use the migrations feature of Active Record to# incrementally modify your database, and then regenerate this schema definition.# Note that this schema.rb definition is the authoritative source for your# database schema. If you need to create the application database on another# system, you should be using db:schema:load, not running all the migrations# from scratch. The latter is a flawed and unsustainable approach (the more migrations# you'll amass, the slower it'll run and the greater likelihood for issues).# It's strongly recommended that you check this file into your version control system.Schemadefine20120123214055posts/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/db/seeds.rb# Register a proc to handle any error which occurs within the Sidekiq process.#     config.error_handlers << proc {|ex,ctx_hash| MyErrorService.notify(ex, ctx_hash) }:cascade# The default error handler logs errors to Sidekiq.logger.productiontitle# This file should contain all the record creation needed to seed the database with its default values.# The data can then be loaded with the rake db:seed (or created alongside the db with db:setup).# Examples:#   cities = City.create([{ name: 'Chicago' }, { name: 'Copenhagen' }])product_versionbody#   Mayor.create(name: 'Emanuel', city: cities.first):error_handlersSidekiq vdatetime# Register a block to run at a point in the Sidekiq lifecycle./home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/sidekiq.gemspec# :startup, :quiet or :shutdown are valid events.#     config.on(:shutdown) do#       puts "Goodbye cruel world!"updated_atlib/sidekiq/version%H:%M:%S UTCSpecificationCurrentSymbols only please: /home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/test/dummy/config/application.rb/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/test/dummy/configredis_connection_and_namespace:tenant_id@redis_connection_and_namespaceauthorsnamespace_suffix/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/test/dummy/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/testMike Perhamsidekiq/middleware/current_attributesInvalid event name: /home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/test/dummy/config/environment.rbactive_model/railtie# Your AS::CurrentAttributes singletonsummarySimple, efficient background processing for RubydescriptionSimple, efficient background processing for Ruby.strict_args!homepagehttps://sidekiq.orgrails/test_unit/railtielicenseDummy/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/test/fake_env.rbLGPL-3.0# We are shutting down Sidekiq but what about workers that# are working on some long job?  This error is/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/test/helper.rb# raised in workers that have not finished within the hard# timeout limit.  This is needed to rollback db transactions,executables# otherwise Ruby's Thread#kill will commit.  See #377.# DO NOT RESCUE THIS ERROR IN YOUR WORKERS../..sidekiqmonfilessidekiq.gemspec/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/test/test_actors.rbREADME.md/dev/nullChanges.md/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/myapp/config/initializers/wrap_parameters.rbgit ls-files | grep -E '^(bin|lib|web)'# This file contains settings for ActionController::ParamsWrapper which# is enabled by default.# Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.:action_controllerwrap_parametersformat# To enable root element in JSON for ActiveRecord objects.# ActiveSupport.on_load(:active_record) dorequired_ruby_version#   self.include_root_in_json = true>= 2.5.0metadata/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/test/test_api.rbhomepage_uribug_tracker_urihelperhttps://github.com/mperham/sidekiq/issuesdocumentation_uri/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/test/test_client.rbhttps://github.com/mperham/sidekiq/wikichangelog_uridescribeAPIhttps://github.com/mperham/sidekiq/blob/main/Changes.mdsource_code_uriflushdbminitest/pride# Rails.application.config.assets.paths << Emoji.images_path# Precompile additional assets.# application.js, application.css, and all non-JS/CSS in app/assets folder are already added.# Rails.application.config.assets.precompile += %w( search.js )itis initially zerohttps://github.com/mperham/sidekiqadd_dependencysidekiq/cliassert_equal>= 4.2.0>= 2.2.2minitest/autorunActors# disable minitest/parallel threadsJoeWorker~> 2.0MT_CPUslpboomNreturns number of processed jobs# Disable any stupid backtrace cleansers$countBACKTRACECOVERAGE/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/test/test_cli.rb/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/test/test_dead_set.rb/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/test/test_current_attributes.rberrors#parsereturns number of failed jobsSimpleCovenable_coverageraises ArgumentError with invalid params:branchassert_raisesStringIO./helperfoodead_set:user_idTestCurrentAttributesMinitestshould put passed serialized job to the "dead" sorted setserialized_jobtest_savecm:classFoosubject:noargswith_contextlogdev123will reset all stats by default123123accepts with -rMyWorkernoargs./test/fake_env.rbtest_loadcan reset individual stats42user_idaccepts with -ccan start and stopfwhen concurrency is empty and RAILS_MAX_THREADS env var is setcan schedulecan accept anything that responds to #to_sssassert_nil9:not_an_arraysets concurrency from RAILS_MAX_THREADS env varSomeWorker# the Rails reloader is responsible for reseting Current after every unit of workignores anything other than "failed" or "processed"0.015option overrides RAILS_MAX_THREADS env var:not_a_numerictest_persist16should remove dead jobs older than Sidekiq::DeadSet.timeoutsetting internal options via the config filestubsetting the `strict` option via the config filediscards the `strict` option specified via the config fileretrieves the number of busy workersas instance./test/config_with_internal_options.ymlprocess_1process_2:nowaccepts with -qMgr:latest_error:mutex:cond@mutexwhen weights are not presentis initially emptyattr@condaccepts queues without weightsConditionVariablebarinstreturns a hash of queue and size in orderadd_filtererr/test/@latest_error/myapp/queue:foo{}CIsets strictly ordered queuesqueue:barCodecovredis://localhost/15when weights are presentaccepts queues with weightscan processfoo,3ERRORcapture_loggingdoes not set strictly ordered queues/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/test/test_csrf.rbTestCsrfhandles latency for good jobsold@sessionhandles nil queue:get\"form_hashrack_sessionBlahimpaccepts queues with multi-word namesassert@logiocan pushqueue_onequeue-tworack.inputhandles latency for incomplete jobsrack.request.form_inputrack.request.form_hashreset_allaccepts queues with dots in the nameallows middleware to stop bulk jobsmware000103foo.barworker_klassMyWorker3# the oldest/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/test/test_extensions.rbwhen duplicate queue namesraises an argument error000102test_getokMyWorker2OK000101MyModelfoo,1envyMyWorker1refute_nillong_class_methodShould not be called!88long_class_method_with_optional_argsreturns total enqueued jobswhen queues are emptyallows delayed execution of ActiveRecord class methodswhen no queues are specified via -qsets 'default' queueshould remove all but last Sidekiq::DeadSet.max_jobs-1 jobs:max_jobswhen no queues are specified via the config file# verify masked token changes on every valid requestrefute_equal./test/config_empty.ymltest_bad_post:postShouldnt be calledallows delayed execution of ActiveRecord class methods with optional argumentsaccepts with -trewindassert_match:keywordsattack preventedover timeactive_support/core_ext/time/conversionsverbosetest_good_and_bad_posts# Make a GET to set up the session with a good token@beforegoodtokenaccepts with -vDATE_FORMATS# Make a POST with the known good token%d/%m/%Y %H:%M:%Sconfig fileaccepts with -C./test/config.ymlforwards the keyword arguments to performrefute---retrieves hash of dates# Make a POST with a known bad token- !ruby/class 'MyModel'- :long_class_method_with_optional_args- []- :with: :keywordsstat:processed:2012-12-24N0QRBD34tU61d7fi+0ZaF/35JLW/9K+8kk8dc1TZoK/0pTl7GIHap5gy7BWGsoKlzbMLRp1yaDpCDFwTJtxWAg==stat:processed:2012-12-25shouldnt be calledstat:processed:2012-12-26stat:processed:2012-12-27very_oftentest_empty_session_post2012-12-26 1:00:00 -0500deals with errorsseldomuses and stringifies specified options2012-12-26# Make a POST with an empty session data and good tokenaccepts stringy keys2012-12-25./test/config_string.ymlmutex/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/test/test_exception_handler.rbstringiotest_empty_csrf_session_post2012-12-24ExceptionHandlerTestExceptionStandardErrorTEST_EXCEPTIONSomething didn't work!# Make a POST without csrf session data and good tokenallows local middleware modificationComponentDate$calledinvoke_exceptionsession_id/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/test/test_fetch.rbwith mock logger@old_logger@prev_redis@str_loggeraccepts environment specific config:@redisstaging./test/config_environment.ymlfuzzyqueue:basiclogs the exception to Sidekiq.logger:astat:failed:2012-12-24condretrievesstat:failed:2012-12-25logstat:failed:2012-12-26basic"a":10.001didn't include the contextuowstat:failed:2012-12-27latest_errordidn't include the exception messagetesttest_exception_handler.rbgracefully killsdidn't include the backtrace/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/test/test_job.rbwhen the exception does not have a backtracedoes not failexposes ERB expected __FILE__ and __dir__flunkTestJobfailed handling a nil backtracegiven_path./test/config__FILE__and__dir__.ymlexpected_fileretrieves with strict settingtest_sidekiq_job0.05# As per Ruby's Kernel module docs, __dir__ is equivalent to File.dirname(File.realpath(__FILE__))expected_dirTestJob::SomeJobpushes messages to redisrealpath%W[/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/test/test_job_generator.rbpre/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/test/test_job_logger.rb:__FILE__TestJobLogger:__dir__setup@old@outputdefault config filewhen required path is a directory/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/test/test_launcher.rbtries config/sidekiq.yml from required diretory:infopushes messages to redis using a String classdummy/config/environment./test/dummyrails/generators/test_case./test/dummy/config/sidekiq.ymlgenerators/sidekiq/job_generator:sidekiq_tidJobGeneratorTestTestCaseteardowntestswith an empty databasedestinationwhen required path is a file../../tmpnew_manager:prepare_destinationtries config/sidekiq.yml from current diretoryshows queue as emptyall files are properly createdmemory collectiontest_pretty_outputrun_generatorjlworks in any test environmentcmd# prettybulk requeuesApiMailer1234abctest_emailFooWorkerApiJobQueuedWorkerWrapper:flimflamApiWorker# stub current dir – ./bazwidgetenqueuesWorkerWithTags# this mocks what Processor doesassert_fileapp/sidekiq/foo_job.rbq1test/sidekiq/foo_job_test.rbgracefully handles extra job suffixmanagerfoo_job@idq2assert_no_fileapp/sidekiq/foo_job_job.rbcan enumerate jobsnotdefaultwithout any required path@proctitle2012expected26:notdefault#heartbeat class=FooWorker jid=1234abc tags=bar,bazsets sidekiq version, tag and the number of busy workers to proctitleMyModel.long_class_method:display_class.+Z pid=sidekiq  myapp [1 of 3 busy]when config file and flagsworksmerges optionsstores process info in redisallows delayed scheduling of AR class methodssnoopoften,7seldom,3 .+INFO: doneassert_in_delta1000sleeps when no queues are activeallows until delayed scheduling of AR class methodsexpirestest_json_output# jsonmockpttlMockdayexpectfrom_now600005007eventsother@cntoftengreetings_with_optional_args:sleeptest/sidekiq/foo_job_job_test.rbenumerates jobs in descending score orderallows delayed delivery of ActionMailer mails# We need to enqueue more than 50 items, which is the page size when retrievingverify# from Redis to ensure everything is sorted: the pages and the items withing them.51b-xyzrespects rails config test_framework optionwhen the config file specifies queues with weightswhen -q specifies queues without weightsghas no enqueued_at time for jobs enqueued in the futurewhen -q specifies no queuesjob_id:custom_queue/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/test/test_logger.rballows delayed delivery of ActionMailer mails with optional argumentsfires start heartbeat event only onceunwraps delayed jobswhen -q specifies queues with weightsTestLoggerfoo,2bar,3sets stopping proctitleSidekiq::Queue.footest_custom_log_level myapp [1 of 3 busy] stoppingwhen the config file specifies queues without weightshandles previous (raw Array) error_backtrace formatadd_retry./test/config_queues_without_weights.ymlline1allows delayed scheduling of AM mailsline2test_default_log_formatterassert_kind_ofhandles previous (marshalled Array) error_backtrace formatdebug messagetest_heroku_log_formatterdyno identifierallows until delay scheduling of AM mailsINFO: startfires new heartbeat eventsDEBUG: debug messageencodedINFO: donetest_custom_log_level_uses_default_log_level_for_invalid_value:test_casetest_json_log_formatterSomeClassdoitrespects rails config test_framework option for rspecdoit_with_optional_argsallows delay of any ole class methodtest_with_contextspec/sidekiq/foo_job_spec.rbwhen the config file specifies no queuestodaynon_existentallows delay of any ole class method with optional arguments/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/test/test_manager.rbtest_with_overlapping_contextcustom_queueRails unwrappingSERIALIZED_JOBScreates N processor instancesbingo5.x- !ruby/class 'SomeClass'- :doit_with_optional_args{"class":"ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper","wrapped":"ApiJob","queue":"default","args":[{"job_class":"ApiJob","job_id":"f1bde53f-3852-4ae4-a879-c12eacebbbb0","provider_job_id":null,"queue_name":"default","priority":null,"arguments":[1,2,3],"executions":0,"locale":"en"}],"retry":true,"jid":"099eee72911085a511d0e312","created_at":1568305542.339916,"enqueued_at":1568305542.339947}shuts down the system{"class":"ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper","wrapped":"ActionMailer::DeliveryJob","queue":"mailers","args":[{"job_class":"ActionMailer::DeliveryJob","job_id":"19cc0115-3d1c-4bbe-a51e-bfa1385895d1","provider_job_id":null,"queue_name":"mailers","priority":null,"arguments":["ApiMailer","test_email","deliver_now",1,2,3],"executions":0,"locale":"en"}],"retry":true,"jid":"37436e5504936400e8cf98db","created_at":1568305542.370133,"enqueued_at":1568305542.370241}log_level_warning6.xtest_nested_contexts{"class":"ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper","wrapped":"ApiJob","queue":"default","args":[{"job_class":"ApiJob","job_id":"ff2b48d4-bdce-4825-af6b-ef8c11ab651e","provider_job_id":null,"queue_name":"default","priority":null,"arguments":[1,2,3],"executions":0,"exception_executions":{},"locale":"en","timezone":"UTC","enqueued_at":"2019-09-12T16:28:37Z"}],"retry":true,"jid":"ce121bf77b37ae81fe61b6dc","created_at":1568305717.9469702,"enqueued_at":1568305717.947005}WARN: Invalid log level{"class":"ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper","wrapped":"ActionMailer::MailDeliveryJob","queue":"mailers","args":[{"job_class":"ActionMailer::MailDeliveryJob","job_id":"2f967da1-a389-479c-9a4e-5cc059e6d65c","provider_job_id":null,"queue_name":"mailers","priority":null,"arguments":["ApiMailer","test_email","deliver_now",{"args":[1,2,3],"_aj_symbol_keys":["args"]}],"executions":0,"exception_executions":{},"locale":"en","timezone":"UTC","enqueued_at":"2019-09-12T16:28:37Z"}],"retry":true,"jid":"469979df52bb9ef9f48b49e1","created_at":1568305717.9457421,"enqueued_at":1568305717.9457731}throws away dead processorsSomeModuletries config/sidekiq.ymlflimflaminit_sizeunwraps ActiveJob argument checking#ApiJob.perform_later(1,2,3)#puts Sidekiq::Queue.new.first.value/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/test/test_middleware.rbInterestingWorkerlogs large payloadsoutputignoredan_argumentWARNenqueues jobs with a symbol as an argument8192:symbol$errorsCustomMiddlewarevalidation.doit job argument iswhen required application path does not existexits with status 1recorderSystemExitdoes not support invalid concurrency@recorderallows delay of any module class methodunwraps ActionMailer /non/existent/path#ApiMailer.test_email(1,2,3).deliver_later#puts Sidekiq::Queue.new("mailers").first.valuetest_formatted_outputmailerswhen required path is a directory without config/application.rbhello worldsupports custom middleware#test_emailINFO: hello worldallows delay of any module class method with optional arguments./test/fixturesformatsCustomWorker$recorder/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/test/test_processor.rbwhen config file path does not existraises argument errorwork_performedenqueues jobs with a Date as an argumentTestProcessorExceptionNonYieldingMiddlewarefmt2021ArgumentYieldingMiddleware- !ruby/class 'SomeModule'when concurrency is not validwhen manager is activewhen set to 0enqueues jobs with a Hash with symbols and string as keys as an argumentxyzsomeAnotherCustomMiddlewareHaikuWorkerdifferent_keysb-1234abchello contextenqueues jobs with a Struct as an argumentwhen set to a negative number:x:ysets useful info to proctitlereturns tags field for jobs-2 myapp [1 of 3 busy] xyzworks with a JSON-friendly deep, nested structureYetAnotherCustomMiddleware/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/test/test_rails.rbwhen timeout is not validytest_json_output_is_parsablecan delete jobs# need to force this since we aren't booting a Rails appstrict args is enabledwhen manager is stoppedraises an error when using a symbol as an argument#after doTEST_PROC_EXCEPTION#puts system('redis-cli -n 15 keys  "*" | while read LINE ; do TTL=`redis-cli -n 15 ttl "$LINE"`; if [ "$TTL" -eq -1 ]; then echo "$LINE"; fi; done;')kerboom!indicates stopping status in proctitlejson format$invokesexecutes middleware in the proper orderraises an error when using a Date as an argumentcan move scheduled job to queueremain_idjasonraises an error when using a Hash with symbols and string as keys as an argument# should only add once, second should replace the firstqueued_jobraises an error when using a Struct as an argumentboss#runmyapprequire workers:processor_donewhen path is a rails directory/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/test/test_redis_connection.rb@processorworker that takes deep, nested structuresMockWorkerraises an error on JSON-unfriendly structurescorrectly replaces middleware when using middleware with options in the initializertest_forwards_logger_kwargsassert_silent# To support both redis-rb 3.3.x #client and 4.0.x #_client:bclient_for:c:foo:_client_clientcorrectly prepends middlewarecreates a pooled redis connectiontest_log_level_query_methodschain_entriesrequires sidekiq railtie and rails application with environmentcheckout:launchrefute_predicate# Readers for these ivars should be available in the next release of:debug?assert_predicate# `connection_pool`, until then we need to reach into the internal state to# verify the setting.:info?allows middleware to abruptly stop processing rest of chainclient_connectioncan push a large set of jobs at once:warn?jidstags with the app directory name:server?processes as expectediofinal_actionhandles multiple scheduled jobs when moving to queueserver_connectionmyargallows middleware to yield argumentscan push a large set of jobs at once using a String classuses the specified custom pool sizeexecutes a worker as expected/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/test/test_retry.rb# encoding: utf-8:perform@availabledoes not allow Sidekiq::Worker in AJ::Base classesBadErrorMessageAhhh, this isn't supposed to happenre-raises exceptions after handlingcan push jobs scheduled at different timesdefaults server pool sizes based on concurrency with paddingfirst_atassert_includes2019_expected_paddingSidekiq::Worker cannot be included@workerprev_concurrencysecond_atloads Sidekiq::Worker::Options in AJ::Base classesaj@handler:barcan kill a scheduled jobBobdummy_exceptionre_raisewhen path is filefirst_jidrequires applicationsecond_jidFailed {"foo":123} with $LOADED_FEATURESExpected exceptionretries with a nil workerfake_envdoes not re-raise exceptions after handlingds# When using ActiveJobs, you cannot set the queue with sidekiq_options, you must usewhen development environment and stdout tty# queue_as or set(queue: ...).  This is to avoid duplicate ways of doing the same thing.instanceprints bannercan push jobs scheduled using ActiveSupport::Durationperform_laterdefaults client pool sizes to 5can find a scheduled job by jidallows disabling retryassert_output:tty?kerblammo!changes client pool sizes with ENV111does not modify original argumentsprovider_job_idreturns the jids for the jobsprints rails infomsgstrallows a numeric retryjid_in_args# AJ's queue_as should take precedence over Sidekiq's queue option application in production environment[0-9a-f]{12}can remove jobs when iterating over a sorted setexception handlingchecking maxmemory policy# scheduled jobs must be greater than SortedSet#each underlying page sizedisables client setname with nil idlet:errorswarns if the policy is not noevictionaaron:error_handler/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/test/test_retry_exhausted.rballkeys-lruhandles no jobsredis://localhost:6379/15:redis_infoNewWorkerallows 0 retry => no retry and dead queue:exhausted_called:exhausted_jobcan remove jobs when iterating over a queue:exhausted_exception# initial queue size must be greater than Queue#each underlying page sizenetwork_timeoutexhausted_calledexhausted_jobsets a custom network_timeout if specifiedexhausted_exceptionsilent if the policy is noeviction8OldWorkererror_handlerhandles invalid JSONhandles zany characters in error message, #1705uses the default network_timeout if none specifiedskipskipped! test requires ruby 2.1+refute_includes2.1.0can find job by id in queueskerblammo! 195chruses a given :namespace set by a symbol keynew_workerkerblammo! �@new_workerxxxsignal handlingold_worker@old_worker# In the rare event that an error message raises an error itself,# allow the job to retry. This will likely only happen for custom# error classes that override #messagehandles error message that raises an error:'raises interrupt errorcan clear a queueuses a given :namespace set by a string keyquiets with a corresponding eventhandles exceptions raised by the jobsmembersallows a max_retries option in initializerdoes not run exhausted block when job successful on first runmax_retriesupto123987123Got TSTP signal# successful.perform_bulkpushes a large set of jobsdoes not run exhausted block when job successful on last retry1_001prints backtraces for all threads in the process to the logfilecan fetch by scoreassert_instance_ofsame_timeGot TTIN signalenforce_available_locales:exceptionsidekiq/middleware/i18n\bbob1saves and restores localeuses given :namespace over :namespace from Sidekiq.options:contextbob2:jobstrfrpushes a large set of jobs with a different batch sizemwyyysaves backtraceslogs about# subject.parse(%w[sidekiq -r ./test/fake_env.rb])handles exceptions raised by the reloaderGot UNKNOWN signal:frcan fetch by score and jidsocket pathuses a given :pathNo signal handler registeredjp/var/run/redis.sock:enscheme:jp/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/test/test_scheduled.rb:locationsupports I18n.enforce_available_locales = true:dbScheduledWorkeruses a given :path and :dblazy enumeratorenqueues the jobs by evaluating the enumeratorlazy_arraypollersaves partial backtraces@error_1lazyqueue_1@error_2can fetch by score rangeBaseWorkerqueue_2AWorker/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/test/test_scheduling.rb@error_3BWorkeruses a given :timeout over the default of 1active_support/core_ext/integer/timequeue_3job schedulinghandles a new failed messagebob3SomeScheduledWorker@timeout@future_1CWorkerhandles exceptions raised during fetchrangefetch_stublambdafetch exceptionqueue_4# Assume we can pass any class as time to perform_inuses the default timeout of 1 if no overrideclient middlewareTimeDuck@future_2# swallow logging because actually care about the added exception handler42.0Stopperschedules jobs:retrieve_workcan fetch by score range and jidqueue_5@future_3odd?600driveruses redis' ruby drivercan stop some of the jobs from pushingacknowledgementmonthExceptionRaisingMiddlewarequeue_6shuts down without retrying work-in-progress, which will resumeRubyrs:@client300does not run exhausted block when retries not exhausted yetshuts down cleanly when shutdown causes exceptionNot supported in Ruby < 2.1.0uses redis' default driver if there are many availableshows empty retriesredis_drivercan enumerate retriesarrayruns exhausted block when retries exhaustedraise_before_yieldMyStopperraise_after_yieldsamwiseinheritance@raise_before_yieldretriinherits sidekiq options@raise_after_yield@skipremoves the enqueued_at field when schedulingexecutes client middlewarepasses job and exception to retries exhausted blockraised_errorshuts down cleanly when shutdown causes chained exceptions0.02:raise_before_yieldrequires a jid to delete an entry:raise_after_yieldstart_time:skip_job:worker_argssharding:workDWorkerMiniTestallows sidekiq_options to point to different Redi:queue_namekablooie!:pipelinedpasses job to retries exhausted blockcan delete a single retry from score and jidworker_args/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/test/test_sidekiq.rballows a retry queueskip_jobjson processinghandles jsonretryxmiddleware throws an exception before processing the workshould empty the retry and scheduled queues up to the current timecreated_time2013allows global failure handlersallows #via to point to same Redican retry a retryFoobarenqueued_timeacks the jobsharded_pool:acknowledgeredis connectionreturns error without creating a connection if block is not givenExpected #process to raise exceptionuses a given :drivermiddleware throws an exception after processing the workhandles a recurring failed messageallows #via to point to different Redilogging redis optionsmooredacts credentialsroleallows angry developers to express their emotional constitution and remedies itmastermaster_namemymasterbeefsentinelslifecycle eventscan clear retrieshosthandles invalid inputhost1port26379secret/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/test/test_sidekiqmon.rbhost2:startpInvalid event namesidekiq/monitorcan scan retriescapture_stdouthost3chompSymbols onlyoinkmiddleware decides to skip workporkthrows away old messages after too many retries (using the default)displays the current Sidekiq versiondisplays the current timeworker raises an exceptionhas a headingeverything goes wellallows Resque helpers to point to different Redi:host=>"host1", :port=>26379, :password=>"REDACTED"*test*stringifies keysdisplays the correct outputcustom retry delaymock_stats@old_optionsOpenStruct420710queue:queue_1@tmp_log_pathqueue:queue_2can enumerate processesqueue:queue_4:zaddqueue:queue_534identity_string56ArgsMutatingServerMiddlewareodata78cat90666:newProcessed: 420,710Failed: 12Busy: 34error handlingEnqueued: 56deals with user-specified error handlers which raise errorsRetries: 78Scheduled: 90ArgsMutatingClientMiddleware:host=>"host2", :port=>26379, :password=>"REDACTED"helloshould not enqueue jobs when terminate has been calledclass attribute race conditions:host=>"host3", :port=>26379, :password=>"REDACTED"new_classinclude Sidekiq::Worker:password=>"REDACTED"fake:piddoes not continually retrydoes not explode when new initializing classes from multiple threadsDead: 666t1t2/tmp/sidekiq-retries.log---- Processes (0) ----middleware mutates the job args and then failsmock_processesrequeues with original argumentsjob_datafoobarCustomWorkerWithoutExceptionlowmediumhighwith_sidekiq_optionSpecialError_original/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/test/test_systemd.rbCustomWorkerWithExceptionfoobar [baz]sidekiq/sd_notifyStarted: TestSystemd (just now)Tmpnamegenerates random intervals that target a configured averageprunes SSL parameters from the loggingThreads: 5 (2 busy)sidekiq_socketretry_stub_calledssl_paramssockaddrretry_stub@sockaddr@socketErrorWorkerQueues: high, low, medium:attempt_retrypsREADONLY You can't write against a replica.cert_store---- Queues (0) ----reconnects if connection is flagged as readonlycountsmock_queuesOpenSSLX509Storetotal_connections_received12.3456a_long_queue_name234567.89999when successfulsignals_stringretries with a default delay:UNIXNAME                 SIZE  LATENCY.determine_redis_providerreconnects if instance state changedsocket_ai@old_envfoobar                 12    12.35to_hasha_long_queue_name     234   567.90bindupdateretries with a custom delay and exception 1lpop35with_env_varvarskip_providerUNBLOCKED force unblock from blocking operation, instance state changed (master -> replica?)closevarsREDISTOGO_URLintervalscan enumerate workers:processed_today_keyretries with a custom delay and exception 2/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/test/test_testing.rb:random_poll_intervalredis infoSidekiq::Testingsuccessful_jobcalls the INFO command which returns at least redis_version>=require/load sidekiq/testing.rbretries with a default delay and exception in case of configured with nilhnenables fake testing:determine_redis_providerretries with a custom delay without exceptionenables fake testing in a blockincrements processed statpdatawith REDISTOGO_URL and a parallel REDIS_PROVIDER set/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/test/test_testing_fake.rbcalculates an average poll interval based on the number of known Sidekiq processesfalls back to the default retry on exceptionSidekiq::Testing.fakePerformErrorDirectWorkercustom job logger classCustomJobLoggerprocess-Failure scheduling retry using the defined `sidekiq_retry_in`EnqueuedWorkerLog entry missing for sidekiq_retry_inhandles errors withouth causejob_logger@errorStoredWorker:scaled_poll_intervaldoes not recurse infinitely checking if it's a shutdowndisables testing in a block:exception_caused_by_shutdown?handles errors with circular causes/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/test/test_testing_inline.rbError 1stubs the async calle1Error 21234Sidekiq::Testing.inlineInlineErrorrequire/load sidekiq/testing/inline.rbParameterIsNotStringsidekiq/testing/inlinesocket_messagerecvfromInlineWorkertest_notifyenables inline testingno jidInlineWorkerWithTimeParamperform_atyearenables inline testing in a blockdelayedis called instead default Sidekiq::JobLogger/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/test/test_util.rbFooMailersets connection URI to the providerTestUtilstubs the delay call on mailersHelpersredis://sidekiq-redis-provider:6379/0stubs the async call when in testing modewith middlewareprovidertest_event_firingSIDEKIQ_REDIS_PROVIDERbefore_handlershello!AttributeWorker:countredis://redis-to-go:6379/0InlineFooMailerwith REDIS_PROVIDER setrejects URLs in REDIS_PROVIDERSomethingAttributeMiddlewarestubs the delay call on classes:foo=/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/test/test_web_helpers.rbwraps the inlined worker with middleware/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/test/test_worker.rbTestWebHelpers#set@thehashSetWorkerBarMailerwith REDIS_URL setsets connection URI to custom uriweb/localesredis://redis-uri:6379/0provides basic ActiveJob compatibililitytest_locale_determinationInlineFooModelwait_until/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/test/test_web.rbfr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,ru;q=0.25678/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/web/views/_job_info.erb/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/web/views/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/webrack/test<header>
  <h3>threezh-CN,zh;q=0.8,en-US;q=0.6,en;q=0.4,ru;q=0.2 t('Job') Methods</h3>
</header>

<div class="table_container">
  <table class="table table-bordered table-striped table-hover">
    <tbody>
      <tr>
        <th> t('Queue') zh-cn</th>
        <td>
          <a href="stubs the delay call on models root_path  job.queue </a>
        </td>
      </tr>
      <tr>
        <th>en-US,sv-SE;q=0.8,sv;q=0.6,en;q=0.4</th>
        <td>
           job.display_class 
           display_tags(job) can reschedule jobs
        </td>
      </tr>
      <tr>
        <th>WebWorker t('Arguments') nb-NO,nb;q=0.2foo1</th>
        <td>
          <code class="code-wrap">
            <!-- We don't want to truncate any job arguments when viewing a single job's status page -->
            <div class="args-extended"> display_args(job.display_args, nil) </div>
          </code>
        </td>
      </tr>
      <tr>
        <th>JID</th>
        <td>
          <code>foo2nb job.jid can show text with any locales</code>
        </td>
      </tr>
      <tr>
        <th>rackenv t('CreatedAt') can be memoized</th>
        <td> relative_time(job.created_at) ru,en</td>
      </tr>
      <tr>
        <th>en-us t('Enqueued')  (enqueued_at = job.enqueued_at) ? relative_time(enqueued_at) : t('NotYetEnqueued') </td>
      </tr>
       unless retry_extra_items(job).empty? 
        <tr>
          <th> t('Extras') </th>
          <td>
            <code>
              qaazПанель управления retry_extra_items(job).inspect sv-se
            </code>
          </td>
        </tr>
      stubs the enqueue call when in testing mode if type == :retry sv
         if job['retry_count'] && job['retry_count'] > 0 
          <tr>
            <th> t('RetryCount') /home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/web/views/_footer.erb</th>
            <td> job['retry_count'] </td>
          </tr>
          <tr>
            <th> t('LastRetry') <div class="navbar navbar-fixed-bottom navbar-inverse ltr">
  <div class="navbar-inner">
    <div class="container text-center">
        <ul class="nav">
          <li>
            <p class="navbar-text product-version"> relative_time(Time.at(job['retried_at']))  product_version </td>
          </tr>
        </p>
          </li>
          <li>
            <p class="navbar-text redis-url" title=" else  redis_connection_and_namespace  t('OriginallyFailed') </p>
          </li>
          <li>
            <p id="serverUtcTime" class="navbar-text server-utc-time"> relative_time(Time.at(job['failed_at'])) pt-BR,pt;q=0.8,en-US;q=0.6,en;q=0.4 server_utc_time stubs the push_bulk call when in testing mode</p>
          </li>
          <li>
            <p class="navbar-text"><a style="color: gray;" href="https://github.com/mperham/sidekiq/wiki">docs</a></p>
          </li>
        </ul>
    </div>
  </div>
</div>
 t('NextRetry') returns enqueued jobs for specific classespt-br</th>
          <td> relative_time(job.at) </td>
        </tr>
       if type == :scheduled pt-PT,pt;q=0.8,en-US;q=0.6,en;q=0.4 t('Scheduled') pt/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/web/views/_nav.erb if type == :dead <div class="navbar navbar-default navbar-fixed-top">
  <div class="container-fluid">
    <div class="navbar-header" data-navbar="static">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-menu">
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <div class="navbar-toggle collapsed navbar-livereload">
         relative_time(job.at) if job['retry_count'] allows option overrides erb :_poll_link 
    </tbody>
  </table>
</div>
 if Sidekiq::Web.app_url should relay parameters through json
          <a class="btn btn-inverse" href="pt-pt Sidekiq::Web.app_url stubs the enqueue call t('BackToApp') </a>
        
      </div>
      <a class="navbar-brand" href="">
         Sidekiq::NAME  erb :_status 
      </a>
    </div>

    <div class="collapse navbar-collapse" id="navbar-menu">
      <ul class="nav navbar-nav" data-navbar="static">
         Sidekiq::Web.default_tabs.each do |title, url|  if url == '' 
            <li class=" current_path == url ? 'active' : '' Arguments">
            <a href="en-us; *handles symbols and strings url  t(title) </a>
            </li>
          CreatedAt current_path.start_with?(url) ? 'active' : '' stubs the enqueue_to callEnqueued14

         Sidekiq::Web.custom_tabs.each do |title, url| en-US,en;q=0.8/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/web/views/_paging.erb
          <li class="" data-navbar="custom-tab">
            <a href="prunes processes which have diedNotYetEnqueuedsomeq</a>
          </li>
        

        <li class="navbar-livereload">
          <div class="poll-wrapper">
            
            en-GB,en-US;q=0.8,en;q=0.6
              <a class="btn btn-inverse" href=" if @total_size > @count </a>
            
          </div>
        </li>
      </ul>
    </div>
  </div>
</div>
executes all stored jobs
  <ul class="pagination pull-right flip">
    <li class=" 'disabled' if @current_page == 1 :_poll_linkru">
      <a href="?page=1">&laquo;</a>
    </li>
    Extraslt if @current_page > 1 
      <li>
        <a href="BackToApp qparams(page: @current_page - 1)  @current_page - 1 :_status</a>
      </li>
    SpecificJidWorker
    <li class="disabled">
      <a href=" qparams(page: @current_page) RetryCount @current_page </a>
    </li>
     if @total_size > @current_page * @count LastRetryworker_jid qparams(page: @current_page + 1) allows multiple calls @current_page + 1 OriginallyFailed
    <li class=" 'disabled' if @total_size <= @current_page * @count execute only jobs with assigned JIDNextRetrywrong_jidbar:987bar:986/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/web/views/_poll_link.erb if current_path != '' 
    <a class="live-poll-start live-poll btn btn-primary"> t('LivePoll') </a>
    <a class="live-poll-stop live-poll btn btn-primary active">round trip serializes the job arguments t('StopPolling') </a>
/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/web/views/_status.erbLivePoll:mike<span class="status">
  <i class="status-sprite status-StopPolling current_status  qparams(page: (@total_size.to_f / @count).ceil) "></i>
  ">&raquo;</a>
    </li>
  </ul>
 t(current_status) works with .perform_bulk
</span>
perform_one runs only one jobdisabled/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/web/views/_summary.erb/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/web/views/busy.erb<ul class="list-unstyled summary row">
  <li class="processed col-sm-1">
    <span id="txtProcessed" class="count"> number_with_delimiter(stats.processed) </span>
    <span class="desc"> t('Processed') </span>
  </li>
  <li class="failed col-sm-1">
    <span id="txtFailed" class="count"> number_with_delimiter(stats.failed) <div class="row header">
  <div class="col-sm-4 pull-left flip">
    <h3> t('Failed')  t('Status') </span>
  </li>
  <li class="busy col-sm-1">
    <a href="</h3>
  </div>
</div>

<div class="stats-wrapper">
  <div class="stats-container">
    <div class="stat">
      <h3>busy">
      <span id="txtBusy" class="count"> s = processes.size; number_with_delimiter(s)  number_with_delimiter(workers.size) </h3>
      <p></span>
      <span class="desc"> t('Processes')  t('Busy') </p>
    </div>
    <div class="stat">
      <h3></span>
    </a>
  </li>
  <li class="enqueued col-sm-1">
    <a href=" x = processes.total_concurrency; number_with_delimiter(x) test_available_localesqueues">
      <span id="txtEnqueued" class="count"> t('Threads') perform_one raise error upon empty queue number_with_delimiter(stats.enqueued)  ws = workers.size; number_with_delimiter(ws) ar.perform_bulk and lazy enumerators</span>
    </a>
  </li>
  <li class="retries col-sm-1">
    <a href="csdadeevaluates lazy enumerators x == 0 ? 0 : ((ws / x.to_f) * 100).round(0) el%</h3>
      <p>eslast_response t('Utilization') faFirstWorkerhe format_memory(processes.total_rss) es,en t('RSS') hi</p>
    </div>
  </div>
</div>

<div class="row header">
  <div class="col-sm-4 pull-left flip">
    <h3>jako</h3>
  </div>
  <div class="col-sm-3 pull-right flip">
    <form method="POST" class="warning-messages">
      nl csrf_tag pl
      <div class="btn-group pull-right flip">
        <button class="btn btn-warn" type="submit" name="quiet" value="1" data-confirm="Panel de Control t('AreYouSure') ta t('QuietAll') </button>
        <button class="btn btn-danger" type="submit" name="stop" value="1" data-confirm="lazy_argsukurvizh-tw t('StopAll') </button>
      </div>
    </form>
  </div>
</div>
<div class="table_container">
  <table class="processes table table-hover table-bordered table-striped">
    <thead>
      <th>ceil t('Name') </th>
      <th> t('Started') </th>
      <th class="col-sm-1">test_display_illegal_args<a href="https://github.com/mperham/sidekiq/wiki/Memory#rss"><span class="info-circle" title="Click to learn more about RSS">?</span></a></th>
      <th class="col-sm-1"></th>
      <th>&nbsp;</th>
    </thead>
     lead = processes.leader 信息板 processes.each do |process| 
      <tr>
        <td class="box">
           "#{process['hostname']}:#{process['pid']}" 
          <span class="label label-success"> process.tag </span>
           process.labels.each do |label| 
            <span class="label label-info">#perform_inline label /home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/web/views/dashboard.erb$my_recorder if process.stopping? 1, 2, 3MyCustomWorker
            <span class="label label-danger">quiet</span>
          <script type="text/javascript" src="資訊主頁 if process.identity == lead javascripts/dashboard.js"></script>
<div class= "dashboard clearfix">
  <h3 >
    
            <span class="label label-warning">leader</span>
          <html> t('Dashboard') 
    <span id="beacon" class="beacon">
      <span class="ring"></span>
      <span class="dot"></span>
    </span>
  </h3>
  <div class="interval-slider ltr">
    <span class="interval-slider-label">&quot;&lt;html&gt;&quot;, 12MyCustomMiddleware t('PollingInterval') :</span>
    <span id="sldr-text" class="current-interval">5 sec</span>
    <br/>
    <input id="sldr" type="range" min="2000" max="20000" step="1000" value="5000"/>
  </div>
</div>

<div class="row chart">
  <div id="realtime" data-processed-label="
          <br>
          <b>Invalid job payload, args must be an Array, not String" data-failed-label=" "#{t('Queues')}: " </b>
          "></div>
  <div id="realtime-legend"></div>
</div>

<div class="row header">
   <div class="col-sm-4 pull-left flip">
     <h3> process.queues.join(", ")  t('History') 
        </td>
        <td></h3>
   </div>
 </div>
 <div class="row chart">
   <div>
    <a href="test_to_query_string_escapes_bad_query_input relative_time(Time.at(process['started_at'])) ?days=7" class="history-graph page=B%3CH-before</td>
        <td> "active" if params[:days] == "7"  format_memory(process['rss'].to_i) Oversiktresponse t('OneWeek') B<H process['concurrency'] </a>
    <a href="-after process['busy'] test_qparams_string_escapes_bad_query_input</td>
        <td>
          <form method="POST">
            
            <input type="hidden" name="identity" value="executes middleware & runs job inline process['identity'] can provide a default, appropriate CSP for its contentserver_chainH>B" class="history-graph policies "active" if params[:days].nil? || params[:days] == "30" 1-server t('OneMonth') client_chain?days=90" class="history-graph  "active" if params[:days] == "90"  t('ThreeMonths') 1-client?days=180" class="history-graph  "active" if params[:days] == "180" :server_middleware t('SixMonths') </a>
  </div>

  <div id="history" data-processed-label=":client_middleware" data-processed=" h Sidekiq.dump_json(@processed_history) " data-failed="1-client-before h Sidekiq.dump_json(@failed_history) " data-update-url="stats"></div>
  <div id="history-legend"></div>
</div>

<br/>
<div class="row header">
  <div class="col-sm-4 pull-left flip">
    <h3>Redis</h3>
  </div>
</div>
<div class="stats-wrapper">
  <div class="stats-container">
     if @redis_info.fetch("redis_version", nil) 1-client-after
      <div class="stat">
        <h3 id="redis_version">1-server-before @redis_info.fetch("redis_version") /home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/web/views/dead.erb1-server-after</h3>
        <p> t('Version') can display workers</p>
      </div>
     erb :_job_info, locals: { job: @dead, type: :dead } 

<h3> if @redis_info.fetch("uptime_in_days", nil)  t('Error') 
      <div class="stat">
        <h3 id="uptime_in_days"></h3>
<div class="table_container">
  <table class="error table table-bordered table-striped table-hover">
    <tbody>
      <tr>
        <th> @redis_info.fetch("uptime_in_days")  t('ErrorClass') </th>
        <td>
          <code> @dead['error_class']  t('Uptime')  t('ErrorMessage')  h(@dead['error_message'])  if @redis_info.fetch("connected_clients", nil)  if @dead.error_backtrace  t('ErrorBacktrace') foo:1234</th>
          <td>
            <code>
      <div class="stat">
        <h3 id="connected_clients"> @dead.error_backtrace.join("<br/>") </code>
          </td>
        </tr>
      
    </tbody>
  </table>
</div>

<form class="form-horizontal" action="retries">
      <span id="txtRetries" class="count">morgue//home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/web/views/layout.erb job_params(@dead, @dead.score)  number_with_delimiter(stats.retry_size) " method="post">
   t('Retries') 
  <a class="btn btn-default" href="</span>
    </a>
  </li>
  <li class="scheduled col-sm-1">
    <a href="morgue"> t('GoBack') scheduled">
      <span id="txtScheduled" class="count"></a>
  <input class="btn btn-primary" type="submit" name="retry" value=" t('RetryNow')  number_with_delimiter(stats.scheduled_size) " />
  <input class="btn btn-danger" type="submit" name="delete" value="<!doctype html>
<html dir=" t('Delete') foo:1234:workers" />
</form>
</span>
    </a>
  </li>
  <li class="dead col-sm-1">
    <a href=" text_direction :_job_infomorgue">
      <span id="txtDead" class="count">critical number_with_delimiter(stats.dead_size) :payload">
  <head>
    <title> t('Dead')  environment_title_prefix </span>
    </a>
  </li>
</ul>
</title>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width,initial-scale=1.0" />

    <link href="stylesheets/bootstrap.css" media="screen" rel="stylesheet" type="text/css" />
    abc if rtl? Processed:run_at
    <link href="Failedstylesheets/bootstrap-rtl.min.css" media="screen" rel="stylesheet" type="text/css"/>
    

    <link href="1001stylesheets/application.css" media="screen" rel="stylesheet" type="text/css" />
    <link href="stylesheets/application-dark.css" media="screen and (prefers-color-scheme: dark)" rel="stylesheet" type="text/css" />
    stylesheets/application-rtl.css" media="screen" rel="stylesheet" type="text/css" />
    

    <link rel="apple-touch-icon" href="images/apple-touch-icon.png">
    <link rel="shortcut icon" type="image/ico" href="images/favicon.ico" />
    <script type="text/javascript" src="javascripts/application.js"></script>
    <meta name="google" content="notranslate" />
     display_custom_head 
  </head>
  <body class="admin" data-locale=" locale ">
     erb :_nav 
    <div id="page">
      <div class="container">
        <div class="row">
          <div class="col-sm-12 summary_bar">
             erb :_summary SecondWorker
          </div>

          <div class="col-sm-12">
            
          </div>
        </div>
      </div>
    </div>
     erb :_footer status-activeThirdWorker/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/web/views/morgue.erbclears jobs across all workers"/>

            <div class="btn-group pull-right flip">
              <header class="row">
  <div class="col-sm-5">
    <h3>:_nav unless process.stopping?  t('DeadJobs') <button class="btn btn-xs btn-warn" type="submit" name="quiet" value="1">:_summary</h3>
  </div>
   t('Quiet')  if @dead.size > 0 && @total_size > @count :_footer</button>
    <div class="col-sm-4">
      
              <button class="btn btn-xs btn-danger" type="submit" name="stop" value="1"> erb :_paging, locals: { url: "#{root_path}morgue" }  t('Stop') 
    </div>
  </button>
            </div>
          </form>
        </td>
      </tr>
    
  
  </table>
</div>

<div class="row header">
  <div class="col-sm-7">
    <h3> filtering('dead') can quiet a process t('Jobs') 
</header>

</h3>
  </div>
</div>

<div class="table_container">
  <table class="workers table table-hover table-bordered table-striped">
    <thead>
      <th> if @dead.size > 0  t('Process') 
  <form action="signals_key t('TID') morgue" method="post">
    /home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/web/views/queue.erb @redis_info.fetch("connected_clients") ErrorClass t('Connections') <header class="row">
  <div class="col-sm-5">
    <h3>
       t('CurrentMessagesInQueue', :queue => h(@name)) ErrorMessagedirection=H%3EB&page=B%3CH if @redis_info.fetch("used_memory_human", nil)  if @queue.paused? 
        <span class="label label-danger"> t('Paused') </span>
      drains jobs across all workers
      <span class="badge badge-secondary">ErrorBacktrace number_with_delimiter(@total_size) 
      <div class="stat">
        <h3 id="used_memory_human"></span>
    </h3>
  </div>
  <div class="col-sm-4 pull-right flip">
     @redis_info.fetch("used_memory_human")  erb :_paging, locals: { url: "#{root_path}queues/#{CGI.escape(@name)}" } 
  </div>
</header>
<div class="table_container">
  <table class="queue table table-hover table-bordered table-striped">
    <thead>
      <th><a href=" t('MemoryUsage') <br/>can stop a process?direction= params[:direction] == 'asc' ? 'desc' : 'asc'  if @redis_info.fetch("used_memory_peak_human", nil) "># 
      <div class="stat">
        <h3 id="used_memory_peak_human"> sort_direction_label  @redis_info.fetch("used_memory_peak_human") </a></th>
      <th> t('PeakMemoryUsage') GoBack</th>
      <th></th>
    </thead>
     @jobs.each_with_index do |job, index| 
      <tr title="RetryNow
  </div>
</div>
Delete
    <div class="table_container">
      <table class="table table-striped table-bordered table-hover">
        <thead>
          <tr>
            <th class="table-checkbox checkbox-column">
              <label>
                <input type="checkbox" class="check_all" />
              </label>
            </th>
            <th></th>
            <th>PollingInterval/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/web/views/queues.erb if params[:direction] == 'asc' </th>
          </tr>
        </thead>
        
          <td> @dead.each do |entry|  @count * (@current_page - 1) + index + 1 
          <tr>
            <td class="table-checkbox">
              <label>
                <input type='checkbox' name='key[]' value='/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/web/views/retries.erb</td>
        <h3> job_params(entry.item, entry.score) can display queues @total_size - (@count * (@current_page - 1) + index) ' />
              </label>
            </td>
            <td>
              <a href=" t('Queues') :days
        <td>
           if @retries.size > 0 && @total_size > @count  h(job.display_class)  relative_time(entry.at) OneWeek</h3>

<div class="table_container">
  <table class="queues table table-hover table-bordered table-striped">
    <thead>
      <th> erb :_paging, locals: { url: "#{root_path}retries" }  display_tags(job, nil) </a>
            </td>
            <td>
              <a href="
        </td>
        <td>
           t('Size')  a = job.display_args  entry.queue  t('Latency')  filtering('retries')  if a.inspect.size > 100 </a>
            </td>
            <td>
               t('Actions')  if @retries.size > 0 
            <span id="job_</th>
    </thead>
     index  entry.display_class  t('JID') retries" method="post">
     display_tags(entry, "dead")  h(a.inspect[0..100]) + "... " OneMonth
            </td>
            <td>
              <div class="args"></span>
            <button data-toggle="job_ display_args(entry.display_args) </div>
            </td>
            <td>
              " class="btn btn-default btn-xs"> if entry.error?  t('ShowAll')  workers.each do |process, thread, msg| </button>
            <div class="toggle" id="job_
              <div> h truncate("#{entry['error_class']}: #{entry['error_message']}", 200)  job = Sidekiq::JobRecord.new(msg['payload']) _full">refute_match</div>
              drains jobs across all workers even when workers create new jobs
      <tr>
        <td> process 
            </td>
          </tr>
         thread ThreeMonths
      </table>
    </div>
    <input class="btn btn-primary pull-left flip" type="submit" name="retry" value=" @retries.each do |entry| 0.0</td>
        <td>
          <a href="drains jobs of workers with symbolized queue names65SixMonths msg['queue'] retries/ @queues.each do |queue| AltQueueWorker</a>
        </td>
        <td>
          </a>
            </td>
            <td>
        </td>
        <td>
          <div class="args">
      <tr>
        <td>
          <a href=" entry['retry_count']  display_args(job.display_args) </td>
            <td>
              <a href=" CGI.escape(queue.name) </div>
        </td>
        <td> relative_time(Time.at(msg['run_at']))  h queue.name </td>
      </tr>
    </a>
           if queue.paused? 
  </table>
</div>

            <span class="label label-danger"> display_tags(entry, "retries")  display_args(a)  number_with_delimiter(queue.size) </div>
            </td>
            <td>
              <div></div>
           </td>
        <td> queue_latency = queue.latency can execute a job number_with_delimiter(queue_latency.round(2)) </div>
            </td>
          </tr>
         (queue_latency < 60) ? '' : " (#{relative_time(Time.at(Time.now.to_f - queue_latency))})"  </td>
        <td class="delete-confirm">
          <form action="root_path " method="post">
            queue testing
            <input class="btn btn-danger" type="submit" name="delete" title="This will delete all jobs within the queue, it will reappear if you push more jobs to it in the future." value="65.0Processes
        </td>
        <td>
          <form action="" data-confirm=" t('AreYouSureDeleteQueue', :queue => h(queue.name))  CGI.escape(@name) " />

             if Sidekiq.pro? 
                <input class="btn btn-danger" type="submit" name="unpause" value="/delete" method="post">
             t('Unpause') 
            <input name="key_val" value="" />
              Threadshandles queue view h job.value QueueWorker" type="hidden" />
            <input class="btn btn-danger btn-xs" type="submit" name="delete" value="
                <input class="btn btn-danger" type="submit" name="pause" value="ws/queues/onmouseover=alert() t('Pause') " />
          </form>
        </td>
      </tr>
    
          </form>
        </td>
      </tr>
    /queues/foo_bar:123-wow.CurrentMessagesInQueue:altfoo_bar:123-wowfinds enqueued jobsPaused/queues/defaultUtilizationtotal_rss:_pagingRSScan sort on enqueued_at columnSizeLatency1005AreYouSureActionsQuietAllStopAllNameStarted/queues/default?count=3queue_latencyalt# direction is 'desc' by defaultleadclears out all queues1002/queues/default?count=3&direction=asc1003labelAreYouSureDeleteQueuecan delete a queue... ShowAllUnpausePause:[],:1567894960}Uptime/queues/foo/home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/web/views/retry.erbQuietConnectionsStop erb :_job_info, locals: { job: @retry, type: :retry } finds jobs enqueued by client h @retry['error_class'] /home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/web/views/scheduled.erbNonExistentWorker h(@retry['error_message']) Jobs if @retry.error_backtrace MemoryUsagemissing" />
    <input class="btn btn-danger pull-left flip" type="submit" name="delete" value=" @retry.error_backtrace.join("<br/>") can attempt to pause a queueTID" />
    <input class="btn btn-danger pull-left flip" type="submit" name="kill" value="" />
  </form>

   t('Kill')  unfiltered? do :pro?JID job_params(@retry, @retry.score) 
    <form action="morgue/all/delete" method="post">
      PeakMemoryUsageretries"> t('ScheduledJobs') retries/all/delete" method="post">
       if @scheduled.size > 0 && @total_size > @count respects underlying array changes
      <input class="btn btn-danger pull-right flip" type="submit" name="delete" value=" erb :_paging, locals: { url: "#{root_path}scheduled" } # Rspec expect change() syntax saves a reference to t('DeleteAll') # an underlying array. When the array containing jobs is# derived, Rspec test using `change(QueueWorker.jobs, :size).by(1)`# won't pass. This attempts to recreate that scenario:pause!" />
    </form>
    <form action="morgue/all/retry" method="post">
      
      <input class="btn btn-danger pull-right flip" type="submit" name="retry" value="retries/all/retry" method="post">
       t('RetryAll') " />
    </form>
  

retries/all/kill" method="post">
      
  <div class="alert alert-success"> t('NoDeadJobsFound') 
      <input class="btn btn-danger pull-right flip" type="submit" name="kill" value="</div>
 t('KillAll') /home/sim4n6/Desktop/GhSec/repos/sidekiq_vuln/web/views/scheduled_job_info.erb t('NoRetriesFound') DeadJobs erb :_job_info, locals: { job: @job, type: :scheduled } 

<form class="form-horizontal" action="assert_mockscheduled/ job_params(@job, @job.score) can attempt to unpause a queuescheduled"></a>
  <input class="btn btn-primary" type="submit" name="add_to_queue" value=" t('AddToQueue') :unpause! filtering('scheduled')  if @scheduled.size > 0 

  <form action="# by saving a reference to the jobs array and ensuring# it changes properly on enqueueingscheduled" method="post">
    
    <div class="table_container">
      <table class="table table-striped table-bordered table-hover">
        <thead>
          <tr>
            <th class="checkbox-column">
              <input type="checkbox" class="check_all" />
            </th>
            <th> t('When') AddToQueueignores to attempt to pause a queue with pro disabled @scheduled.each do |entry| 
          <tr>
            <td>
              <input type='checkbox' name='key[]' value='' />
            </td>
            <td>
               <a href=" display_tags(entry, "scheduled") 
            </td>
            <td>
               <div class="args">
      </table>
    </div>
    <input class="btn btn-danger pull-right flip" type="submit" name="delete" value="" />
    <input class="btn btn-danger pull-right flip" type="submit" name="add_to_queue" value="DeleteAll" />
  </form>
 t('NoScheduledFound') RetryAllignores to attempt to unpause a queue with pro disabledScheduledJobsNoDeadJobsFoundKillKillAllWhenNoRetriesFoundcan delete a job{"args":[],"enqueued_at":1567894960}{"foo":"bar","args":[],"enqueued_at":1567894960}{"foo2":"bar2","args":[],"enqueued_at":1567894960}/queues/foo/deletecan display retriesfoundNoScheduledFoundcan display a single retry/retries/0-shouldntexist/retries/handles missing retrycan delete a single retryhttp://example.org/retriesheadercan delete all retriescan retry a single retry nowRetrycan kill a single retry nowcan display scheduledadd_scheduledcan display a single scheduled job/scheduled/0-shouldntexist/scheduled/can display a single scheduled job tagstag1tag2handles missing scheduled jobcan add to queue a single scheduled jobhttp://example.org/scheduledcan delete a single scheduled jobcan delete scheduledcan move scheduled to default queuecan retry all retriesescape job args and error messages# on /retries pageadd_xss_retryFailWorkerfail message: &lt;a&gt;hello&lt;&#x2F;a&gt;fail message: <a>hello</a>>&quot;&lt;a&gt;hello&lt;&#x2F;a&gt;&quot;<><a>hello</a><# on /workers pagefrumduz<a>hello</a>100001&lt;a&gt;hello&lt;&#x2F;a&gt;# on /queues page# sorry, don't know how to easily make this show up on queues page otherwise.can show user defined tabCustom Tab/customcan display homecustom localesfixtures# ugly hack since I can't figure out how to access WebHelpers outside of this contexttranslated_textcan show user defined tab with custom localesChanged textdashboard/statsredirects to statshttp://example.org/statsadd_worker@responsebad JSONdisplays without errorkill_badsomething bad/morgue/stats/queuesqueue2reports the queue depthdead jobsshows empty indexshows index with jobsadd_deadcan delete all deadhttp://example.org/morguecan display a dead jobcan retry a dead jobjid-with-hyphenSome fake message{ something bad }:{:true,:20,:5,:[,10,5],2b5ad2b016f5e063a1c62872},:1361208995}basic authAuthBasicuserSessionCookierequires basic authentication401WWW-Authenticateauthenticates successfulybasic_authorizecustom sessionv3rys3cr31nicehost.orgrequires uses session optionssession_optionslast_request:secret:hostredirecting in before:some_setting:before:afterremove_instance_variable:@befores:@aftersallows afters to run                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          F    	a    