content: package kotlinx.coroutines;
  
  import java.util.concurrent.CancellationException;
  import kotlin.Deprecated;
  import kotlin.DeprecationLevel;
  import kotlin.Metadata;
  import kotlin.Unit;
  import kotlin.coroutines.Continuation;
  import kotlin.coroutines.CoroutineContext;
  import kotlin.jvm.functions.Function1;
  import kotlin.jvm.functions.Function2;
  import kotlin.sequences.Sequence;
  import kotlinx.coroutines.selects.SelectClause0;
  
  @Metadata(d1 = {"\u0000^\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0010\u000b\n\u0002\b\u0004\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u0002\n\u0000\n\u0002\u0010\u0003\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0007\bf\u0018\u0000 (2\u00020\u0001:\u0001(J\u0010\u0010\u000f\u001a\u00020\u00102\u0006\u0010\u0011\u001a\u00020\u0012H'J\b\u0010\u0013\u001a\u00020\u0014H\u0017J\u0014\u0010\u0013\u001a\u00020\u00072\n\b\u0002\u0010\u0015\u001a\u0004\u0018\u00010\u0016H'J\u001a\u0010\u0013\u001a\u00020\u00142\u0010\b\u0002\u0010\u0015\u001a\n\u0018\u00010\u0017j\u0004\u0018\u0001`\u0018H&J\f\u0010\u0019\u001a\u00060\u0017j\u0002`\u0018H'JE\u0010\u001a\u001a\u00020\u001b2\b\b\u0002\u0010\u001c\u001a\u00020\u00072\b\b\u0002\u0010\u001d\u001a\u00020\u00072'\u0010\u001e\u001a#\u0012\u0015\u0012\u0013\u0018\u00010\u0016¢\u0006\f\b \u0012\b\b!\u0012\u0004\b\b(\u0015\u0012\u0004\u0012\u00020\u00140\u001fj\u0002`\"H'J1\u0010\u001a\u001a\u00020\u001b2'\u0010\u001e\u001a#\u0012\u0015\u0012\u0013\u0018\u00010\u0016¢\u0006\f\b \u0012\b\b!\u0012\u0004\b\b(\u0015\u0012\u0004\u0012\u00020\u00140\u001fj\u0002`\"H&J\u0011\u0010#\u001a\u00020\u0014H¦@ø\u0001\u0000¢\u0006\u0002\u0010$J\u0011\u0010%\u001a\u00020\u00002\u0006\u0010&\u001a\u00020\u0000H\u0002J\b\u0010'\u001a\u00020\u0007H&R\u0018\u0010\u0002\u001a\b\u0012\u0004\u0012\u00020\u00000\u0003X¦\u0004¢\u0006\u0006\u001a\u0004\b\u0004\u0010\u0005R\u0012\u0010\u0006\u001a\u00020\u0007X¦\u0004¢\u0006\u0006\u001a\u0004\b\u0006\u0010\bR\u0012\u0010\t\u001a\u00020\u0007X¦\u0004¢\u0006\u0006\u001a\u0004\b\t\u0010\bR\u0012\u0010\n\u001a\u00020\u0007X¦\u0004¢\u0006\u0006\u001a\u0004\b\n\u0010\bR\u0012\u0010\u000b\u001a\u00020\fX¦\u0004¢\u0006\u0006\u001a\u0004\b\r\u0010\u000e\u0002\u0004\n\u0002\b\u0019¨\u0006)"}, d2 = {"Lkotlinx/coroutines/Job;", "Lkotlin/coroutines/CoroutineContext$Element;", "children", "Lkotlin/sequences/Sequence;", "getChildren", "()Lkotlin/sequences/Sequence;", "isActive", "", "()Z", "isCancelled", "isCompleted", "onJoin", "Lkotlinx/coroutines/selects/SelectClause0;", "getOnJoin", "()Lkotlinx/coroutines/selects/SelectClause0;", "attachChild", "Lkotlinx/coroutines/ChildHandle;", "child", "Lkotlinx/coroutines/ChildJob;", "cancel", "", "cause", "", "Ljava/util/concurrent/CancellationException;", "Lkotlinx/coroutines/CancellationException;", "getCancellationException", "invokeOnCompletion", "Lkotlinx/coroutines/DisposableHandle;", "onCancelling", "invokeImmediately", "handler", "Lkotlin/Function1;", "Lkotlin/ParameterName;", "name", "Lkotlinx/coroutines/CompletionHandler;", "join", "(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;", "plus", "other", "start", "Key", "kotlinx-coroutines-core"}, k = 1, mv = {1, 6, 0}, xi = 48)
  /* compiled from: Job.kt */
  public interface Job extends CoroutineContext.Element {
      public static final Key Key = Key.$$INSTANCE;
  
      @Metadata(k = 3, mv = {1, 6, 0}, xi = 48)
      /* compiled from: Job.kt */
      public static final class DefaultImpls {
          public static /* synthetic */ void cancel$default(Job job, CancellationException cancellationException, int i, Object obj) {
              if (obj == null) {
                  if ((i & 1) != 0) {
                      cancellationException = null;
                  }
                  job.cancel(cancellationException);
                  return;
              }
              throw new UnsupportedOperationException("Super calls with default arguments not supported in this target, function: cancel");
          }
  
          public static /* synthetic */ boolean cancel$default(Job job, Throwable th, int i, Object obj) {
              if (obj == null) {
                  if ((i & 1) != 0) {
                      th = null;
                  }
                  return job.cancel(th);
              }
              throw new UnsupportedOperationException("Super calls with default arguments not supported in this target, function: cancel");
          }
  
          public static <R> R fold(Job job, R initial, Function2<? super R, ? super CoroutineContext.Element, ? extends R> operation) {
              return CoroutineContext.Element.DefaultImpls.fold(job, initial, operation);
          }
  
          public static <E extends CoroutineContext.Element> E get(Job job, CoroutineContext.Key<E> key) {
              return CoroutineContext.Element.DefaultImpls.get(job, key);
          }
  
          public static /* synthetic */ DisposableHandle invokeOnCompletion$default(Job job, boolean z, boolean z2, Function1 function1, int i, Object obj) {
              if (obj == null) {
                  if ((i & 1) != 0) {
                      z = false;
                  }
                  if ((i & 2) != 0) {
                      z2 = true;
                  }
                  return job.invokeOnCompletion(z, z2, function1);
              }
              throw new UnsupportedOperationException("Super calls with default arguments not supported in this target, function: invokeOnCompletion");
          }
  
          public static CoroutineContext minusKey(Job job, CoroutineContext.Key<?> key) {
              return CoroutineContext.Element.DefaultImpls.minusKey(job, key);
          }
  
          public static CoroutineContext plus(Job job, CoroutineContext context) {
              return CoroutineContext.Element.DefaultImpls.plus(job, context);
          }
  
          @Deprecated(level = DeprecationLevel.ERROR, message = "Operator '+' on two Job objects is meaningless. Job is a coroutine context element and `+` is a set-sum operator for coroutine contexts. The job to the right of `+` just replaces the job the left of `+`.")
          public static Job plus(Job job, Job other) {
              return other;
          }
      }
  
      @Metadata(d1 = {"\u0000\u0010\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\b\u0003\u0018\u00002\b\u0012\u0004\u0012\u00020\u00020\u0001B\u0007\b\u0002¢\u0006\u0002\u0010\u0003¨\u0006\u0004"}, d2 = {"Lkotlinx/coroutines/Job$Key;", "Lkotlin/coroutines/CoroutineContext$Key;", "Lkotlinx/coroutines/Job;", "()V", "kotlinx-coroutines-core"}, k = 1, mv = {1, 6, 0}, xi = 48)
      /* compiled from: Job.kt */
      public static final class Key implements CoroutineContext.Key<Job> {
          static final /* synthetic */ Key $$INSTANCE = new Key();
  
          private Key() {
          }
      }
  
      ChildHandle attachChild(ChildJob childJob);
  
      @Deprecated(level = DeprecationLevel.HIDDEN, message = "Since 1.2.0, binary compatibility with versions <= 1.1.x")
      /* synthetic */ void cancel();
  
      void cancel(CancellationException cancellationException);
  
      @Deprecated(level = DeprecationLevel.HIDDEN, message = "Since 1.2.0, binary compatibility with versions <= 1.1.x")
      /* synthetic */ boolean cancel(Throwable th);
  
      CancellationException getCancellationException();
  
      Sequence<Job> getChildren();
  
      SelectClause0 getOnJoin();
  
      DisposableHandle invokeOnCompletion(Function1<? super Throwable, Unit> function1);
  
      DisposableHandle invokeOnCompletion(boolean z, boolean z2, Function1<? super Throwable, Unit> function1);
  
      boolean isActive();
  
      boolean isCancelled();
  
      boolean isCompleted();
  
      Object join(Continuation<? super Unit> continuation);
  
      @Deprecated(level = DeprecationLevel.ERROR, message = "Operator '+' on two Job objects is meaningless. Job is a coroutine context element and `+` is a set-sum operator for coroutine contexts. The job to the right of `+` just replaces the job the left of `+`.")
      Job plus(Job job);
  
      boolean start();
  }
  