hunk.code_window:   if (resumeData) {
       downloadTask = [session downloadTaskWithResumeData:resumeData];
     } else {
       downloadTask = [session downloadTaskWithURL:url];
     }
     [downloadTask resume];
   }
   - (NSString *)_scopedPathFromURI:(NSString *)uri
  
hunk.labels: keep keep keep replace keep keep keep keep keep
hunk.after_edit:     NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url];
       if (options[@"headers"]) {
         NSDictionary *headerDict = (NSDictionary *) [options objectForKey:@"headers"];
         for (NSString *key in headerDict) {
           NSString *value = (NSString *) [headerDict objectForKey:key];
           [request addValue:value forHTTPHeaderField:key];
         }
       }
       downloadTask = [session downloadTaskWithRequest:request];
  
hunk.file_path: ios/Exponent/Versioned/Modules/Api/EXFileSystem.m
hunk.type: replace
file: /**
   * Copyright (c) 2015-present, Facebook, Inc.
   * All rights reserved.
   *
   * This source code is licensed under the BSD-style license found in the
   * LICENSE file in the root directory of this source tree. An additional grant
   * of patent rights can be found in the PATENTS file in the same directory.
   *
   * @providesModule NativeEventEmitter
   * @flow
   */
  'use strict';
  
  const EventEmitter = require('EventEmitter');
  const Platform = require('Platform');
  const RCTDeviceEventEmitter = require('RCTDeviceEventEmitter');
  const invariant = require('fbjs/lib/invariant');
  
  import type EmitterSubscription from 'EmitterSubscription';
  
  /**
   * Abstract base class for implementing event-emitting modules. This implements
   * a subset of the standard EventEmitter node module API.
   */
  class NativeEventEmitter extends EventEmitter {
  
    _nativeModule: Object;
  
    constructor(nativeModule: Object) {
      super(RCTDeviceEventEmitter.sharedSubscriber);
      if (Platform.OS === 'ios') {
        invariant(nativeModule, 'Native module cannot be null.');
        this._nativeModule = nativeModule;
      }
    }
  
    addListener(eventType: string, listener: Function, context: ?Object): EmitterSubscription {
      if (Platform.OS === 'ios') {
        this._nativeModule.addListener(eventType);
      }
      return super.addListener(eventType, listener, context);
    }
  
    removeAllListeners(eventType: string) {
      invariant(eventType, 'eventType argument is required.');
      if (Platform.OS === 'ios') {
        const count = this.listeners(eventType).length;
        this._nativeModule.removeListeners(count);
      }
      super.removeAllListeners(eventType);
    }
  
    removeSubscription(subscription: EmitterSubscription) {
      if (Platform.OS === 'ios') {
        this._nativeModule.removeListeners(1);
      }
      super.removeSubscription(subscription);
    }
  }
  
  module.exports = NativeEventEmitter;
  