diff --git a/plugins/2018.3326/android/corona.gradle b/plugins/2018.3326/android/corona.gradle
index b752757..129ae43 100644
--- a/plugins/2018.3326/android/corona.gradle
+++ b/plugins/2018.3326/android/corona.gradle
@@ -1,3 +1,3 @@
dependencies {
- implementation("com.appodeal.ads.sdk.networks:admob:2.10.1.12")
+ implementation("com.appodeal.ads.sdk.networks:admob:2.11.0.17")
}
diff --git a/plugins/2018.3326/iphone-sim/GoogleAppMeasurement.framework/GoogleAppMeasurement b/plugins/2018.3326/iphone-sim/GoogleAppMeasurement.framework/GoogleAppMeasurement
index c36c920..7ebb205 100755
Binary files a/plugins/2018.3326/iphone-sim/GoogleAppMeasurement.framework/GoogleAppMeasurement and b/plugins/2018.3326/iphone-sim/GoogleAppMeasurement.framework/GoogleAppMeasurement differ
diff --git a/plugins/2018.3326/iphone-sim/GoogleAppMeasurement.framework/Info.plist b/plugins/2018.3326/iphone-sim/GoogleAppMeasurement.framework/Info.plist
index bfdfcbb..da08178 100644
--- a/plugins/2018.3326/iphone-sim/GoogleAppMeasurement.framework/Info.plist
+++ b/plugins/2018.3326/iphone-sim/GoogleAppMeasurement.framework/Info.plist
@@ -13,7 +13,7 @@
CFBundlePackageType
FMWK
CFBundleVersion
- 8.3.0
+ 8.9.1
DTSDKName
iphonesimulator11.2
diff --git a/plugins/2018.3326/iphone-sim/GoogleAppMeasurementIdentitySupport.framework/GoogleAppMeasurementIdentitySupport b/plugins/2018.3326/iphone-sim/GoogleAppMeasurementIdentitySupport.framework/GoogleAppMeasurementIdentitySupport
new file mode 100755
index 0000000..2f8abc9
Binary files /dev/null and b/plugins/2018.3326/iphone-sim/GoogleAppMeasurementIdentitySupport.framework/GoogleAppMeasurementIdentitySupport differ
diff --git a/plugins/2018.3326/iphone-sim/GoogleAppMeasurementIdentitySupport.framework/Info.plist b/plugins/2018.3326/iphone-sim/GoogleAppMeasurementIdentitySupport.framework/Info.plist
new file mode 100644
index 0000000..f80bfd1
--- /dev/null
+++ b/plugins/2018.3326/iphone-sim/GoogleAppMeasurementIdentitySupport.framework/Info.plist
@@ -0,0 +1,20 @@
+
+
+
+
+ CFBundleExecutable
+ GoogleAppMeasurementIdentitySupport
+ CFBundleIdentifier
+ com.firebase.Firebase-GoogleAppMeasurementIdentitySupport
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ GoogleAppMeasurementIdentitySupport
+ CFBundlePackageType
+ FMWK
+ CFBundleVersion
+ 8.9.1
+ DTSDKName
+ iphonesimulator11.2
+
+
diff --git a/plugins/2018.3326/iphone-sim/GoogleMobileAds.framework/GoogleMobileAds b/plugins/2018.3326/iphone-sim/GoogleMobileAds.framework/GoogleMobileAds
index 3970759..168677a 100755
Binary files a/plugins/2018.3326/iphone-sim/GoogleMobileAds.framework/GoogleMobileAds and b/plugins/2018.3326/iphone-sim/GoogleMobileAds.framework/GoogleMobileAds differ
diff --git a/plugins/2018.3326/iphone-sim/UserMessagingPlatform.framework/UserMessagingPlatform b/plugins/2018.3326/iphone-sim/UserMessagingPlatform.framework/UserMessagingPlatform
deleted file mode 100755
index 551231f..0000000
Binary files a/plugins/2018.3326/iphone-sim/UserMessagingPlatform.framework/UserMessagingPlatform and /dev/null differ
diff --git a/plugins/2018.3326/iphone-sim/libAPDGoogleAdMobAdapter.a b/plugins/2018.3326/iphone-sim/libAPDGoogleAdMobAdapter.a
old mode 100755
new mode 100644
index 7e7229e..87763f3
Binary files a/plugins/2018.3326/iphone-sim/libAPDGoogleAdMobAdapter.a and b/plugins/2018.3326/iphone-sim/libAPDGoogleAdMobAdapter.a differ
diff --git a/plugins/2018.3326/iphone-sim/metadata.lua b/plugins/2018.3326/iphone-sim/metadata.lua
index 5cb489a..64b544d 100644
--- a/plugins/2018.3326/iphone-sim/metadata.lua
+++ b/plugins/2018.3326/iphone-sim/metadata.lua
@@ -4,7 +4,7 @@ local metadata =
{
format = 'staticLibrary',
staticLibs = { 'APDGoogleAdMobAdapter', },
- frameworks = { 'GoogleAppMeasurement', 'GoogleMobileAds', 'UserMessagingPlatform', 'FBLPromises', 'GoogleUtilities', 'nanopb', },
+ frameworks = { 'GoogleAppMeasurement', 'GoogleAppMeasurementIdentitySupport', 'GoogleMobileAds', 'FBLPromises', 'GoogleUtilities', 'nanopb', },
frameworksOptional = {},
},
}
diff --git a/plugins/2018.3326/iphone-sim/resources/Frameworks/FBLPromises.framework/FBLPromises b/plugins/2018.3326/iphone-sim/resources/Frameworks/FBLPromises.framework/FBLPromises
index 794c906..f8b93b4 100755
Binary files a/plugins/2018.3326/iphone-sim/resources/Frameworks/FBLPromises.framework/FBLPromises and b/plugins/2018.3326/iphone-sim/resources/Frameworks/FBLPromises.framework/FBLPromises differ
diff --git a/plugins/2018.3326/iphone-sim/resources/Frameworks/FBLPromises.framework/Info.plist b/plugins/2018.3326/iphone-sim/resources/Frameworks/FBLPromises.framework/Info.plist
index 389ad84..c853cd9 100644
Binary files a/plugins/2018.3326/iphone-sim/resources/Frameworks/FBLPromises.framework/Info.plist and b/plugins/2018.3326/iphone-sim/resources/Frameworks/FBLPromises.framework/Info.plist differ
diff --git a/plugins/2018.3326/iphone-sim/resources/Frameworks/GoogleUtilities.framework/GoogleUtilities b/plugins/2018.3326/iphone-sim/resources/Frameworks/GoogleUtilities.framework/GoogleUtilities
index 618fad2..bce6ed1 100755
Binary files a/plugins/2018.3326/iphone-sim/resources/Frameworks/GoogleUtilities.framework/GoogleUtilities and b/plugins/2018.3326/iphone-sim/resources/Frameworks/GoogleUtilities.framework/GoogleUtilities differ
diff --git a/plugins/2018.3326/iphone-sim/resources/Frameworks/GoogleUtilities.framework/Info.plist b/plugins/2018.3326/iphone-sim/resources/Frameworks/GoogleUtilities.framework/Info.plist
index 3a77e22..943d6e1 100644
Binary files a/plugins/2018.3326/iphone-sim/resources/Frameworks/GoogleUtilities.framework/Info.plist and b/plugins/2018.3326/iphone-sim/resources/Frameworks/GoogleUtilities.framework/Info.plist differ
diff --git a/plugins/2018.3326/iphone-sim/resources/Frameworks/nanopb.framework/Info.plist b/plugins/2018.3326/iphone-sim/resources/Frameworks/nanopb.framework/Info.plist
index 803d2bf..b1d9f41 100644
Binary files a/plugins/2018.3326/iphone-sim/resources/Frameworks/nanopb.framework/Info.plist and b/plugins/2018.3326/iphone-sim/resources/Frameworks/nanopb.framework/Info.plist differ
diff --git a/plugins/2018.3326/iphone-sim/resources/Frameworks/nanopb.framework/nanopb b/plugins/2018.3326/iphone-sim/resources/Frameworks/nanopb.framework/nanopb
index d53cc59..af3a28b 100755
Binary files a/plugins/2018.3326/iphone-sim/resources/Frameworks/nanopb.framework/nanopb and b/plugins/2018.3326/iphone-sim/resources/Frameworks/nanopb.framework/nanopb differ
diff --git a/plugins/2018.3326/iphone/GoogleAppMeasurement.framework/GoogleAppMeasurement b/plugins/2018.3326/iphone/GoogleAppMeasurement.framework/GoogleAppMeasurement
index 6734f67..11e3f51 100755
Binary files a/plugins/2018.3326/iphone/GoogleAppMeasurement.framework/GoogleAppMeasurement and b/plugins/2018.3326/iphone/GoogleAppMeasurement.framework/GoogleAppMeasurement differ
diff --git a/plugins/2018.3326/iphone/GoogleAppMeasurement.framework/Info.plist b/plugins/2018.3326/iphone/GoogleAppMeasurement.framework/Info.plist
index bfdfcbb..da08178 100644
--- a/plugins/2018.3326/iphone/GoogleAppMeasurement.framework/Info.plist
+++ b/plugins/2018.3326/iphone/GoogleAppMeasurement.framework/Info.plist
@@ -13,7 +13,7 @@
CFBundlePackageType
FMWK
CFBundleVersion
- 8.3.0
+ 8.9.1
DTSDKName
iphonesimulator11.2
diff --git a/plugins/2018.3326/iphone/GoogleAppMeasurementIdentitySupport.framework/GoogleAppMeasurementIdentitySupport b/plugins/2018.3326/iphone/GoogleAppMeasurementIdentitySupport.framework/GoogleAppMeasurementIdentitySupport
new file mode 100755
index 0000000..f53be16
Binary files /dev/null and b/plugins/2018.3326/iphone/GoogleAppMeasurementIdentitySupport.framework/GoogleAppMeasurementIdentitySupport differ
diff --git a/plugins/2018.3326/iphone/GoogleAppMeasurementIdentitySupport.framework/Info.plist b/plugins/2018.3326/iphone/GoogleAppMeasurementIdentitySupport.framework/Info.plist
new file mode 100644
index 0000000..f80bfd1
--- /dev/null
+++ b/plugins/2018.3326/iphone/GoogleAppMeasurementIdentitySupport.framework/Info.plist
@@ -0,0 +1,20 @@
+
+
+
+
+ CFBundleExecutable
+ GoogleAppMeasurementIdentitySupport
+ CFBundleIdentifier
+ com.firebase.Firebase-GoogleAppMeasurementIdentitySupport
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ GoogleAppMeasurementIdentitySupport
+ CFBundlePackageType
+ FMWK
+ CFBundleVersion
+ 8.9.1
+ DTSDKName
+ iphonesimulator11.2
+
+
diff --git a/plugins/2018.3326/iphone/GoogleMobileAds.framework/GoogleMobileAds b/plugins/2018.3326/iphone/GoogleMobileAds.framework/GoogleMobileAds
index d3c36b6..1176a37 100755
Binary files a/plugins/2018.3326/iphone/GoogleMobileAds.framework/GoogleMobileAds and b/plugins/2018.3326/iphone/GoogleMobileAds.framework/GoogleMobileAds differ
diff --git a/plugins/2018.3326/iphone/UserMessagingPlatform.framework/UserMessagingPlatform b/plugins/2018.3326/iphone/UserMessagingPlatform.framework/UserMessagingPlatform
deleted file mode 100755
index 9ed7939..0000000
Binary files a/plugins/2018.3326/iphone/UserMessagingPlatform.framework/UserMessagingPlatform and /dev/null differ
diff --git a/plugins/2018.3326/iphone/libAPDGoogleAdMobAdapter.a b/plugins/2018.3326/iphone/libAPDGoogleAdMobAdapter.a
old mode 100755
new mode 100644
index 98b3317..5351c5d
Binary files a/plugins/2018.3326/iphone/libAPDGoogleAdMobAdapter.a and b/plugins/2018.3326/iphone/libAPDGoogleAdMobAdapter.a differ
diff --git a/plugins/2018.3326/iphone/metadata.lua b/plugins/2018.3326/iphone/metadata.lua
index 5cb489a..64b544d 100644
--- a/plugins/2018.3326/iphone/metadata.lua
+++ b/plugins/2018.3326/iphone/metadata.lua
@@ -4,7 +4,7 @@ local metadata =
{
format = 'staticLibrary',
staticLibs = { 'APDGoogleAdMobAdapter', },
- frameworks = { 'GoogleAppMeasurement', 'GoogleMobileAds', 'UserMessagingPlatform', 'FBLPromises', 'GoogleUtilities', 'nanopb', },
+ frameworks = { 'GoogleAppMeasurement', 'GoogleAppMeasurementIdentitySupport', 'GoogleMobileAds', 'FBLPromises', 'GoogleUtilities', 'nanopb', },
frameworksOptional = {},
},
}
diff --git a/plugins/2018.3326/iphone/resources/Frameworks/FBLPromises.framework/FBLPromises b/plugins/2018.3326/iphone/resources/Frameworks/FBLPromises.framework/FBLPromises
index a018180..e38cef5 100755
Binary files a/plugins/2018.3326/iphone/resources/Frameworks/FBLPromises.framework/FBLPromises and b/plugins/2018.3326/iphone/resources/Frameworks/FBLPromises.framework/FBLPromises differ
diff --git a/plugins/2018.3326/iphone/resources/Frameworks/FBLPromises.framework/Info.plist b/plugins/2018.3326/iphone/resources/Frameworks/FBLPromises.framework/Info.plist
index 0576984..7bb2cdf 100644
Binary files a/plugins/2018.3326/iphone/resources/Frameworks/FBLPromises.framework/Info.plist and b/plugins/2018.3326/iphone/resources/Frameworks/FBLPromises.framework/Info.plist differ
diff --git a/plugins/2018.3326/iphone/resources/Frameworks/GoogleUtilities.framework/GoogleUtilities b/plugins/2018.3326/iphone/resources/Frameworks/GoogleUtilities.framework/GoogleUtilities
index 121c56d..b5f870f 100755
Binary files a/plugins/2018.3326/iphone/resources/Frameworks/GoogleUtilities.framework/GoogleUtilities and b/plugins/2018.3326/iphone/resources/Frameworks/GoogleUtilities.framework/GoogleUtilities differ
diff --git a/plugins/2018.3326/iphone/resources/Frameworks/GoogleUtilities.framework/Info.plist b/plugins/2018.3326/iphone/resources/Frameworks/GoogleUtilities.framework/Info.plist
index a93c5d4..39e874b 100644
Binary files a/plugins/2018.3326/iphone/resources/Frameworks/GoogleUtilities.framework/Info.plist and b/plugins/2018.3326/iphone/resources/Frameworks/GoogleUtilities.framework/Info.plist differ
diff --git a/plugins/2018.3326/iphone/resources/Frameworks/nanopb.framework/Info.plist b/plugins/2018.3326/iphone/resources/Frameworks/nanopb.framework/Info.plist
index acd1d58..dce4d1c 100644
Binary files a/plugins/2018.3326/iphone/resources/Frameworks/nanopb.framework/Info.plist and b/plugins/2018.3326/iphone/resources/Frameworks/nanopb.framework/Info.plist differ
diff --git a/plugins/2018.3326/iphone/resources/Frameworks/nanopb.framework/nanopb b/plugins/2018.3326/iphone/resources/Frameworks/nanopb.framework/nanopb
index c8f7a8f..18c78b3 100755
Binary files a/plugins/2018.3326/iphone/resources/Frameworks/nanopb.framework/nanopb and b/plugins/2018.3326/iphone/resources/Frameworks/nanopb.framework/nanopb differ
diff --git a/plugins/2018.3326/universal/FBLPromises.framework/FBLPromises b/plugins/2018.3326/universal/FBLPromises.framework/FBLPromises
new file mode 100755
index 0000000..144276b
Binary files /dev/null and b/plugins/2018.3326/universal/FBLPromises.framework/FBLPromises differ
diff --git a/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+All.h b/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+All.h
new file mode 100644
index 0000000..9c0090e
--- /dev/null
+++ b/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+All.h
@@ -0,0 +1,63 @@
+/**
+ Copyright 2018 Google Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at:
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ */
+
+#import "FBLPromise.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface FBLPromise(AllAdditions)
+
+/**
+ Wait until all of the given promises are fulfilled.
+ If one of the given promises is rejected, then the returned promise is rejected with same error.
+ If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`,
+ it's implicitly considered a pre-fulfilled or pre-rejected `FBLPromise` correspondingly.
+ Promises resolved with `nil` become `NSNull` instances in the resulting array.
+
+ @param promises Promises to wait for.
+ @return Promise of an array containing the values of input promises in the same order.
+ */
++ (FBLPromise *)all:(NSArray *)promises NS_SWIFT_UNAVAILABLE("");
+
+/**
+ Wait until all of the given promises are fulfilled.
+ If one of the given promises is rejected, then the returned promise is rejected with same error.
+ If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`,
+ it's implicitly considered a pre-fulfilled or pre-rejected FBLPromise correspondingly.
+ Promises resolved with `nil` become `NSNull` instances in the resulting array.
+
+ @param queue A queue to dispatch on.
+ @param promises Promises to wait for.
+ @return Promise of an array containing the values of input promises in the same order.
+ */
++ (FBLPromise *)onQueue:(dispatch_queue_t)queue
+ all:(NSArray *)promises NS_REFINED_FOR_SWIFT;
+
+@end
+
+/**
+ Convenience dot-syntax wrappers for `FBLPromise` `all` operators.
+ Usage: FBLPromise.all(@[ ... ])
+ */
+@interface FBLPromise(DotSyntax_AllAdditions)
+
++ (FBLPromise * (^)(NSArray *))all FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
++ (FBLPromise * (^)(dispatch_queue_t, NSArray *))allOn FBL_PROMISES_DOT_SYNTAX
+ NS_SWIFT_UNAVAILABLE("");
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Always.h b/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Always.h
new file mode 100644
index 0000000..13000f5
--- /dev/null
+++ b/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Always.h
@@ -0,0 +1,54 @@
+/**
+ Copyright 2018 Google Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at:
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ */
+
+#import "FBLPromise.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface FBLPromise(AlwaysAdditions)
+
+typedef void (^FBLPromiseAlwaysWorkBlock)(void) NS_SWIFT_UNAVAILABLE("");
+
+/**
+ @param work A block that always executes, no matter if the receiver is rejected or fulfilled.
+ @return A new pending promise to be resolved with same resolution as the receiver.
+ */
+- (FBLPromise *)always:(FBLPromiseAlwaysWorkBlock)work NS_SWIFT_UNAVAILABLE("");
+
+/**
+ @param queue A queue to dispatch on.
+ @param work A block that always executes, no matter if the receiver is rejected or fulfilled.
+ @return A new pending promise to be resolved with same resolution as the receiver.
+ */
+- (FBLPromise *)onQueue:(dispatch_queue_t)queue
+ always:(FBLPromiseAlwaysWorkBlock)work NS_REFINED_FOR_SWIFT;
+
+@end
+
+/**
+ Convenience dot-syntax wrappers for `FBLPromise` `always` operators.
+ Usage: promise.always(^{...})
+ */
+@interface FBLPromise(DotSyntax_AlwaysAdditions)
+
+- (FBLPromise* (^)(FBLPromiseAlwaysWorkBlock))always FBL_PROMISES_DOT_SYNTAX
+ NS_SWIFT_UNAVAILABLE("");
+- (FBLPromise* (^)(dispatch_queue_t, FBLPromiseAlwaysWorkBlock))alwaysOn FBL_PROMISES_DOT_SYNTAX
+ NS_SWIFT_UNAVAILABLE("");
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Any.h b/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Any.h
new file mode 100644
index 0000000..82875bf
--- /dev/null
+++ b/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Any.h
@@ -0,0 +1,69 @@
+/**
+ Copyright 2018 Google Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at:
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ */
+
+#import "FBLPromise.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface FBLPromise(AnyAdditions)
+
+/**
+ Waits until all of the given promises are either fulfilled or rejected.
+ If all promises are rejected, then the returned promise is rejected with same error
+ as the last one rejected.
+ If at least one of the promises is fulfilled, the resulting promise is fulfilled with an array of
+ values or `NSErrors`, matching the original order of fulfilled or rejected promises respectively.
+ If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`,
+ it's implicitly considered a pre-fulfilled or pre-rejected `FBLPromise` correspondingly.
+ Promises resolved with `nil` become `NSNull` instances in the resulting array.
+
+ @param promises Promises to wait for.
+ @return Promise of array containing the values or `NSError`s of input promises in the same order.
+ */
++ (FBLPromise *)any:(NSArray *)promises NS_SWIFT_UNAVAILABLE("");
+
+/**
+ Waits until all of the given promises are either fulfilled or rejected.
+ If all promises are rejected, then the returned promise is rejected with same error
+ as the last one rejected.
+ If at least one of the promises is fulfilled, the resulting promise is fulfilled with an array of
+ values or `NSError`s, matching the original order of fulfilled or rejected promises respectively.
+ If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`,
+ it's implicitly considered a pre-fulfilled or pre-rejected `FBLPromise` correspondingly.
+ Promises resolved with `nil` become `NSNull` instances in the resulting array.
+
+ @param queue A queue to dispatch on.
+ @param promises Promises to wait for.
+ @return Promise of array containing the values or `NSError`s of input promises in the same order.
+ */
++ (FBLPromise *)onQueue:(dispatch_queue_t)queue
+ any:(NSArray *)promises NS_REFINED_FOR_SWIFT;
+
+@end
+
+/**
+ Convenience dot-syntax wrappers for `FBLPromise` `any` operators.
+ Usage: FBLPromise.any(@[ ... ])
+ */
+@interface FBLPromise(DotSyntax_AnyAdditions)
+
++ (FBLPromise * (^)(NSArray *))any FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
++ (FBLPromise * (^)(dispatch_queue_t, NSArray *))anyOn FBL_PROMISES_DOT_SYNTAX
+ NS_SWIFT_UNAVAILABLE("");
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Async.h b/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Async.h
new file mode 100644
index 0000000..0588a9e
--- /dev/null
+++ b/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Async.h
@@ -0,0 +1,60 @@
+/**
+ Copyright 2018 Google Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at:
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ */
+
+#import "FBLPromise.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface FBLPromise(AsyncAdditions)
+
+typedef void (^FBLPromiseFulfillBlock)(Value __nullable value) NS_SWIFT_UNAVAILABLE("");
+typedef void (^FBLPromiseRejectBlock)(NSError *error) NS_SWIFT_UNAVAILABLE("");
+typedef void (^FBLPromiseAsyncWorkBlock)(FBLPromiseFulfillBlock fulfill,
+ FBLPromiseRejectBlock reject) NS_SWIFT_UNAVAILABLE("");
+
+/**
+ Creates a pending promise and executes `work` block asynchronously.
+
+ @param work A block to perform any operations needed to resolve the promise.
+ @return A new pending promise.
+ */
++ (instancetype)async:(FBLPromiseAsyncWorkBlock)work NS_SWIFT_UNAVAILABLE("");
+
+/**
+ Creates a pending promise and executes `work` block asynchronously on the given queue.
+
+ @param queue A queue to invoke the `work` block on.
+ @param work A block to perform any operations needed to resolve the promise.
+ @return A new pending promise.
+ */
++ (instancetype)onQueue:(dispatch_queue_t)queue
+ async:(FBLPromiseAsyncWorkBlock)work NS_REFINED_FOR_SWIFT;
+
+@end
+
+/**
+ Convenience dot-syntax wrappers for `FBLPromise` `async` operators.
+ Usage: FBLPromise.async(^(FBLPromiseFulfillBlock fulfill, FBLPromiseRejectBlock reject) { ... })
+ */
+@interface FBLPromise(DotSyntax_AsyncAdditions)
+
++ (FBLPromise* (^)(FBLPromiseAsyncWorkBlock))async FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
++ (FBLPromise* (^)(dispatch_queue_t, FBLPromiseAsyncWorkBlock))asyncOn FBL_PROMISES_DOT_SYNTAX
+ NS_SWIFT_UNAVAILABLE("");
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Await.h b/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Await.h
new file mode 100644
index 0000000..c97a1ba
--- /dev/null
+++ b/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Await.h
@@ -0,0 +1,32 @@
+/**
+ Copyright 2018 Google Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at:
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ */
+
+#import "FBLPromise.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ Waits for promise resolution. The current thread blocks until the promise is resolved.
+
+ @param promise Promise to wait for.
+ @param error Error the promise was rejected with, or `nil` if the promise was fulfilled.
+ @return Value the promise was fulfilled with. If the promise was rejected, the return value
+ is always `nil`, but the error out arg is not.
+ */
+FOUNDATION_EXTERN id __nullable FBLPromiseAwait(FBLPromise *promise,
+ NSError **error) NS_REFINED_FOR_SWIFT;
+
+NS_ASSUME_NONNULL_END
diff --git a/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Catch.h b/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Catch.h
new file mode 100644
index 0000000..a9ff170
--- /dev/null
+++ b/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Catch.h
@@ -0,0 +1,59 @@
+/**
+ Copyright 2018 Google Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at:
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ */
+
+#import "FBLPromise.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface FBLPromise(CatchAdditions)
+
+typedef void (^FBLPromiseCatchWorkBlock)(NSError *error) NS_SWIFT_UNAVAILABLE("");
+
+/**
+ Creates a pending promise which eventually gets resolved with same resolution as the receiver.
+ If receiver is rejected, then `reject` block is executed asynchronously.
+
+ @param reject A block to handle the error that receiver was rejected with.
+ @return A new pending promise.
+ */
+- (FBLPromise *)catch:(FBLPromiseCatchWorkBlock)reject NS_SWIFT_UNAVAILABLE("");
+
+/**
+ Creates a pending promise which eventually gets resolved with same resolution as the receiver.
+ If receiver is rejected, then `reject` block is executed asynchronously on the given queue.
+
+ @param queue A queue to invoke the `reject` block on.
+ @param reject A block to handle the error that receiver was rejected with.
+ @return A new pending promise.
+ */
+- (FBLPromise *)onQueue:(dispatch_queue_t)queue
+ catch:(FBLPromiseCatchWorkBlock)reject NS_REFINED_FOR_SWIFT;
+
+@end
+
+/**
+ Convenience dot-syntax wrappers for `FBLPromise` `catch` operators.
+ Usage: promise.catch(^(NSError *error) { ... })
+ */
+@interface FBLPromise(DotSyntax_CatchAdditions)
+
+- (FBLPromise* (^)(FBLPromiseCatchWorkBlock))catch FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
+- (FBLPromise* (^)(dispatch_queue_t, FBLPromiseCatchWorkBlock))catchOn FBL_PROMISES_DOT_SYNTAX
+ NS_SWIFT_UNAVAILABLE("");
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Delay.h b/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Delay.h
new file mode 100644
index 0000000..557df48
--- /dev/null
+++ b/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Delay.h
@@ -0,0 +1,59 @@
+/**
+ Copyright 2018 Google Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at:
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ */
+
+#import "FBLPromise.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface FBLPromise(DelayAdditions)
+
+/**
+ Creates a new pending promise that fulfills with the same value as `self` after the `delay`, or
+ rejects with the same error immediately.
+
+ @param interval Time to wait in seconds.
+ @return A new pending promise that fulfills at least `delay` seconds later than `self`, or rejects
+ with the same error immediately.
+ */
+- (FBLPromise *)delay:(NSTimeInterval)interval NS_SWIFT_UNAVAILABLE("");
+
+/**
+ Creates a new pending promise that fulfills with the same value as `self` after the `delay`, or
+ rejects with the same error immediately.
+
+ @param queue A queue to dispatch on.
+ @param interval Time to wait in seconds.
+ @return A new pending promise that fulfills at least `delay` seconds later than `self`, or rejects
+ with the same error immediately.
+ */
+- (FBLPromise *)onQueue:(dispatch_queue_t)queue
+ delay:(NSTimeInterval)interval NS_REFINED_FOR_SWIFT;
+
+@end
+
+/**
+ Convenience dot-syntax wrappers for `FBLPromise` `delay` operators.
+ Usage: promise.delay(...)
+ */
+@interface FBLPromise(DotSyntax_DelayAdditions)
+
+- (FBLPromise * (^)(NSTimeInterval))delay FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
+- (FBLPromise * (^)(dispatch_queue_t, NSTimeInterval))delayOn FBL_PROMISES_DOT_SYNTAX
+ NS_SWIFT_UNAVAILABLE("");
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Do.h b/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Do.h
new file mode 100644
index 0000000..6838e0a
--- /dev/null
+++ b/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Do.h
@@ -0,0 +1,55 @@
+/**
+ Copyright 2018 Google Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at:
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ */
+
+#import "FBLPromise.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface FBLPromise(DoAdditions)
+
+typedef id __nullable (^FBLPromiseDoWorkBlock)(void) NS_SWIFT_UNAVAILABLE("");
+
+/**
+ Creates a pending promise and executes `work` block asynchronously.
+
+ @param work A block that returns a value or an error used to resolve the promise.
+ @return A new pending promise.
+ */
++ (instancetype)do:(FBLPromiseDoWorkBlock)work NS_SWIFT_UNAVAILABLE("");
+
+/**
+ Creates a pending promise and executes `work` block asynchronously on the given queue.
+
+ @param queue A queue to invoke the `work` block on.
+ @param work A block that returns a value or an error used to resolve the promise.
+ @return A new pending promise.
+ */
++ (instancetype)onQueue:(dispatch_queue_t)queue do:(FBLPromiseDoWorkBlock)work NS_REFINED_FOR_SWIFT;
+
+@end
+
+/**
+ Convenience dot-syntax wrappers for `FBLPromise` `do` operators.
+ Usage: FBLPromise.doOn(queue, ^(NSError *error) { ... })
+ */
+@interface FBLPromise(DotSyntax_DoAdditions)
+
++ (FBLPromise * (^)(dispatch_queue_t, FBLPromiseDoWorkBlock))doOn FBL_PROMISES_DOT_SYNTAX
+ NS_SWIFT_UNAVAILABLE("");
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Race.h b/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Race.h
new file mode 100644
index 0000000..2f67258
--- /dev/null
+++ b/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Race.h
@@ -0,0 +1,62 @@
+/**
+ Copyright 2018 Google Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at:
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ */
+
+#import "FBLPromise.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface FBLPromise(RaceAdditions)
+
+/**
+ Wait until any of the given promises are fulfilled.
+ If one of the promises is rejected, then the returned promise is rejected with same error.
+ If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`,
+ it's implicitly considered a pre-fulfilled or pre-rejected `FBLPromise` correspondingly.
+
+ @param promises Promises to wait for.
+ @return A new pending promise to be resolved with the same resolution as the first promise, among
+ the given ones, which was resolved.
+ */
++ (instancetype)race:(NSArray *)promises NS_SWIFT_UNAVAILABLE("");
+
+/**
+ Wait until any of the given promises are fulfilled.
+ If one of the promises is rejected, then the returned promise is rejected with same error.
+ If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`,
+ it's implicitly considered a pre-fulfilled or pre-rejected `FBLPromise` correspondingly.
+
+ @param queue A queue to dispatch on.
+ @param promises Promises to wait for.
+ @return A new pending promise to be resolved with the same resolution as the first promise, among
+ the given ones, which was resolved.
+ */
++ (instancetype)onQueue:(dispatch_queue_t)queue race:(NSArray *)promises NS_REFINED_FOR_SWIFT;
+
+@end
+
+/**
+ Convenience dot-syntax wrappers for `FBLPromise` `race` operators.
+ Usage: FBLPromise.race(@[ ... ])
+ */
+@interface FBLPromise(DotSyntax_RaceAdditions)
+
++ (FBLPromise * (^)(NSArray *))race FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
++ (FBLPromise * (^)(dispatch_queue_t, NSArray *))raceOn FBL_PROMISES_DOT_SYNTAX
+ NS_SWIFT_UNAVAILABLE("");
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Recover.h b/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Recover.h
new file mode 100644
index 0000000..bb7df7e
--- /dev/null
+++ b/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Recover.h
@@ -0,0 +1,60 @@
+/**
+ Copyright 2018 Google Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at:
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ */
+
+#import "FBLPromise.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface FBLPromise(RecoverAdditions)
+
+typedef id __nullable (^FBLPromiseRecoverWorkBlock)(NSError *error) NS_SWIFT_UNAVAILABLE("");
+
+/**
+ Provides a new promise to recover in case the receiver gets rejected.
+
+ @param recovery A block to handle the error that the receiver was rejected with.
+ @return A new pending promise to use instead of the rejected one that gets resolved with resolution
+ returned from `recovery` block.
+ */
+- (FBLPromise *)recover:(FBLPromiseRecoverWorkBlock)recovery NS_SWIFT_UNAVAILABLE("");
+
+/**
+ Provides a new promise to recover in case the receiver gets rejected.
+
+ @param queue A queue to dispatch on.
+ @param recovery A block to handle the error that the receiver was rejected with.
+ @return A new pending promise to use instead of the rejected one that gets resolved with resolution
+ returned from `recovery` block.
+ */
+- (FBLPromise *)onQueue:(dispatch_queue_t)queue
+ recover:(FBLPromiseRecoverWorkBlock)recovery NS_REFINED_FOR_SWIFT;
+
+@end
+
+/**
+ Convenience dot-syntax wrappers for `FBLPromise` `recover` operators.
+ Usage: promise.recover(^id(NSError *error) {...})
+ */
+@interface FBLPromise(DotSyntax_RecoverAdditions)
+
+- (FBLPromise * (^)(FBLPromiseRecoverWorkBlock))recover FBL_PROMISES_DOT_SYNTAX
+ NS_SWIFT_UNAVAILABLE("");
+- (FBLPromise * (^)(dispatch_queue_t, FBLPromiseRecoverWorkBlock))recoverOn FBL_PROMISES_DOT_SYNTAX
+ NS_SWIFT_UNAVAILABLE("");
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Reduce.h b/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Reduce.h
new file mode 100644
index 0000000..5bb1eee
--- /dev/null
+++ b/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Reduce.h
@@ -0,0 +1,71 @@
+/**
+ Copyright 2018 Google Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at:
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ */
+
+#import "FBLPromise.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface FBLPromise(ReduceAdditions)
+
+typedef id __nullable (^FBLPromiseReducerBlock)(Value __nullable partial, id next)
+ NS_SWIFT_UNAVAILABLE("");
+
+/**
+ Sequentially reduces a collection of values to a single promise using a given combining block
+ and the value `self` resolves with as initial value.
+
+ @param items An array of values to process in order.
+ @param reducer A block to combine an accumulating value and an element of the sequence into
+ the new accumulating value or a promise resolved with it, to be used in the next
+ call of the `reducer` or returned to the caller.
+ @return A new pending promise returned from the last `reducer` invocation.
+ Or `self` if `items` is empty.
+ */
+- (FBLPromise *)reduce:(NSArray *)items
+ combine:(FBLPromiseReducerBlock)reducer NS_SWIFT_UNAVAILABLE("");
+
+/**
+ Sequentially reduces a collection of values to a single promise using a given combining block
+ and the value `self` resolves with as initial value.
+
+ @param queue A queue to dispatch on.
+ @param items An array of values to process in order.
+ @param reducer A block to combine an accumulating value and an element of the sequence into
+ the new accumulating value or a promise resolved with it, to be used in the next
+ call of the `reducer` or returned to the caller.
+ @return A new pending promise returned from the last `reducer` invocation.
+ Or `self` if `items` is empty.
+ */
+- (FBLPromise *)onQueue:(dispatch_queue_t)queue
+ reduce:(NSArray *)items
+ combine:(FBLPromiseReducerBlock)reducer NS_SWIFT_UNAVAILABLE("");
+
+@end
+
+/**
+ Convenience dot-syntax wrappers for `FBLPromise` `reduce` operators.
+ Usage: promise.reduce(values, ^id(id partial, id next) { ... })
+ */
+@interface FBLPromise(DotSyntax_ReduceAdditions)
+
+- (FBLPromise * (^)(NSArray *, FBLPromiseReducerBlock))reduce FBL_PROMISES_DOT_SYNTAX
+ NS_SWIFT_UNAVAILABLE("");
+- (FBLPromise * (^)(dispatch_queue_t, NSArray *, FBLPromiseReducerBlock))reduceOn
+ FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Retry.h b/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Retry.h
new file mode 100644
index 0000000..98ef558
--- /dev/null
+++ b/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Retry.h
@@ -0,0 +1,165 @@
+/**
+ Copyright 2018 Google Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at:
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ */
+
+#import "FBLPromise.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/** The default number of retry attempts is 1. */
+FOUNDATION_EXTERN NSInteger const FBLPromiseRetryDefaultAttemptsCount NS_REFINED_FOR_SWIFT;
+
+/** The default delay interval before making a retry attempt is 1.0 second. */
+FOUNDATION_EXTERN NSTimeInterval const FBLPromiseRetryDefaultDelayInterval NS_REFINED_FOR_SWIFT;
+
+@interface FBLPromise(RetryAdditions)
+
+typedef id __nullable (^FBLPromiseRetryWorkBlock)(void) NS_SWIFT_UNAVAILABLE("");
+typedef BOOL (^FBLPromiseRetryPredicateBlock)(NSInteger, NSError *) NS_SWIFT_UNAVAILABLE("");
+
+/**
+ Creates a pending promise that fulfills with the same value as the promise returned from `work`
+ block, which executes asynchronously, or rejects with the same error after all retry attempts have
+ been exhausted. Defaults to `FBLPromiseRetryDefaultAttemptsCount` attempt(s) on rejection where the
+ `work` block is retried after a delay of `FBLPromiseRetryDefaultDelayInterval` second(s).
+
+ @param work A block that executes asynchronously on the default queue and returns a value or an
+ error used to resolve the promise.
+ @return A new pending promise that fulfills with the same value as the promise returned from `work`
+ block, or rejects with the same error after all retry attempts have been exhausted.
+ */
++ (FBLPromise *)retry:(FBLPromiseRetryWorkBlock)work NS_SWIFT_UNAVAILABLE("");
+
+/**
+ Creates a pending promise that fulfills with the same value as the promise returned from `work`
+ block, which executes asynchronously on the given `queue`, or rejects with the same error after all
+ retry attempts have been exhausted. Defaults to `FBLPromiseRetryDefaultAttemptsCount` attempt(s) on
+ rejection where the `work` block is retried on the given `queue` after a delay of
+ `FBLPromiseRetryDefaultDelayInterval` second(s).
+
+ @param queue A queue to invoke the `work` block on.
+ @param work A block that executes asynchronously on the given `queue` and returns a value or an
+ error used to resolve the promise.
+ @return A new pending promise that fulfills with the same value as the promise returned from `work`
+ block, or rejects with the same error after all retry attempts have been exhausted.
+ */
++ (FBLPromise *)onQueue:(dispatch_queue_t)queue
+ retry:(FBLPromiseRetryWorkBlock)work NS_SWIFT_UNAVAILABLE("");
+
+/**
+ Creates a pending promise that fulfills with the same value as the promise returned from `work`
+ block, which executes asynchronously, or rejects with the same error after all retry attempts have
+ been exhausted.
+
+ @param count Max number of retry attempts. The `work` block will be executed once if the specified
+ count is less than or equal to zero.
+ @param work A block that executes asynchronously on the default queue and returns a value or an
+ error used to resolve the promise.
+ @return A new pending promise that fulfills with the same value as the promise returned from `work`
+ block, or rejects with the same error after all retry attempts have been exhausted.
+ */
++ (FBLPromise *)attempts:(NSInteger)count
+ retry:(FBLPromiseRetryWorkBlock)work NS_SWIFT_UNAVAILABLE("");
+
+/**
+ Creates a pending promise that fulfills with the same value as the promise returned from `work`
+ block, which executes asynchronously on the given `queue`, or rejects with the same error after all
+ retry attempts have been exhausted.
+
+ @param queue A queue to invoke the `work` block on.
+ @param count Max number of retry attempts. The `work` block will be executed once if the specified
+ count is less than or equal to zero.
+ @param work A block that executes asynchronously on the given `queue` and returns a value or an
+ error used to resolve the promise.
+ @return A new pending promise that fulfills with the same value as the promise returned from `work`
+ block, or rejects with the same error after all retry attempts have been exhausted.
+ */
++ (FBLPromise *)onQueue:(dispatch_queue_t)queue
+ attempts:(NSInteger)count
+ retry:(FBLPromiseRetryWorkBlock)work NS_SWIFT_UNAVAILABLE("");
+
+/**
+ Creates a pending promise that fulfills with the same value as the promise returned from `work`
+ block, which executes asynchronously, or rejects with the same error after all retry attempts have
+ been exhausted. On rejection, the `work` block is retried after the given delay `interval` and will
+ continue to retry until the number of specified attempts have been exhausted or will bail early if
+ the given condition is not met.
+
+ @param count Max number of retry attempts. The `work` block will be executed once if the specified
+ count is less than or equal to zero.
+ @param interval Time to wait before the next retry attempt.
+ @param predicate Condition to check before the next retry attempt. The predicate block provides the
+ the number of remaining retry attempts and the error that the promise was rejected
+ with.
+ @param work A block that executes asynchronously on the default queue and returns a value or an
+ error used to resolve the promise.
+ @return A new pending promise that fulfills with the same value as the promise returned from `work`
+ block, or rejects with the same error after all retry attempts have been exhausted or if
+ the given condition is not met.
+ */
++ (FBLPromise *)attempts:(NSInteger)count
+ delay:(NSTimeInterval)interval
+ condition:(nullable FBLPromiseRetryPredicateBlock)predicate
+ retry:(FBLPromiseRetryWorkBlock)work NS_SWIFT_UNAVAILABLE("");
+
+/**
+ Creates a pending promise that fulfills with the same value as the promise returned from `work`
+ block, which executes asynchronously on the given `queue`, or rejects with the same error after all
+ retry attempts have been exhausted. On rejection, the `work` block is retried after the given
+ delay `interval` and will continue to retry until the number of specified attempts have been
+ exhausted or will bail early if the given condition is not met.
+
+ @param queue A queue to invoke the `work` block on.
+ @param count Max number of retry attempts. The `work` block will be executed once if the specified
+ count is less than or equal to zero.
+ @param interval Time to wait before the next retry attempt.
+ @param predicate Condition to check before the next retry attempt. The predicate block provides the
+ the number of remaining retry attempts and the error that the promise was rejected
+ with.
+ @param work A block that executes asynchronously on the given `queue` and returns a value or an
+ error used to resolve the promise.
+ @return A new pending promise that fulfills with the same value as the promise returned from `work`
+ block, or rejects with the same error after all retry attempts have been exhausted or if
+ the given condition is not met.
+ */
++ (FBLPromise *)onQueue:(dispatch_queue_t)queue
+ attempts:(NSInteger)count
+ delay:(NSTimeInterval)interval
+ condition:(nullable FBLPromiseRetryPredicateBlock)predicate
+ retry:(FBLPromiseRetryWorkBlock)work NS_REFINED_FOR_SWIFT;
+
+@end
+
+/**
+ Convenience dot-syntax wrappers for `FBLPromise+Retry` operators.
+ Usage: FBLPromise.retry(^id { ... })
+ */
+@interface FBLPromise(DotSyntax_RetryAdditions)
+
++ (FBLPromise * (^)(FBLPromiseRetryWorkBlock))retry FBL_PROMISES_DOT_SYNTAX
+ NS_SWIFT_UNAVAILABLE("");
++ (FBLPromise * (^)(dispatch_queue_t, FBLPromiseRetryWorkBlock))retryOn FBL_PROMISES_DOT_SYNTAX
+ NS_SWIFT_UNAVAILABLE("");
++ (FBLPromise * (^)(NSInteger, NSTimeInterval, FBLPromiseRetryPredicateBlock __nullable,
+ FBLPromiseRetryWorkBlock))retryAgain FBL_PROMISES_DOT_SYNTAX
+ NS_SWIFT_UNAVAILABLE("");
++ (FBLPromise * (^)(dispatch_queue_t, NSInteger, NSTimeInterval,
+ FBLPromiseRetryPredicateBlock __nullable,
+ FBLPromiseRetryWorkBlock))retryAgainOn FBL_PROMISES_DOT_SYNTAX
+ NS_SWIFT_UNAVAILABLE("");
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Testing.h b/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Testing.h
new file mode 100644
index 0000000..8478ae2
--- /dev/null
+++ b/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Testing.h
@@ -0,0 +1,57 @@
+/**
+ Copyright 2018 Google Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at:
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ */
+
+#import "FBLPromise.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ Waits for all scheduled promises blocks.
+
+ @param timeout Maximum time to wait.
+ @return YES if all promises blocks have completed before the timeout and NO otherwise.
+ */
+FOUNDATION_EXTERN BOOL FBLWaitForPromisesWithTimeout(NSTimeInterval timeout) NS_REFINED_FOR_SWIFT;
+
+@interface FBLPromise(TestingAdditions)
+
+/**
+ Dispatch group for promises that is typically used to wait for all scheduled blocks.
+ */
+@property(class, nonatomic, readonly) dispatch_group_t dispatchGroup NS_REFINED_FOR_SWIFT;
+
+/**
+ Properties to get the current state of the promise.
+ */
+@property(nonatomic, readonly) BOOL isPending NS_REFINED_FOR_SWIFT;
+@property(nonatomic, readonly) BOOL isFulfilled NS_REFINED_FOR_SWIFT;
+@property(nonatomic, readonly) BOOL isRejected NS_REFINED_FOR_SWIFT;
+
+/**
+ Value the promise was fulfilled with.
+ Can be nil if the promise is still pending, was resolved with nil or after it has been rejected.
+ */
+@property(nonatomic, readonly, nullable) Value value NS_REFINED_FOR_SWIFT;
+
+/**
+ Error the promise was rejected with.
+ Can be nil if the promise is still pending or after it has been fulfilled.
+ */
+@property(nonatomic, readonly, nullable) NSError *error NS_REFINED_FOR_SWIFT;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Then.h b/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Then.h
new file mode 100644
index 0000000..32027e6
--- /dev/null
+++ b/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Then.h
@@ -0,0 +1,63 @@
+/**
+ Copyright 2018 Google Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at:
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ */
+
+#import "FBLPromise.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface FBLPromise(ThenAdditions)
+
+typedef id __nullable (^FBLPromiseThenWorkBlock)(Value __nullable value) NS_SWIFT_UNAVAILABLE("");
+
+/**
+ Creates a pending promise which eventually gets resolved with resolution returned from `work`
+ block: either value, error or another promise. The `work` block is executed asynchronously only
+ when the receiver is fulfilled. If receiver is rejected, the returned promise is also rejected with
+ the same error.
+
+ @param work A block to handle the value that receiver was fulfilled with.
+ @return A new pending promise to be resolved with resolution returned from the `work` block.
+ */
+- (FBLPromise *)then:(FBLPromiseThenWorkBlock)work NS_SWIFT_UNAVAILABLE("");
+
+/**
+ Creates a pending promise which eventually gets resolved with resolution returned from `work`
+ block: either value, error or another promise. The `work` block is executed asynchronously when the
+ receiver is fulfilled. If receiver is rejected, the returned promise is also rejected with the same
+ error.
+
+ @param queue A queue to invoke the `work` block on.
+ @param work A block to handle the value that receiver was fulfilled with.
+ @return A new pending promise to be resolved with resolution returned from the `work` block.
+ */
+- (FBLPromise *)onQueue:(dispatch_queue_t)queue
+ then:(FBLPromiseThenWorkBlock)work NS_REFINED_FOR_SWIFT;
+
+@end
+
+/**
+ Convenience dot-syntax wrappers for `FBLPromise` `then` operators.
+ Usage: promise.then(^id(id value) { ... })
+ */
+@interface FBLPromise(DotSyntax_ThenAdditions)
+
+- (FBLPromise* (^)(FBLPromiseThenWorkBlock))then FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
+- (FBLPromise* (^)(dispatch_queue_t, FBLPromiseThenWorkBlock))thenOn FBL_PROMISES_DOT_SYNTAX
+ NS_SWIFT_UNAVAILABLE("");
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Timeout.h b/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Timeout.h
new file mode 100644
index 0000000..184ba16
--- /dev/null
+++ b/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Timeout.h
@@ -0,0 +1,57 @@
+/**
+ Copyright 2018 Google Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at:
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ */
+
+#import "FBLPromise.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface FBLPromise(TimeoutAdditions)
+
+/**
+ Waits for a promise with the specified `timeout`.
+
+ @param interval Time to wait in seconds.
+ @return A new pending promise that gets either resolved with same resolution as the receiver or
+ rejected with `FBLPromiseErrorCodeTimedOut` error code in `FBLPromiseErrorDomain`.
+ */
+- (FBLPromise *)timeout:(NSTimeInterval)interval NS_SWIFT_UNAVAILABLE("");
+
+/**
+ Waits for a promise with the specified `timeout`.
+
+ @param queue A queue to dispatch on.
+ @param interval Time to wait in seconds.
+ @return A new pending promise that gets either resolved with same resolution as the receiver or
+ rejected with `FBLPromiseErrorCodeTimedOut` error code in `FBLPromiseErrorDomain`.
+ */
+- (FBLPromise *)onQueue:(dispatch_queue_t)queue
+ timeout:(NSTimeInterval)interval NS_REFINED_FOR_SWIFT;
+
+@end
+
+/**
+ Convenience dot-syntax wrappers for `FBLPromise` `timeout` operators.
+ Usage: promise.timeout(...)
+ */
+@interface FBLPromise(DotSyntax_TimeoutAdditions)
+
+- (FBLPromise* (^)(NSTimeInterval))timeout FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
+- (FBLPromise* (^)(dispatch_queue_t, NSTimeInterval))timeoutOn FBL_PROMISES_DOT_SYNTAX
+ NS_SWIFT_UNAVAILABLE("");
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Validate.h b/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Validate.h
new file mode 100644
index 0000000..9dfa2f1
--- /dev/null
+++ b/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Validate.h
@@ -0,0 +1,60 @@
+/**
+ Copyright 2018 Google Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at:
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ */
+
+#import "FBLPromise.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface FBLPromise(ValidateAdditions)
+
+typedef BOOL (^FBLPromiseValidateWorkBlock)(Value __nullable value) NS_SWIFT_UNAVAILABLE("");
+
+/**
+ Validates a fulfilled value or rejects the value if it can not be validated.
+
+ @param predicate An expression to validate.
+ @return A new pending promise that gets either resolved with same resolution as the receiver or
+ rejected with `FBLPromiseErrorCodeValidationFailure` error code in `FBLPromiseErrorDomain`.
+ */
+- (FBLPromise *)validate:(FBLPromiseValidateWorkBlock)predicate NS_SWIFT_UNAVAILABLE("");
+
+/**
+ Validates a fulfilled value or rejects the value if it can not be validated.
+
+ @param queue A queue to dispatch on.
+ @param predicate An expression to validate.
+ @return A new pending promise that gets either resolved with same resolution as the receiver or
+ rejected with `FBLPromiseErrorCodeValidationFailure` error code in `FBLPromiseErrorDomain`.
+ */
+- (FBLPromise *)onQueue:(dispatch_queue_t)queue
+ validate:(FBLPromiseValidateWorkBlock)predicate NS_REFINED_FOR_SWIFT;
+
+@end
+
+/**
+ Convenience dot-syntax wrappers for `FBLPromise` `validate` operators.
+ Usage: promise.validate(^BOOL(id value) { ... })
+ */
+@interface FBLPromise(DotSyntax_ValidateAdditions)
+
+- (FBLPromise * (^)(FBLPromiseValidateWorkBlock))validate FBL_PROMISES_DOT_SYNTAX
+ NS_SWIFT_UNAVAILABLE("");
+- (FBLPromise * (^)(dispatch_queue_t, FBLPromiseValidateWorkBlock))validateOn
+ FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Wrap.h b/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Wrap.h
new file mode 100644
index 0000000..664e1bb
--- /dev/null
+++ b/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise+Wrap.h
@@ -0,0 +1,316 @@
+/**
+ Copyright 2018 Google Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at:
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ */
+
+#import "FBLPromise.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ Different types of completion handlers available to be wrapped with promise.
+ */
+typedef void (^FBLPromiseCompletion)(void) NS_SWIFT_UNAVAILABLE("");
+typedef void (^FBLPromiseObjectCompletion)(id __nullable) NS_SWIFT_UNAVAILABLE("");
+typedef void (^FBLPromiseErrorCompletion)(NSError* __nullable) NS_SWIFT_UNAVAILABLE("");
+typedef void (^FBLPromiseObjectOrErrorCompletion)(id __nullable, NSError* __nullable)
+ NS_SWIFT_UNAVAILABLE("");
+typedef void (^FBLPromiseErrorOrObjectCompletion)(NSError* __nullable, id __nullable)
+ NS_SWIFT_UNAVAILABLE("");
+typedef void (^FBLPromise2ObjectsOrErrorCompletion)(id __nullable, id __nullable,
+ NSError* __nullable) NS_SWIFT_UNAVAILABLE("");
+typedef void (^FBLPromiseBoolCompletion)(BOOL) NS_SWIFT_UNAVAILABLE("");
+typedef void (^FBLPromiseBoolOrErrorCompletion)(BOOL, NSError* __nullable) NS_SWIFT_UNAVAILABLE("");
+typedef void (^FBLPromiseIntegerCompletion)(NSInteger) NS_SWIFT_UNAVAILABLE("");
+typedef void (^FBLPromiseIntegerOrErrorCompletion)(NSInteger, NSError* __nullable)
+ NS_SWIFT_UNAVAILABLE("");
+typedef void (^FBLPromiseDoubleCompletion)(double) NS_SWIFT_UNAVAILABLE("");
+typedef void (^FBLPromiseDoubleOrErrorCompletion)(double, NSError* __nullable)
+ NS_SWIFT_UNAVAILABLE("");
+
+/**
+ Provides an easy way to convert methods that use common callback patterns into promises.
+ */
+@interface FBLPromise(WrapAdditions)
+
+/**
+ @param work A block to perform any operations needed to resolve the promise.
+ @returns A promise that resolves with `nil` when completion handler is invoked.
+ */
++ (instancetype)wrapCompletion:(void (^)(FBLPromiseCompletion handler))work
+ NS_SWIFT_UNAVAILABLE("");
+
+/**
+ @param queue A queue to invoke the `work` block on.
+ @param work A block to perform any operations needed to resolve the promise.
+ @returns A promise that resolves with `nil` when completion handler is invoked.
+ */
++ (instancetype)onQueue:(dispatch_queue_t)queue
+ wrapCompletion:(void (^)(FBLPromiseCompletion handler))work NS_SWIFT_UNAVAILABLE("");
+
+/**
+ @param work A block to perform any operations needed to resolve the promise.
+ @returns A promise that resolves with an object provided by completion handler.
+ */
++ (instancetype)wrapObjectCompletion:(void (^)(FBLPromiseObjectCompletion handler))work
+ NS_SWIFT_UNAVAILABLE("");
+
+/**
+ @param queue A queue to invoke the `work` block on.
+ @param work A block to perform any operations needed to resolve the promise.
+ @returns A promise that resolves with an object provided by completion handler.
+ */
++ (instancetype)onQueue:(dispatch_queue_t)queue
+ wrapObjectCompletion:(void (^)(FBLPromiseObjectCompletion handler))work
+ NS_SWIFT_UNAVAILABLE("");
+
+/**
+ @param work A block to perform any operations needed to resolve the promise.
+ @returns A promise that resolves with an error provided by completion handler.
+ If error is `nil`, fulfills with `nil`, otherwise rejects with the error.
+ */
++ (instancetype)wrapErrorCompletion:(void (^)(FBLPromiseErrorCompletion handler))work
+ NS_SWIFT_UNAVAILABLE("");
+
+/**
+ @param queue A queue to invoke the `work` block on.
+ @param work A block to perform any operations needed to resolve the promise.
+ @returns A promise that resolves with an error provided by completion handler.
+ If error is `nil`, fulfills with `nil`, otherwise rejects with the error.
+ */
++ (instancetype)onQueue:(dispatch_queue_t)queue
+ wrapErrorCompletion:(void (^)(FBLPromiseErrorCompletion handler))work NS_SWIFT_UNAVAILABLE("");
+
+/**
+ @param work A block to perform any operations needed to resolve the promise.
+ @returns A promise that resolves with an object provided by completion handler if error is `nil`.
+ Otherwise, rejects with the error.
+ */
++ (instancetype)wrapObjectOrErrorCompletion:
+ (void (^)(FBLPromiseObjectOrErrorCompletion handler))work NS_SWIFT_UNAVAILABLE("");
+
+/**
+ @param queue A queue to invoke the `work` block on.
+ @param work A block to perform any operations needed to resolve the promise.
+ @returns A promise that resolves with an object provided by completion handler if error is `nil`.
+ Otherwise, rejects with the error.
+ */
++ (instancetype)onQueue:(dispatch_queue_t)queue
+ wrapObjectOrErrorCompletion:(void (^)(FBLPromiseObjectOrErrorCompletion handler))work
+ NS_SWIFT_UNAVAILABLE("");
+
+/**
+ @param work A block to perform any operations needed to resolve the promise.
+ @returns A promise that resolves with an error or object provided by completion handler. If error
+ is not `nil`, rejects with the error.
+ */
++ (instancetype)wrapErrorOrObjectCompletion:
+ (void (^)(FBLPromiseErrorOrObjectCompletion handler))work NS_SWIFT_UNAVAILABLE("");
+
+/**
+ @param queue A queue to invoke the `work` block on.
+ @param work A block to perform any operations needed to resolve the promise.
+ @returns A promise that resolves with an error or object provided by completion handler. If error
+ is not `nil`, rejects with the error.
+ */
++ (instancetype)onQueue:(dispatch_queue_t)queue
+ wrapErrorOrObjectCompletion:(void (^)(FBLPromiseErrorOrObjectCompletion handler))work
+ NS_SWIFT_UNAVAILABLE("");
+
+/**
+ @param work A block to perform any operations needed to resolve the promise.
+ @returns A promise that resolves with an array of objects provided by completion handler in order
+ if error is `nil`. Otherwise, rejects with the error.
+ */
++ (FBLPromise*)wrap2ObjectsOrErrorCompletion:
+ (void (^)(FBLPromise2ObjectsOrErrorCompletion handler))work NS_SWIFT_UNAVAILABLE("");
+
+/**
+ @param queue A queue to invoke the `work` block on.
+ @param work A block to perform any operations needed to resolve the promise.
+ @returns A promise that resolves with an array of objects provided by completion handler in order
+ if error is `nil`. Otherwise, rejects with the error.
+ */
++ (FBLPromise*)onQueue:(dispatch_queue_t)queue
+ wrap2ObjectsOrErrorCompletion:(void (^)(FBLPromise2ObjectsOrErrorCompletion handler))work
+ NS_SWIFT_UNAVAILABLE("");
+
+/**
+ @param work A block to perform any operations needed to resolve the promise.
+ @returns A promise that resolves with an `NSNumber` wrapping YES/NO.
+ */
++ (FBLPromise*)wrapBoolCompletion:(void (^)(FBLPromiseBoolCompletion handler))work
+ NS_SWIFT_UNAVAILABLE("");
+
+/**
+ @param queue A queue to invoke the `work` block on.
+ @param work A block to perform any operations needed to resolve the promise.
+ @returns A promise that resolves with an `NSNumber` wrapping YES/NO.
+ */
++ (FBLPromise*)onQueue:(dispatch_queue_t)queue
+ wrapBoolCompletion:(void (^)(FBLPromiseBoolCompletion handler))work
+ NS_SWIFT_UNAVAILABLE("");
+
+/**
+ @param work A block to perform any operations needed to resolve the promise.
+ @returns A promise that resolves with an `NSNumber` wrapping YES/NO when error is `nil`.
+ Otherwise rejects with the error.
+ */
++ (FBLPromise*)wrapBoolOrErrorCompletion:
+ (void (^)(FBLPromiseBoolOrErrorCompletion handler))work NS_SWIFT_UNAVAILABLE("");
+
+/**
+ @param queue A queue to invoke the `work` block on.
+ @param work A block to perform any operations needed to resolve the promise.
+ @returns A promise that resolves with an `NSNumber` wrapping YES/NO when error is `nil`.
+ Otherwise rejects with the error.
+ */
++ (FBLPromise*)onQueue:(dispatch_queue_t)queue
+ wrapBoolOrErrorCompletion:(void (^)(FBLPromiseBoolOrErrorCompletion handler))work
+ NS_SWIFT_UNAVAILABLE("");
+
+/**
+ @param work A block to perform any operations needed to resolve the promise.
+ @returns A promise that resolves with an `NSNumber` wrapping an integer.
+ */
++ (FBLPromise*)wrapIntegerCompletion:(void (^)(FBLPromiseIntegerCompletion handler))work
+ NS_SWIFT_UNAVAILABLE("");
+
+/**
+ @param queue A queue to invoke the `work` block on.
+ @param work A block to perform any operations needed to resolve the promise.
+ @returns A promise that resolves with an `NSNumber` wrapping an integer.
+ */
++ (FBLPromise*)onQueue:(dispatch_queue_t)queue
+ wrapIntegerCompletion:(void (^)(FBLPromiseIntegerCompletion handler))work
+ NS_SWIFT_UNAVAILABLE("");
+
+/**
+ @param work A block to perform any operations needed to resolve the promise.
+ @returns A promise that resolves with an `NSNumber` wrapping an integer when error is `nil`.
+ Otherwise rejects with the error.
+ */
++ (FBLPromise*)wrapIntegerOrErrorCompletion:
+ (void (^)(FBLPromiseIntegerOrErrorCompletion handler))work NS_SWIFT_UNAVAILABLE("");
+
+/**
+ @param queue A queue to invoke the `work` block on.
+ @param work A block to perform any operations needed to resolve the promise.
+ @returns A promise that resolves with an `NSNumber` wrapping an integer when error is `nil`.
+ Otherwise rejects with the error.
+ */
++ (FBLPromise*)onQueue:(dispatch_queue_t)queue
+ wrapIntegerOrErrorCompletion:(void (^)(FBLPromiseIntegerOrErrorCompletion handler))work
+ NS_SWIFT_UNAVAILABLE("");
+
+/**
+ @param work A block to perform any operations needed to resolve the promise.
+ @returns A promise that resolves with an `NSNumber` wrapping a double.
+ */
++ (FBLPromise*)wrapDoubleCompletion:(void (^)(FBLPromiseDoubleCompletion handler))work
+ NS_SWIFT_UNAVAILABLE("");
+
+/**
+ @param queue A queue to invoke the `work` block on.
+ @param work A block to perform any operations needed to resolve the promise.
+ @returns A promise that resolves with an `NSNumber` wrapping a double.
+ */
++ (FBLPromise*)onQueue:(dispatch_queue_t)queue
+ wrapDoubleCompletion:(void (^)(FBLPromiseDoubleCompletion handler))work
+ NS_SWIFT_UNAVAILABLE("");
+
+/**
+ @param work A block to perform any operations needed to resolve the promise.
+ @returns A promise that resolves with an `NSNumber` wrapping a double when error is `nil`.
+ Otherwise rejects with the error.
+ */
++ (FBLPromise*)wrapDoubleOrErrorCompletion:
+ (void (^)(FBLPromiseDoubleOrErrorCompletion handler))work NS_SWIFT_UNAVAILABLE("");
+
+/**
+ @param queue A queue to invoke the `work` block on.
+ @param work A block to perform any operations needed to resolve the promise.
+ @returns A promise that resolves with an `NSNumber` wrapping a double when error is `nil`.
+ Otherwise rejects with the error.
+ */
++ (FBLPromise*)onQueue:(dispatch_queue_t)queue
+ wrapDoubleOrErrorCompletion:(void (^)(FBLPromiseDoubleOrErrorCompletion handler))work
+ NS_SWIFT_UNAVAILABLE("");
+
+@end
+
+/**
+ Convenience dot-syntax wrappers for `FBLPromise` `wrap` operators.
+ Usage: FBLPromise.wrapCompletion(^(FBLPromiseCompletion handler) {...})
+ */
+@interface FBLPromise(DotSyntax_WrapAdditions)
+
++ (FBLPromise* (^)(void (^)(FBLPromiseCompletion)))wrapCompletion FBL_PROMISES_DOT_SYNTAX
+ NS_SWIFT_UNAVAILABLE("");
++ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromiseCompletion)))wrapCompletionOn
+ FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
++ (FBLPromise* (^)(void (^)(FBLPromiseObjectCompletion)))wrapObjectCompletion
+ FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
++ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromiseObjectCompletion)))wrapObjectCompletionOn
+ FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
++ (FBLPromise* (^)(void (^)(FBLPromiseErrorCompletion)))wrapErrorCompletion FBL_PROMISES_DOT_SYNTAX
+ NS_SWIFT_UNAVAILABLE("");
++ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromiseErrorCompletion)))wrapErrorCompletionOn
+ FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
++ (FBLPromise* (^)(void (^)(FBLPromiseObjectOrErrorCompletion)))wrapObjectOrErrorCompletion
+ FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
++ (FBLPromise* (^)(dispatch_queue_t,
+ void (^)(FBLPromiseObjectOrErrorCompletion)))wrapObjectOrErrorCompletionOn
+ FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
++ (FBLPromise* (^)(void (^)(FBLPromiseErrorOrObjectCompletion)))wrapErrorOrObjectCompletion
+ FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
++ (FBLPromise* (^)(dispatch_queue_t,
+ void (^)(FBLPromiseErrorOrObjectCompletion)))wrapErrorOrObjectCompletionOn
+ FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
++ (FBLPromise* (^)(void (^)(FBLPromise2ObjectsOrErrorCompletion)))
+ wrap2ObjectsOrErrorCompletion FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
++ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromise2ObjectsOrErrorCompletion)))
+ wrap2ObjectsOrErrorCompletionOn FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
++ (FBLPromise* (^)(void (^)(FBLPromiseBoolCompletion)))wrapBoolCompletion
+ FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
++ (FBLPromise* (^)(dispatch_queue_t,
+ void (^)(FBLPromiseBoolCompletion)))wrapBoolCompletionOn
+ FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
++ (FBLPromise* (^)(void (^)(FBLPromiseBoolOrErrorCompletion)))wrapBoolOrErrorCompletion
+ FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
++ (FBLPromise* (^)(dispatch_queue_t,
+ void (^)(FBLPromiseBoolOrErrorCompletion)))wrapBoolOrErrorCompletionOn
+ FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
++ (FBLPromise* (^)(void (^)(FBLPromiseIntegerCompletion)))wrapIntegerCompletion
+ FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
++ (FBLPromise* (^)(dispatch_queue_t,
+ void (^)(FBLPromiseIntegerCompletion)))wrapIntegerCompletionOn
+ FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
++ (FBLPromise* (^)(void (^)(FBLPromiseIntegerOrErrorCompletion)))
+ wrapIntegerOrErrorCompletion FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
++ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromiseIntegerOrErrorCompletion)))
+ wrapIntegerOrErrorCompletionOn FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
++ (FBLPromise* (^)(void (^)(FBLPromiseDoubleCompletion)))wrapDoubleCompletion
+ FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
++ (FBLPromise* (^)(dispatch_queue_t,
+ void (^)(FBLPromiseDoubleCompletion)))wrapDoubleCompletionOn
+ FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
++ (FBLPromise* (^)(void (^)(FBLPromiseDoubleOrErrorCompletion)))
+ wrapDoubleOrErrorCompletion FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
++ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromiseDoubleOrErrorCompletion)))
+ wrapDoubleOrErrorCompletionOn FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise.h b/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise.h
new file mode 100644
index 0000000..b1380dc
--- /dev/null
+++ b/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromise.h
@@ -0,0 +1,93 @@
+/**
+ Copyright 2018 Google Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at:
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ */
+
+#import "FBLPromiseError.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ Promises synchronization construct in Objective-C.
+ */
+@interface FBLPromise<__covariant Value> : NSObject
+
+/**
+ Default dispatch queue used for `FBLPromise`, which is `main` if a queue is not specified.
+ */
+@property(class) dispatch_queue_t defaultDispatchQueue NS_REFINED_FOR_SWIFT;
+
+/**
+ Creates a pending promise.
+ */
++ (instancetype)pendingPromise NS_REFINED_FOR_SWIFT;
+
+/**
+ Creates a resolved promise.
+
+ @param resolution An object to resolve the promise with: either a value or an error.
+ @return A new resolved promise.
+ */
++ (instancetype)resolvedWith:(nullable id)resolution NS_REFINED_FOR_SWIFT;
+
+/**
+ Synchronously fulfills the promise with a value.
+
+ @param value An arbitrary value to fulfill the promise with, including `nil`.
+ */
+- (void)fulfill:(nullable Value)value NS_REFINED_FOR_SWIFT;
+
+/**
+ Synchronously rejects the promise with an error.
+
+ @param error An error to reject the promise with.
+ */
+- (void)reject:(NSError *)error NS_REFINED_FOR_SWIFT;
+
++ (instancetype)new NS_UNAVAILABLE;
+- (instancetype)init NS_UNAVAILABLE;
+@end
+
+@interface FBLPromise()
+
+/**
+ Adds an object to the set of pending objects to keep strongly while the promise is pending.
+ Used by the Swift wrappers to keep them alive until the underlying ObjC promise is resolved.
+
+ @param object An object to add.
+ */
+- (void)addPendingObject:(id)object NS_REFINED_FOR_SWIFT;
+
+@end
+
+#ifdef FBL_PROMISES_DOT_SYNTAX_IS_DEPRECATED
+#define FBL_PROMISES_DOT_SYNTAX __attribute__((deprecated))
+#else
+#define FBL_PROMISES_DOT_SYNTAX
+#endif
+
+@interface FBLPromise(DotSyntaxAdditions)
+
+/**
+ Convenience dot-syntax wrappers for FBLPromise.
+ Usage: FBLPromise.pending()
+ FBLPromise.resolved(value)
+
+ */
++ (instancetype (^)(void))pending FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
++ (instancetype (^)(id __nullable))resolved FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromiseError.h b/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromiseError.h
new file mode 100644
index 0000000..d37af53
--- /dev/null
+++ b/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromiseError.h
@@ -0,0 +1,43 @@
+/**
+ Copyright 2018 Google Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at:
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ */
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+FOUNDATION_EXTERN NSErrorDomain const FBLPromiseErrorDomain NS_REFINED_FOR_SWIFT;
+
+/**
+ Possible error codes in `FBLPromiseErrorDomain`.
+ */
+typedef NS_ENUM(NSInteger, FBLPromiseErrorCode) {
+ /** Promise failed to resolve in time. */
+ FBLPromiseErrorCodeTimedOut = 1,
+ /** Validation predicate returned false. */
+ FBLPromiseErrorCodeValidationFailure = 2,
+} NS_REFINED_FOR_SWIFT;
+
+NS_INLINE BOOL FBLPromiseErrorIsTimedOut(NSError *error) NS_SWIFT_UNAVAILABLE("") {
+ return error.domain == FBLPromiseErrorDomain &&
+ error.code == FBLPromiseErrorCodeTimedOut;
+}
+
+NS_INLINE BOOL FBLPromiseErrorIsValidationFailure(NSError *error) NS_SWIFT_UNAVAILABLE("") {
+ return error.domain == FBLPromiseErrorDomain &&
+ error.code == FBLPromiseErrorCodeValidationFailure;
+}
+
+NS_ASSUME_NONNULL_END
diff --git a/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromises.h b/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromises.h
new file mode 100644
index 0000000..2d90bad
--- /dev/null
+++ b/plugins/2018.3326/universal/FBLPromises.framework/Headers/FBLPromises.h
@@ -0,0 +1,32 @@
+/**
+ Copyright 2018 Google Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at:
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ */
+
+#import "FBLPromise+All.h"
+#import "FBLPromise+Always.h"
+#import "FBLPromise+Any.h"
+#import "FBLPromise+Async.h"
+#import "FBLPromise+Await.h"
+#import "FBLPromise+Catch.h"
+#import "FBLPromise+Delay.h"
+#import "FBLPromise+Do.h"
+#import "FBLPromise+Race.h"
+#import "FBLPromise+Recover.h"
+#import "FBLPromise+Reduce.h"
+#import "FBLPromise+Retry.h"
+#import "FBLPromise+Then.h"
+#import "FBLPromise+Timeout.h"
+#import "FBLPromise+Validate.h"
+#import "FBLPromise+Wrap.h"
diff --git a/plugins/2018.3326/universal/FBLPromises.framework/Headers/PromisesObjC-umbrella.h b/plugins/2018.3326/universal/FBLPromises.framework/Headers/PromisesObjC-umbrella.h
new file mode 100644
index 0000000..5b014a8
--- /dev/null
+++ b/plugins/2018.3326/universal/FBLPromises.framework/Headers/PromisesObjC-umbrella.h
@@ -0,0 +1,36 @@
+#ifdef __OBJC__
+#import
+#else
+#ifndef FOUNDATION_EXPORT
+#if defined(__cplusplus)
+#define FOUNDATION_EXPORT extern "C"
+#else
+#define FOUNDATION_EXPORT extern
+#endif
+#endif
+#endif
+
+#import "FBLPromise+All.h"
+#import "FBLPromise+Always.h"
+#import "FBLPromise+Any.h"
+#import "FBLPromise+Async.h"
+#import "FBLPromise+Await.h"
+#import "FBLPromise+Catch.h"
+#import "FBLPromise+Delay.h"
+#import "FBLPromise+Do.h"
+#import "FBLPromise+Race.h"
+#import "FBLPromise+Recover.h"
+#import "FBLPromise+Reduce.h"
+#import "FBLPromise+Retry.h"
+#import "FBLPromise+Testing.h"
+#import "FBLPromise+Then.h"
+#import "FBLPromise+Timeout.h"
+#import "FBLPromise+Validate.h"
+#import "FBLPromise+Wrap.h"
+#import "FBLPromise.h"
+#import "FBLPromiseError.h"
+#import "FBLPromises.h"
+
+FOUNDATION_EXPORT double FBLPromisesVersionNumber;
+FOUNDATION_EXPORT const unsigned char FBLPromisesVersionString[];
+
diff --git a/plugins/2018.3326/universal/FBLPromises.framework/Info.plist b/plugins/2018.3326/universal/FBLPromises.framework/Info.plist
new file mode 100644
index 0000000..7bb2cdf
Binary files /dev/null and b/plugins/2018.3326/universal/FBLPromises.framework/Info.plist differ
diff --git a/plugins/2018.3326/universal/FBLPromises.framework/Modules/module.modulemap b/plugins/2018.3326/universal/FBLPromises.framework/Modules/module.modulemap
new file mode 100644
index 0000000..7d485cd
--- /dev/null
+++ b/plugins/2018.3326/universal/FBLPromises.framework/Modules/module.modulemap
@@ -0,0 +1,6 @@
+framework module FBLPromises {
+ umbrella header "PromisesObjC-umbrella.h"
+
+ export *
+ module * { export * }
+}
diff --git a/plugins/2018.3326/universal/FBLPromises.framework/PrivateHeaders/FBLPromisePrivate.h b/plugins/2018.3326/universal/FBLPromises.framework/PrivateHeaders/FBLPromisePrivate.h
new file mode 100644
index 0000000..7a132f2
--- /dev/null
+++ b/plugins/2018.3326/universal/FBLPromises.framework/PrivateHeaders/FBLPromisePrivate.h
@@ -0,0 +1,66 @@
+/**
+ Copyright 2018 Google Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at:
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ */
+
+#import "FBLPromise+Testing.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ Miscellaneous low-level private interfaces available to extend standard FBLPromise functionality.
+ */
+@interface FBLPromise()
+
+typedef void (^FBLPromiseOnFulfillBlock)(Value __nullable value) NS_SWIFT_UNAVAILABLE("");
+typedef void (^FBLPromiseOnRejectBlock)(NSError *error) NS_SWIFT_UNAVAILABLE("");
+typedef id __nullable (^__nullable FBLPromiseChainedFulfillBlock)(Value __nullable value)
+ NS_SWIFT_UNAVAILABLE("");
+typedef id __nullable (^__nullable FBLPromiseChainedRejectBlock)(NSError *error)
+ NS_SWIFT_UNAVAILABLE("");
+
+/**
+ Creates a pending promise.
+ */
+- (instancetype)initPending NS_SWIFT_UNAVAILABLE("");
+
+/**
+ Creates a resolved promise.
+
+ @param resolution An object to resolve the promise with: either a value or an error.
+ @return A new resolved promise.
+ */
+- (instancetype)initWithResolution:(nullable id)resolution NS_SWIFT_UNAVAILABLE("");
+
+/**
+ Invokes `fulfill` and `reject` blocks on `queue` when the receiver gets either fulfilled or
+ rejected respectively.
+ */
+- (void)observeOnQueue:(dispatch_queue_t)queue
+ fulfill:(FBLPromiseOnFulfillBlock)onFulfill
+ reject:(FBLPromiseOnRejectBlock)onReject NS_SWIFT_UNAVAILABLE("");
+
+/**
+ Returns a new promise which gets resolved with the return value of `chainedFulfill` or
+ `chainedReject` blocks respectively. The blocks are invoked when the receiver gets either
+ fulfilled or rejected. If `nil` is passed to either block arg, the returned promise is resolved
+ with the same resolution as the receiver.
+ */
+- (FBLPromise *)chainOnQueue:(dispatch_queue_t)queue
+ chainedFulfill:(FBLPromiseChainedFulfillBlock)chainedFulfill
+ chainedReject:(FBLPromiseChainedRejectBlock)chainedReject NS_SWIFT_UNAVAILABLE("");
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/plugins/2018.3326/universal/GoogleAppMeasurement.framework/GoogleAppMeasurement b/plugins/2018.3326/universal/GoogleAppMeasurement.framework/GoogleAppMeasurement
new file mode 100644
index 0000000..995b404
Binary files /dev/null and b/plugins/2018.3326/universal/GoogleAppMeasurement.framework/GoogleAppMeasurement differ
diff --git a/plugins/2018.3326/universal/GoogleAppMeasurement.framework/Info.plist b/plugins/2018.3326/universal/GoogleAppMeasurement.framework/Info.plist
new file mode 100644
index 0000000..da08178
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleAppMeasurement.framework/Info.plist
@@ -0,0 +1,20 @@
+
+
+
+
+ CFBundleExecutable
+ GoogleAppMeasurement
+ CFBundleIdentifier
+ com.firebase.Firebase-GoogleAppMeasurement
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ GoogleAppMeasurement
+ CFBundlePackageType
+ FMWK
+ CFBundleVersion
+ 8.9.1
+ DTSDKName
+ iphonesimulator11.2
+
+
diff --git a/plugins/2018.3326/universal/GoogleAppMeasurement.framework/Modules/module.modulemap b/plugins/2018.3326/universal/GoogleAppMeasurement.framework/Modules/module.modulemap
new file mode 100644
index 0000000..d3499f0
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleAppMeasurement.framework/Modules/module.modulemap
@@ -0,0 +1,10 @@
+framework module GoogleAppMeasurement {
+umbrella header "GoogleAppMeasurement-umbrella.h"
+export *
+module * { export * }
+ link framework "Security"
+ link framework "SystemConfiguration"
+ link "c++"
+ link "sqlite3"
+ link "z"
+}
diff --git a/plugins/2018.3326/universal/GoogleAppMeasurementIdentitySupport.framework/GoogleAppMeasurementIdentitySupport b/plugins/2018.3326/universal/GoogleAppMeasurementIdentitySupport.framework/GoogleAppMeasurementIdentitySupport
new file mode 100644
index 0000000..80134f3
Binary files /dev/null and b/plugins/2018.3326/universal/GoogleAppMeasurementIdentitySupport.framework/GoogleAppMeasurementIdentitySupport differ
diff --git a/plugins/2018.3326/universal/GoogleAppMeasurementIdentitySupport.framework/Info.plist b/plugins/2018.3326/universal/GoogleAppMeasurementIdentitySupport.framework/Info.plist
new file mode 100644
index 0000000..f80bfd1
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleAppMeasurementIdentitySupport.framework/Info.plist
@@ -0,0 +1,20 @@
+
+
+
+
+ CFBundleExecutable
+ GoogleAppMeasurementIdentitySupport
+ CFBundleIdentifier
+ com.firebase.Firebase-GoogleAppMeasurementIdentitySupport
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ GoogleAppMeasurementIdentitySupport
+ CFBundlePackageType
+ FMWK
+ CFBundleVersion
+ 8.9.1
+ DTSDKName
+ iphonesimulator11.2
+
+
diff --git a/plugins/2018.3326/universal/GoogleAppMeasurementIdentitySupport.framework/Modules/module.modulemap b/plugins/2018.3326/universal/GoogleAppMeasurementIdentitySupport.framework/Modules/module.modulemap
new file mode 100644
index 0000000..4a42c5d
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleAppMeasurementIdentitySupport.framework/Modules/module.modulemap
@@ -0,0 +1,5 @@
+framework module GoogleAppMeasurementIdentitySupport {
+umbrella header "GoogleAppMeasurementIdentitySupport-umbrella.h"
+export *
+module * { export * }
+}
diff --git a/plugins/2018.3326/universal/GoogleMobileAds.framework/GoogleMobileAds b/plugins/2018.3326/universal/GoogleMobileAds.framework/GoogleMobileAds
new file mode 100755
index 0000000..77ed293
Binary files /dev/null and b/plugins/2018.3326/universal/GoogleMobileAds.framework/GoogleMobileAds differ
diff --git a/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADAdChoicesView.h b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADAdChoicesView.h
new file mode 100755
index 0000000..6bc2d93
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADAdChoicesView.h
@@ -0,0 +1,16 @@
+//
+// GADAdChoicesView.h
+// Google Mobile Ads SDK
+//
+// Copyright 2016 Google LLC. All rights reserved.
+//
+
+#import
+
+/// Displays AdChoices content.
+///
+/// If a GADAdChoicesView is set on GADNativeAdView prior to calling -setNativeAd:, AdChoices
+/// content will render inside the GADAdChoicesView. By default, AdChoices is placed in the top
+/// right corner of GADNativeAdView.
+@interface GADAdChoicesView : UIView
+@end
diff --git a/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADAdFormat.h b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADAdFormat.h
new file mode 100755
index 0000000..0588bc7
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADAdFormat.h
@@ -0,0 +1,18 @@
+//
+// GADAdFormat.h
+// Google Mobile Ads SDK
+//
+// Copyright 2018-2021 Google LLC. All rights reserved.
+//
+
+#import
+
+/// Requested ad format.
+typedef NS_ENUM(NSInteger, GADAdFormat) {
+ GADAdFormatBanner, ///< Banner.
+ GADAdFormatInterstitial, ///< Interstitial.
+ GADAdFormatRewarded, ///< Rewarded.
+ GADAdFormatNative, ///< Native.
+ GADAdFormatRewardedInterstitial, ///< Rewarded interstitial.
+ GADAdFormatUnknown, ///< Unknown.
+};
diff --git a/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADAdLoader.h b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADAdLoader.h
new file mode 100755
index 0000000..aaadacd
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADAdLoader.h
@@ -0,0 +1,46 @@
+//
+// GADAdLoader.h
+// Google Mobile Ads SDK
+//
+// Copyright 2015 Google LLC. All rights reserved.
+//
+
+#import
+#import
+#import
+#import
+#import
+
+/// Ad loader options base class. See each ad type's header for available GADAdLoaderOptions
+/// subclasses.
+@interface GADAdLoaderOptions : NSObject
+@end
+
+/// Loads ads. See GADAdLoaderAdTypes.h for available ad types.
+@interface GADAdLoader : NSObject
+
+/// Object notified when an ad request succeeds or fails. Must conform to requested ad types'
+/// delegate protocols.
+@property(nonatomic, weak, nullable) id delegate;
+
+/// The ad loader's ad unit ID.
+@property(nonatomic, readonly, nonnull) NSString *adUnitID;
+
+/// Indicates whether the ad loader is loading.
+@property(nonatomic, getter=isLoading, readonly) BOOL loading;
+
+/// Returns an initialized ad loader configured to load the specified ad types.
+///
+/// @param rootViewController The root view controller is used to present ad click actions.
+/// @param adTypes An array of ad types. See GADAdLoaderAdTypes.h for available ad types.
+/// @param options An array of GADAdLoaderOptions objects to configure how ads are loaded, or nil
+/// to use default options. See each ad type's header for available GADAdLoaderOptions subclasses.
+- (nonnull instancetype)initWithAdUnitID:(nonnull NSString *)adUnitID
+ rootViewController:(nullable UIViewController *)rootViewController
+ adTypes:(nonnull NSArray *)adTypes
+ options:(nullable NSArray *)options;
+
+/// Loads the ad and informs the delegate of the outcome.
+- (void)loadRequest:(nullable GADRequest *)request;
+
+@end
diff --git a/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADAdLoaderAdTypes.h b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADAdLoaderAdTypes.h
new file mode 100755
index 0000000..c97bf25
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADAdLoaderAdTypes.h
@@ -0,0 +1,40 @@
+//
+// GADAdLoaderAdTypes.h
+// Google Mobile Ads SDK
+//
+// Copyright 2015 Google LLC. All rights reserved.
+//
+
+#import
+#import
+
+typedef NSString *GADAdLoaderAdType NS_STRING_ENUM;
+
+/// Use with GADAdLoader to request native custom template ads. To receive ads, the ad loader's
+/// delegate must conform to the GADCustomNativeAdLoaderDelegate protocol. See GADCustomNativeAd.h.
+GAD_EXTERN GADAdLoaderAdType _Nonnull const GADAdLoaderAdTypeCustomNative;
+
+/// Use with GADAdLoader to request Google Ad Manager banner ads. To receive ads, the ad loader's
+/// delegate must conform to the GAMBannerAdLoaderDelegate protocol. See GAMBannerView.h.
+GAD_EXTERN GADAdLoaderAdType _Nonnull const GADAdLoaderAdTypeGAMBanner;
+
+/// Use with GADAdLoader to request native ads. To receive ads, the ad loader's delegate must
+/// conform to the GADNativeAdLoaderDelegate protocol. See GADNativeAd.h.
+GAD_EXTERN GADAdLoaderAdType _Nonnull const GADAdLoaderAdTypeNative;
+
+#pragma mark Deprecated
+
+/// Use with GADAdLoader to request native custom template ads. To receive ads, the ad loader's
+/// delegate must conform to the GADCustomNativeAdLoaderDelegate protocol. See GADCustomNativeAd.h.
+GAD_EXTERN GADAdLoaderAdType _Nonnull const kGADAdLoaderAdTypeCustomNative DEPRECATED_MSG_ATTRIBUTE(
+ "Use GADAdLoaderAdTypeCustomNative instead") NS_SWIFT_NAME(kGADAdLoaderAdTypeCustomNative);
+
+/// Use with GADAdLoader to request Google Ad Manager banner ads. To receive ads, the ad loader's
+/// delegate must conform to the GAMBannerAdLoaderDelegate protocol. See GAMBannerView.h.
+GAD_EXTERN GADAdLoaderAdType _Nonnull const kGADAdLoaderAdTypeGAMBanner DEPRECATED_MSG_ATTRIBUTE(
+ "Use GADAdLoaderAdTypeGAMBanner instead") NS_SWIFT_NAME(kGADAdLoaderAdTypeGAMBanner);
+
+/// Use with GADAdLoader to request native ads. To receive ads, the ad loader's delegate must
+/// conform to the GADNativeAdLoaderDelegate protocol. See GADNativeAd.h.
+GAD_EXTERN GADAdLoaderAdType _Nonnull const kGADAdLoaderAdTypeNative DEPRECATED_MSG_ATTRIBUTE(
+ "Use GADAdLoaderAdTypeNative instead") NS_SWIFT_NAME(kGADAdLoaderAdTypeNative);
diff --git a/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADAdLoaderDelegate.h b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADAdLoaderDelegate.h
new file mode 100755
index 0000000..559b337
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADAdLoaderDelegate.h
@@ -0,0 +1,25 @@
+//
+// GADAdLoaderDelegate.h
+// Google Mobile Ads SDK
+//
+// Copyright 2015 Google LLC. All rights reserved.
+//
+
+#import
+
+@class GADAdLoader;
+
+/// Base ad loader delegate protocol. Ad types provide extended protocols that declare methods to
+/// handle successful ad loads.
+@protocol GADAdLoaderDelegate
+
+/// Called when adLoader fails to load an ad.
+- (void)adLoader:(nonnull GADAdLoader *)adLoader
+ didFailToReceiveAdWithError:(nonnull NSError *)error;
+
+@optional
+
+/// Called after adLoader has finished loading.
+- (void)adLoaderDidFinishLoading:(nonnull GADAdLoader *)adLoader;
+
+@end
diff --git a/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADAdMetadata.h b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADAdMetadata.h
new file mode 100755
index 0000000..167fde4
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADAdMetadata.h
@@ -0,0 +1,33 @@
+//
+// GADAdMetadata.h
+// Google Mobile Ads SDK
+//
+// Copyright 2017 Google LLC. All rights reserved.
+//
+
+#import
+
+/// Ad metadata key type.
+typedef NSString *GADAdMetadataKey NS_STRING_ENUM;
+
+@protocol GADAdMetadataDelegate;
+
+/// Protocol for ads that provide ad metadata.
+@protocol GADAdMetadataProvider
+
+/// The ad's metadata. Use adMetadataDelegate to receive ad metadata change messages.
+@property(nonatomic, readonly, nullable) NSDictionary *adMetadata;
+
+/// Delegate for receiving ad metadata changes.
+@property(nonatomic, weak, nullable) id adMetadataDelegate;
+
+@end
+
+/// Delegate protocol for receiving ad metadata change messages from a GADAdMetadataProvider.
+@protocol GADAdMetadataDelegate
+
+/// Tells the delegate that the ad's metadata changed. Called when an ad loads and when a loaded
+/// ad's metadata changes.
+- (void)adMetadataDidChange:(nonnull id)ad;
+
+@end
diff --git a/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADAdNetworkExtras.h b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADAdNetworkExtras.h
new file mode 100755
index 0000000..d9e2b78
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADAdNetworkExtras.h
@@ -0,0 +1,16 @@
+//
+// GADAdNetworkExtras.h
+// Google Mobile Ads SDK
+//
+// Copyright 2012 Google LLC. All rights reserved.
+//
+
+#import
+
+/// An object implementing this protocol contains information set by the publisher on the client
+/// device for a particular ad network.
+///
+/// Ad networks should create an 'extras' object implementing this protocol for their publishers to
+/// use.
+@protocol GADAdNetworkExtras
+@end
diff --git a/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADAdReward.h b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADAdReward.h
new file mode 100755
index 0000000..8565465
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADAdReward.h
@@ -0,0 +1,27 @@
+//
+// GADAdReward.h
+// Google Mobile Ads SDK
+//
+// Copyright 2015 Google LLC. All rights reserved.
+//
+
+#import
+
+/// A block to be executed when the user earns a reward.
+typedef void (^GADUserDidEarnRewardHandler)(void);
+
+/// Ad reward information.
+@interface GADAdReward : NSObject
+
+/// Type of the reward.
+@property(nonatomic, readonly, nonnull) NSString *type;
+
+/// Amount rewarded to the user.
+@property(nonatomic, readonly, nonnull) NSDecimalNumber *amount;
+
+/// Returns an initialized GADAdReward with the provided reward type and reward amount.
+- (nonnull instancetype)initWithRewardType:(nonnull NSString *)rewardType
+ rewardAmount:(nonnull NSDecimalNumber *)rewardAmount
+ NS_DESIGNATED_INITIALIZER;
+
+@end
diff --git a/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADAdSize.h b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADAdSize.h
new file mode 100755
index 0000000..ce9ef15
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADAdSize.h
@@ -0,0 +1,196 @@
+//
+// GADAdSize.h
+// Google Mobile Ads SDK
+//
+// Copyright 2012 Google LLC. All rights reserved.
+//
+
+#import
+#import
+#import
+
+/// A valid GADAdSize is considered to be one of the predefined GADAdSize constants or a GADAdSize
+/// constructed by GADAdSizeFromCGSize, GADAdSizeFullWidthPortraitWithHeight,
+/// GADAdSizeFullWidthLandscapeWithHeight.
+///
+/// Do not create a GADAdSize manually. Use one of the GADAdSize constants. Treat GADAdSize as an
+/// opaque type. Do not access any fields directly. To obtain a concrete CGSize, use the function
+/// CGSizeFromGADAdSize().
+typedef struct GAD_BOXABLE GADAdSize GADAdSize;
+
+/// Ad size.
+///
+/// @see typedef GADAdSize
+struct GAD_BOXABLE GADAdSize {
+ /// The ad size. Don't modify this value directly.
+ CGSize size;
+ /// Reserved.
+ NSUInteger flags;
+};
+
+#pragma mark Standard Sizes
+
+/// iPhone and iPod Touch ad size. Typically 320x50.
+GAD_EXTERN GADAdSize const GADAdSizeBanner;
+
+/// Taller version of GADAdSizeBanner. Typically 320x100.
+GAD_EXTERN GADAdSize const GADAdSizeLargeBanner;
+
+/// Medium Rectangle size for the iPad (especially in a UISplitView's left pane). Typically 300x250.
+GAD_EXTERN GADAdSize const GADAdSizeMediumRectangle;
+
+/// Full Banner size for the iPad (especially in a UIPopoverController or in
+/// UIModalPresentationFormSheet). Typically 468x60.
+GAD_EXTERN GADAdSize const GADAdSizeFullBanner;
+
+/// Leaderboard size for the iPad. Typically 728x90.
+GAD_EXTERN GADAdSize const GADAdSizeLeaderboard;
+
+/// Skyscraper size for the iPad. Mediation only. AdMob/Google does not offer this size. Typically
+/// 120x600.
+GAD_EXTERN GADAdSize const GADAdSizeSkyscraper;
+
+/// An ad size that spans the full width of its container, with a height dynamically determined by
+/// the ad.
+GAD_EXTERN GADAdSize const GADAdSizeFluid;
+
+/// Invalid ad size marker.
+GAD_EXTERN GADAdSize const GADAdSizeInvalid;
+
+#pragma mark Inline Adaptive Sizes
+
+/// Returns a GADAdSize with the given width and the device's portrait height. This ad size
+/// allows Google servers to choose an optimal ad size less than or equal to the returned size. The
+/// exact size of the ad returned is passed through the banner's ad size delegate and is indicated
+/// by the banner's intrinsicContentSize. This ad size is most suitable for ads intended for scroll
+/// views.
+GAD_EXTERN GADAdSize GADPortraitInlineAdaptiveBannerAdSizeWithWidth(CGFloat width);
+
+/// Returns a GADAdSize with the given width and the device's landscape height. This ad size
+/// allows Google servers to choose an optimal ad size less than or equal to the returned size. The
+/// exact size of the ad returned is passed through the banner's ad size delegate and is indicated
+/// by the banner's intrinsicContentSize. This ad size is most suitable for ads intended for scroll
+/// views.
+GAD_EXTERN GADAdSize GADLandscapeInlineAdaptiveBannerAdSizeWithWidth(CGFloat width);
+
+/// Returns a GADAdSize with the given width and the device's height. This is a convenience
+/// function to return GADPortraitInlineAdaptiveBannerAdSizeWithWidth or
+/// GADLandscapeInlineAdaptiveBannerAdSizeWithWidth based on the current interface orientation.
+/// This function must be called on the main queue.
+GAD_EXTERN GADAdSize GADCurrentOrientationInlineAdaptiveBannerAdSizeWithWidth(CGFloat width);
+
+/// Returns a GADAdSize with the given width and max height. This ad size allows Google servers to
+/// choose an optimal ad size less than or equal to the returned size. The exact size of the ad
+/// returned is passed through the banner's ad size delegate and is indicated by the banner's
+/// intrinsicContentSize. This ad size is most suitable for ads intended for scroll views.
+///
+/// @param width The ad width.
+/// @param maxHeight The maximum height a loaded ad will have. Must be at least 32 px, but a max
+/// height of 50 px or higher is recommended.
+GAD_EXTERN GADAdSize GADInlineAdaptiveBannerAdSizeWithWidthAndMaxHeight(CGFloat width,
+ CGFloat maxHeight);
+
+#pragma mark Anchored Adaptive Sizes
+
+/// Returns a GADAdSize with the given width and a Google-optimized height to create a banner ad.
+/// The size returned has an aspect ratio similar to that of GADAdSizeBanner, suitable for
+/// anchoring near the top or bottom of your app. The height is never larger than 15% of the
+/// device's portrait height and is always between 50-90 points. This function always returns the
+/// same height for any width / device combination.
+GAD_EXTERN GADAdSize GADPortraitAnchoredAdaptiveBannerAdSizeWithWidth(CGFloat width);
+
+/// Returns a GADAdSize with the given width and a Google-optimized height to create a banner ad.
+/// The size returned is suitable for use in a banner ad anchored near the top or bottom of your
+/// app, similar to use of GADAdSizeBanner. The height is never larger than 15% of the devices's
+/// landscape height and is always between 50-90 points. This function always returns the same
+/// height for any width / device combination.
+GAD_EXTERN GADAdSize GADLandscapeAnchoredAdaptiveBannerAdSizeWithWidth(CGFloat width);
+
+/// Returns a GADAdSize with the given width and a Google-optimized height. This is a convenience
+/// function to return GADPortraitAnchoredAdaptiveBannerAdSizeWithWidth or
+/// GADLandscapeAnchoredAdaptiveBannerAdSizeWithWidth based on the current interface orientation.
+/// This function must be called on the main queue.
+GAD_EXTERN GADAdSize GADCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(CGFloat width);
+
+#pragma mark Custom Sizes
+
+/// Returns a custom GADAdSize for the provided CGSize. Use this only if you require a non-standard
+/// size. Otherwise, use one of the standard size constants above.
+GAD_EXTERN GADAdSize GADAdSizeFromCGSize(CGSize size);
+
+/// Returns a custom GADAdSize that spans the full width of the application in portrait orientation
+/// with the height provided.
+GAD_EXTERN GADAdSize GADAdSizeFullWidthPortraitWithHeight(CGFloat height);
+
+/// Returns a custom GADAdSize that spans the full width of the application in landscape orientation
+/// with the height provided.
+GAD_EXTERN GADAdSize GADAdSizeFullWidthLandscapeWithHeight(CGFloat height);
+
+#pragma mark Convenience Functions
+
+/// Returns YES if the two GADAdSizes are equal, otherwise returns NO.
+GAD_EXTERN BOOL GADAdSizeEqualToSize(GADAdSize size1, GADAdSize size2);
+
+/// Returns a CGSize for the provided a GADAdSize constant. If the GADAdSize is unknown, returns
+/// CGSizeZero.
+GAD_EXTERN CGSize CGSizeFromGADAdSize(GADAdSize size);
+
+/// Returns YES if |size| is one of the predefined constants or is a custom GADAdSize generated by
+/// GADAdSizeFromCGSize.
+GAD_EXTERN BOOL IsGADAdSizeValid(GADAdSize size);
+
+/// Returns YES if |size| is a fluid ad size.
+GAD_EXTERN BOOL GADAdSizeIsFluid(GADAdSize size);
+
+/// Returns a NSString describing the provided GADAdSize.
+GAD_EXTERN NSString *_Nonnull NSStringFromGADAdSize(GADAdSize size);
+
+/// Returns an NSValue representing the GADAdSize.
+GAD_EXTERN NSValue *_Nonnull NSValueFromGADAdSize(GADAdSize size);
+
+/// Returns a GADAdSize from an NSValue. Returns GADAdSizeInvalid if the value is not a GADAdSize.
+GAD_EXTERN GADAdSize GADAdSizeFromNSValue(NSValue *_Nonnull value);
+
+#pragma mark Deprecated
+
+/// An ad size that spans the full width of the application in portrait orientation. The height is
+/// typically 50 points on an iPhone/iPod UI, and 90 points tall on an iPad UI.
+GAD_EXTERN GADAdSize const kGADAdSizeSmartBannerPortrait
+ GAD_DEPRECATED_MSG_ATTRIBUTE("Use GADPortraitAnchoredAdaptiveBannerAdSizeWithWidth.");
+
+/// An ad size that spans the full width of the application in landscape orientation. The height is
+/// typically 32 points on an iPhone/iPod UI, and 90 points tall on an iPad UI.
+GAD_EXTERN GADAdSize const kGADAdSizeSmartBannerLandscape
+ GAD_DEPRECATED_MSG_ATTRIBUTE("Use GADLandscapeAnchoredAdaptiveBannerAdSizeWithWidth");
+
+/// iPhone and iPod Touch ad size. Typically 320x50.
+GAD_EXTERN GADAdSize const kGADAdSizeBanner GAD_DEPRECATED_MSG_ATTRIBUTE("Use GADAdSizeBanner");
+
+/// Taller version of GADAdSizeBanner. Typically 320x100.
+GAD_EXTERN GADAdSize const kGADAdSizeLargeBanner
+ GAD_DEPRECATED_MSG_ATTRIBUTE("Use GADAdSizeLargeBanner");
+
+/// Medium Rectangle size for the iPad (especially in a UISplitView's left pane). Typically 300x250.
+GAD_EXTERN GADAdSize const kGADAdSizeMediumRectangle
+ GAD_DEPRECATED_MSG_ATTRIBUTE("Use GADAdSizeMediumRectangle");
+
+/// Full Banner size for the iPad (especially in a UIPopoverController or in
+/// UIModalPresentationFormSheet). Typically 468x60.
+GAD_EXTERN GADAdSize const kGADAdSizeFullBanner
+ GAD_DEPRECATED_MSG_ATTRIBUTE("Use GADAdSizeFullBanner");
+
+/// Leaderboard size for the iPad. Typically 728x90.
+GAD_EXTERN GADAdSize const kGADAdSizeLeaderboard
+ GAD_DEPRECATED_MSG_ATTRIBUTE("Use GADAdSizeLeaderboard");
+
+/// Skyscraper size for the iPad. Mediation only. AdMob/Google does not offer this size. Typically
+/// 120x600.
+GAD_EXTERN GADAdSize const kGADAdSizeSkyscraper
+ GAD_DEPRECATED_MSG_ATTRIBUTE("Use GADAdSizeSkyscraper");
+
+/// An ad size that spans the full width of its container, with a height dynamically determined by
+/// the ad.
+GAD_EXTERN GADAdSize const kGADAdSizeFluid GAD_DEPRECATED_MSG_ATTRIBUTE("Use GADAdSizeFluid");
+
+/// Invalid ad size marker.
+GAD_EXTERN GADAdSize const kGADAdSizeInvalid GAD_DEPRECATED_MSG_ATTRIBUTE("Use GADAdSizeInvalid");
diff --git a/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADAdSizeDelegate.h b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADAdSizeDelegate.h
new file mode 100755
index 0000000..43a62fd
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADAdSizeDelegate.h
@@ -0,0 +1,20 @@
+//
+// GADAdSizeDelegate.h
+// Google Mobile Ads SDK
+//
+// Copyright 2012 Google LLC. All rights reserved.
+//
+
+#import
+#import
+
+@class GADBannerView;
+
+/// The class implementing this protocol will be notified when the GADBannerView's ad content
+/// changes size. Any views that may be affected by the banner size change will have time to adjust.
+@protocol GADAdSizeDelegate
+
+/// Called before the ad view changes to the new size.
+- (void)adView:(nonnull GADBannerView *)bannerView willChangeAdSizeTo:(GADAdSize)size;
+
+@end
diff --git a/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADAdValue.h b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADAdValue.h
new file mode 100755
index 0000000..e823547
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADAdValue.h
@@ -0,0 +1,38 @@
+//
+// GADAdValue.h
+// Google Mobile Ads SDK
+//
+// Copyright 2019 Google LLC. All rights reserved.
+//
+
+#import
+
+typedef NS_ENUM(NSInteger, GADAdValuePrecision) {
+ /// An ad value with unknown precision.
+ GADAdValuePrecisionUnknown = 0,
+ /// An ad value estimated from aggregated data.
+ GADAdValuePrecisionEstimated = 1,
+ /// A publisher-provided ad value, such as manual CPMs in a mediation group.
+ GADAdValuePrecisionPublisherProvided = 2,
+ /// The precise value paid for this ad.
+ GADAdValuePrecisionPrecise = 3
+};
+
+@class GADAdValue;
+
+/// Handles ad events that are estimated to have earned money.
+typedef void (^GADPaidEventHandler)(GADAdValue *_Nonnull value);
+
+/// The monetary value earned from an ad.
+@interface GADAdValue : NSObject
+
+/// The precision of the reported ad value.
+@property(nonatomic, readonly) GADAdValuePrecision precision;
+
+/// The ad's value.
+@property(nonatomic, nonnull, readonly) NSDecimalNumber *value;
+
+/// The value's currency code.
+@property(nonatomic, nonnull, readonly) NSString *currencyCode;
+
+@end
diff --git a/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADAppEventDelegate.h b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADAppEventDelegate.h
new file mode 100755
index 0000000..119eebe
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADAppEventDelegate.h
@@ -0,0 +1,29 @@
+//
+// GADAppEventDelegate.h
+// Google Mobile Ads SDK
+//
+// Copyright 2020 Google LLC. All rights reserved.
+//
+
+#import
+
+@class GADBannerView;
+@class GADInterstitialAd;
+
+/// Implement your app event within these methods. The delegate will be notified when the SDK
+/// receives an app event message from the ad.
+@protocol GADAppEventDelegate
+
+@optional
+
+/// Called when the banner receives an app event.
+- (void)adView:(nonnull GADBannerView *)banner
+ didReceiveAppEvent:(nonnull NSString *)name
+ withInfo:(nullable NSString *)info;
+
+/// Called when the interstitial receives an app event.
+- (void)interstitialAd:(nonnull GADInterstitialAd *)interstitialAd
+ didReceiveAppEvent:(nonnull NSString *)name
+ withInfo:(nullable NSString *)info;
+
+@end
diff --git a/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADAppOpenAd.h b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADAppOpenAd.h
new file mode 100755
index 0000000..28e2c78
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADAppOpenAd.h
@@ -0,0 +1,59 @@
+//
+// GADAppOpenAd.h
+// Google Mobile Ads SDK
+//
+// Copyright 2020 Google LLC. All rights reserved.
+//
+
+#import
+#import
+#import
+#import
+#import
+
+#pragma mark - App Open Ad
+
+@class GADAppOpenAd;
+
+/// The handler block to execute when the ad load operation completes. On failure, the
+/// appOpenAd is nil and the |error| is non-nil. On success, the appOpenAd is non-nil and the
+/// |error| is nil.
+typedef void (^GADAppOpenAdLoadCompletionHandler)(GADAppOpenAd *_Nullable appOpenAd,
+ NSError *_Nullable error);
+
+/// An app open ad. Used to monetize app load screens.
+@interface GADAppOpenAd : NSObject
+
+/// Loads an app open ad.
+///
+/// @param adUnitID An ad unit ID created in the AdMob or Ad Manager UI.
+/// @param request An ad request object. If nil, a default ad request object is used.
+/// @param orientation The interface orientation that the ad will be presented in.
+/// @param completionHandler A handler to execute when the load operation finishes or times out.
++ (void)loadWithAdUnitID:(nonnull NSString *)adUnitID
+ request:(nullable GADRequest *)request
+ orientation:(UIInterfaceOrientation)orientation
+ completionHandler:(nonnull GADAppOpenAdLoadCompletionHandler)completionHandler;
+
+/// Optional delegate object that receives notifications about presentation and dismissal of full
+/// screen content from this ad. Full screen content covers your application's content. The delegate
+/// may want to pause animations and time sensitive interactions. Set this delegate before
+/// presenting the ad.
+@property(nonatomic, weak, nullable) id fullScreenContentDelegate;
+
+/// Information about the ad response that returned the ad.
+@property(nonatomic, readonly, nonnull) GADResponseInfo *responseInfo;
+
+/// Called when the ad is estimated to have earned money. Available for allowlisted accounts only.
+@property(nonatomic, nullable, copy) GADPaidEventHandler paidEventHandler;
+
+/// Returns whether the app open ad can be presented from the provided root view controller. Sets
+/// the error out parameter if the app open ad can't be presented. Must be called on the main
+/// thread.
+- (BOOL)canPresentFromRootViewController:(nonnull UIViewController *)rootViewController
+ error:(NSError *_Nullable __autoreleasing *_Nullable)error;
+
+/// Presents the app open ad with the provided view controller. Must be called on the main thread.
+- (void)presentFromRootViewController:(nonnull UIViewController *)rootViewController;
+
+@end
diff --git a/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADAudioVideoManager.h b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADAudioVideoManager.h
new file mode 100755
index 0000000..7814bef
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADAudioVideoManager.h
@@ -0,0 +1,29 @@
+//
+// GADAudioVideoManager.h
+// Google Mobile Ads SDK
+//
+// Copyright 2016 Google LLC. All rights reserved.
+//
+
+#import
+#import
+
+/// Provides audio and video notifications and configurations management.
+///
+/// Don't create an instance of this class and use the one available from GADMobileAds
+/// sharedInstance's audioVideoManager.
+@interface GADAudioVideoManager : NSObject
+
+/// Delegate for receiving video and audio updates.
+@property(nonatomic, weak, nullable) id delegate;
+
+/// Indicates whether the application wishes to manage audio session. If set as YES, the Google
+/// Mobile Ads SDK will stop managing AVAudioSession during the video playback lifecycle. If set as
+/// NO, the Google Mobile Ads SDK will control AVAudioSession. That may include: setting
+/// AVAudioSession's category to AVAudioSessionCategoryAmbient when all videos are muted, setting
+/// AVAudioSession's category to AVAudioSessionCategorySoloAmbient when any playing video becomes
+/// unmuted, and allowing background apps to continue playing sound when all videos rendered by
+/// Google Mobile Ads SDK are muted or have stopped playing. Must be accessed on main thread only.
+@property(nonatomic, assign) BOOL audioSessionIsApplicationManaged;
+
+@end
diff --git a/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADAudioVideoManagerDelegate.h b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADAudioVideoManagerDelegate.h
new file mode 100755
index 0000000..04d538a
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADAudioVideoManagerDelegate.h
@@ -0,0 +1,36 @@
+//
+// GADAudioVideoManagerDelegate.h
+// Google Mobile Ads SDK
+//
+// Copyright 2016 Google LLC. All rights reserved.
+//
+
+#import
+
+@class GADAudioVideoManager;
+
+/// A set of methods to inform the delegate of audio video manager events.
+@protocol GADAudioVideoManagerDelegate
+
+@optional
+
+/// Tells the delegate that the Google Mobile Ads SDK will start playing a video. This method isn't
+/// called if another video rendered by Google Mobile Ads SDK is already playing.
+- (void)audioVideoManagerWillPlayVideo:(nonnull GADAudioVideoManager *)audioVideoManager;
+
+/// Tells the delegate that the Google Mobile Ads SDK has paused/stopped all video playback.
+- (void)audioVideoManagerDidPauseAllVideo:(nonnull GADAudioVideoManager *)audioVideoManager;
+
+/// Tells the delegate that at least one video rendered by the Google Mobile Ads SDK will play
+/// sound. Your app should stop playing sound when this method is called.
+- (void)audioVideoManagerWillPlayAudio:(nonnull GADAudioVideoManager *)audioVideoManager;
+
+/// Tells the delegate that all the video rendered by the Google Mobile Ads SDK has stopped playing
+/// sound. Your app can now resume any music playback or produce any kind of sound. Note that this
+/// message doesn't mean that all the video has stopped playing, just audio, so you shouldn't
+/// deactivate AVAudioSession's instance. Doing so can lead to unexpected video playback behavior.
+/// You may deactivate AVAudioSession only when all rendered video ads are paused or have finished
+/// playing, and 'audioVideoDidPauseAllVideo:' is called.
+- (void)audioVideoManagerDidStopPlayingAudio:(nonnull GADAudioVideoManager *)audioVideoManager;
+
+@end
diff --git a/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADBannerView.h b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADBannerView.h
new file mode 100755
index 0000000..f60ade0
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADBannerView.h
@@ -0,0 +1,76 @@
+//
+// GADBannerView.h
+// Google Mobile Ads SDK
+//
+// Copyright 2011 Google LLC. All rights reserved.
+//
+
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+
+/// A view that displays banner ads. See https://developers.google.com/admob/ios/banner to get
+/// started.
+@interface GADBannerView : UIView
+
+#pragma mark Initialization
+
+/// Initializes and returns a banner view with the specified ad size and origin relative to the
+/// banner's superview.
+- (nonnull instancetype)initWithAdSize:(GADAdSize)adSize origin:(CGPoint)origin;
+
+/// Initializes and returns a banner view with the specified ad size placed at its superview's
+/// origin.
+- (nonnull instancetype)initWithAdSize:(GADAdSize)adSize;
+
+#pragma mark Pre-Request
+
+/// Required value created on the AdMob website. Create a new ad unit for every unique placement of
+/// an ad in your application. Set this to the ID assigned for this placement. Ad units are
+/// important for targeting and statistics.
+///
+/// Example AdMob ad unit ID: @"ca-app-pub-0123456789012345/0123456789"
+@property(nonatomic, copy, nullable) IBInspectable NSString *adUnitID;
+
+/// Required reference to a root view controller that is used by the banner to present full screen
+/// content after the user interacts with the ad. The root view controller is most commonly the view
+/// controller displaying the banner.
+@property(nonatomic, weak, nullable) IBOutlet UIViewController *rootViewController;
+
+/// Required to set this banner view to a proper size. Never create your own GADAdSize directly.
+/// Use one of the predefined standard ad sizes (such as GADAdSizeBanner), or create one using the
+/// GADAdSizeFromCGSize method. If not using mediation, then changing the adSize after an ad has
+/// been shown will cause a new request (for an ad of the new size) to be sent. If using mediation,
+/// then a new request may not be sent.
+@property(nonatomic, assign) GADAdSize adSize;
+
+/// Optional delegate object that receives state change notifications from this GADBannerView.
+/// Typically this is a UIViewController.
+@property(nonatomic, weak, nullable) IBOutlet id delegate;
+
+/// Optional delegate that is notified when creatives cause the banner to change size.
+@property(nonatomic, weak, nullable) IBOutlet id adSizeDelegate;
+
+#pragma mark Making an Ad Request
+
+/// Requests an ad. The request object supplies targeting information.
+- (void)loadRequest:(nullable GADRequest *)request;
+
+/// A Boolean value that determines whether autoloading of ads in the receiver is enabled. If
+/// enabled, you do not need to call the loadRequest: method to load ads.
+@property(nonatomic, assign, getter=isAutoloadEnabled) IBInspectable BOOL autoloadEnabled;
+
+#pragma mark Response
+
+/// Information about the ad response that returned the current ad or an error. Nil until the first
+/// ad request succeeds or fails.
+@property(nonatomic, readonly, nullable) GADResponseInfo *responseInfo;
+
+/// Called when ad is estimated to have earned money. Available for allowlisted accounts only.
+@property(nonatomic, nullable, copy) GADPaidEventHandler paidEventHandler;
+
+@end
diff --git a/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADBannerViewDelegate.h b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADBannerViewDelegate.h
new file mode 100755
index 0000000..c7f4ffe
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADBannerViewDelegate.h
@@ -0,0 +1,48 @@
+//
+// GADBannerViewDelegate.h
+// Google Mobile Ads SDK
+//
+// Copyright 2011 Google LLC. All rights reserved.
+//
+
+#import
+
+@class GADBannerView;
+
+/// Delegate methods for receiving GADBannerView state change messages such as ad request status
+/// and ad click lifecycle.
+@protocol GADBannerViewDelegate
+
+@optional
+
+#pragma mark Ad Request Lifecycle Notifications
+
+/// Tells the delegate that an ad request successfully received an ad. The delegate may want to add
+/// the banner view to the view hierarchy if it hasn't been added yet.
+- (void)bannerViewDidReceiveAd:(nonnull GADBannerView *)bannerView;
+
+/// Tells the delegate that an ad request failed. The failure is normally due to network
+/// connectivity or ad availablility (i.e., no fill).
+- (void)bannerView:(nonnull GADBannerView *)bannerView
+ didFailToReceiveAdWithError:(nonnull NSError *)error;
+
+/// Tells the delegate that an impression has been recorded for an ad.
+- (void)bannerViewDidRecordImpression:(nonnull GADBannerView *)bannerView;
+
+/// Tells the delegate that a click has been recorded for the ad.
+- (void)bannerViewDidRecordClick:(nonnull GADBannerView *)bannerView;
+
+#pragma mark Click-Time Lifecycle Notifications
+
+/// Tells the delegate that a full screen view will be presented in response to the user clicking on
+/// an ad. The delegate may want to pause animations and time sensitive interactions.
+- (void)bannerViewWillPresentScreen:(nonnull GADBannerView *)bannerView;
+
+/// Tells the delegate that the full screen view will be dismissed.
+- (void)bannerViewWillDismissScreen:(nonnull GADBannerView *)bannerView;
+
+/// Tells the delegate that the full screen view has been dismissed. The delegate should restart
+/// anything paused while handling bannerViewWillPresentScreen:.
+- (void)bannerViewDidDismissScreen:(nonnull GADBannerView *)bannerView;
+
+@end
diff --git a/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADCustomEventBanner.h b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADCustomEventBanner.h
new file mode 100755
index 0000000..b54c003
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADCustomEventBanner.h
@@ -0,0 +1,37 @@
+//
+// GADCustomEventBanner.h
+// Google Mobile Ads SDK
+//
+// Copyright 2012 Google LLC. All rights reserved.
+//
+
+#import
+#import
+#import
+#import
+
+/// The banner custom event protocol. Your banner custom event handler must implement this protocol.
+@protocol GADCustomEventBanner
+
+/// Inform |delegate| with the custom event execution results to ensure mediation behaves correctly.
+///
+/// In your class, define the -delegate and -setDelegate: methods or use "@synthesize delegate". The
+/// Google Mobile Ads SDK sets this property on instances of your class.
+@property(nonatomic, weak, nullable) id delegate;
+
+/// Returns an initialized custom event banner.
+- (nonnull instancetype)init;
+
+/// Called by mediation when your custom event is scheduled to be executed. Report execution results
+/// to the delegate.
+///
+/// @param adSize The size of the ad as configured in the mediation UI for the mediation placement.
+/// @param serverParameter Parameter configured in the mediation UI.
+/// @param serverLabel Label configured in the mediation UI.
+/// @param request Contains ad request information.
+- (void)requestBannerAd:(GADAdSize)adSize
+ parameter:(nullable NSString *)serverParameter
+ label:(nullable NSString *)serverLabel
+ request:(nonnull GADCustomEventRequest *)request;
+
+@end
diff --git a/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADCustomEventBannerDelegate.h b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADCustomEventBannerDelegate.h
new file mode 100755
index 0000000..2904607
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADCustomEventBannerDelegate.h
@@ -0,0 +1,66 @@
+//
+// GADCustomEventBannerDelegate.h
+// Google Mobile Ads SDK
+//
+// Copyright 2012 Google LLC. All rights reserved.
+//
+
+#import
+#import
+
+#import
+
+@protocol GADCustomEventBanner;
+
+/// Call back to this delegate in your custom event. You must call customEventBanner:didReceiveAd:
+/// when there is an ad to show, or customEventBanner:didFailAd: when there is no ad to show.
+/// Otherwise, if enough time passed (several seconds) after the SDK called the requestBannerAd:
+/// method of your custom event, the mediation SDK will consider the request timed out, and move on
+/// to the next ad network.
+@protocol GADCustomEventBannerDelegate
+
+/// Your Custom Event object must call this when it receives or creates an ad view.
+- (void)customEventBanner:(nonnull id)customEvent
+ didReceiveAd:(nonnull UIView *)view;
+
+/// Your Custom Event object must call this when it fails to receive or create the ad view. Pass
+/// along any error object sent from the ad network's SDK, or an NSError describing the error. Pass
+/// nil if not available.
+- (void)customEventBanner:(nonnull id)customEvent
+ didFailAd:(nullable NSError *)error;
+
+/// Your Custom Event object should call this when the user touches or "clicks" the ad to initiate
+/// an action. When the SDK receives this callback, it reports the click back to the mediation
+/// server.
+- (void)customEventBannerWasClicked:(nonnull id)customEvent;
+
+/// The rootViewController that you set in GADBannerView. Use this UIViewController to show a modal
+/// view when a user taps on the ad.
+@property(nonatomic, readonly, nonnull) UIViewController *viewControllerForPresentingModalView;
+
+/// When you call the following methods, the call will be propagated back to the
+/// GADBannerViewDelegate that you implemented and passed to GADBannerView.
+
+/// Your Custom Event should call this when the user taps an ad and a modal view appears.
+- (void)customEventBannerWillPresentModal:(nonnull id)customEvent;
+
+/// Your Custom Event should call this when the user dismisses the modal view and the modal view is
+/// about to go away.
+- (void)customEventBannerWillDismissModal:(nonnull id)customEvent;
+
+/// Your Custom Event should call this when the user dismisses the modal view and the modal view has
+/// gone away.
+- (void)customEventBannerDidDismissModal:(nonnull id)customEvent;
+
+#pragma mark Deprecated
+
+/// Deprecated. Use customEventBannerWasClicked:.
+- (void)customEventBanner:(nonnull id)customEvent
+ clickDidOccurInAd:(nonnull UIView *)view
+ GAD_DEPRECATED_MSG_ATTRIBUTE("Use customEventBannerWasClicked:.");
+
+/// Deprecated. No replacment.
+- (void)customEventBannerWillLeaveApplication:(nonnull id)customEvent
+ GAD_DEPRECATED_ATTRIBUTE;
+
+@end
diff --git a/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADCustomEventExtras.h b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADCustomEventExtras.h
new file mode 100755
index 0000000..9452467
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADCustomEventExtras.h
@@ -0,0 +1,29 @@
+//
+// GADCustomEventExtras.h
+// Google Mobile Ads SDK
+//
+// Copyright 2012 Google LLC. All rights reserved.
+//
+
+#import
+#import
+
+/// Create an instance of this class to set additional parameters for each custom event object. The
+/// additional parameters for a custom event are keyed by the custom event label. These extras are
+/// passed to your implementation of GADCustomEventBanner or GADCustomEventInterstitial.
+@interface GADCustomEventExtras : NSObject
+
+/// Set additional parameters for the custom event with label |label|. To remove additional
+/// parameters associated with |label|, pass in nil for |extras|.
+- (void)setExtras:(nullable NSDictionary *)extras forLabel:(nonnull NSString *)label;
+
+/// Retrieve the extras for |label|.
+- (nullable NSDictionary *)extrasForLabel:(nonnull NSString *)label;
+
+/// Removes all the extras set on this instance.
+- (void)removeAllExtras;
+
+/// Returns all the extras set on this instance.
+- (nonnull NSDictionary *)allExtras;
+
+@end
diff --git a/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADCustomEventInterstitial.h b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADCustomEventInterstitial.h
new file mode 100755
index 0000000..67d3408
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADCustomEventInterstitial.h
@@ -0,0 +1,40 @@
+//
+// GADCustomEventInterstitial.h
+// Google Mobile Ads SDK
+//
+// Copyright 2012 Google LLC. All rights reserved.
+//
+
+#import
+#import
+#import
+
+/// The interstitial custom event protocol. Your interstitial custom event handler must implement
+/// this protocol.
+@protocol GADCustomEventInterstitial
+
+/// Inform |delegate| with the custom event execution results to ensure mediation behaves correctly.
+///
+/// In your class, define the -delegate and -setDelegate: methods or use "@synthesize delegate". The
+/// Google Mobile Ads SDK sets this property on instances of your class.
+@property(nonatomic, weak, nullable) id delegate;
+
+/// Returns an initialized custom event interstitial.
+- (nonnull instancetype)init;
+
+/// Called by mediation when your custom event is scheduled to be executed. Your implementation
+/// should start retrieving the interstitial ad. Report execution results to the delegate. You must
+/// wait until -presentFromRootViewController is called before displaying the interstitial ad.
+///
+/// @param serverParameter Parameter configured in the mediation UI.
+/// @param serverLabel Label configured in the mediation UI.
+/// @param request Contains ad request information.
+- (void)requestInterstitialAdWithParameter:(nullable NSString *)serverParameter
+ label:(nullable NSString *)serverLabel
+ request:(nonnull GADCustomEventRequest *)request;
+
+/// Present the interstitial ad as a modal view using the provided view controller. Called only
+/// after your class calls -customEventInterstitialDidReceiveAd: on its custom event delegate.
+- (void)presentFromRootViewController:(nonnull UIViewController *)rootViewController;
+
+@end
diff --git a/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADCustomEventInterstitialDelegate.h b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADCustomEventInterstitialDelegate.h
new file mode 100755
index 0000000..0b881d3
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADCustomEventInterstitialDelegate.h
@@ -0,0 +1,58 @@
+//
+// GADCustomEventInterstitialDelegate.h
+// Google Mobile Ads SDK
+//
+// Copyright 2012 Google LLC. All rights reserved.
+//
+
+#import
+#import
+
+@protocol GADCustomEventInterstitial;
+
+/// Call back to this delegate in your custom event. You must call
+/// customEventInterstitialDidReceiveAd: when there is an ad to show, or
+/// customEventInterstitial:didFailAd: when there is no ad to show. Otherwise, if enough time passed
+/// (several seconds) after the SDK called the requestInterstitialAdWithParameter: method of your
+/// custom event, the mediation SDK will consider the request timed out, and move on to the next ad
+/// network.
+@protocol GADCustomEventInterstitialDelegate
+
+/// Your Custom Event object must call this when it receives or creates an interstitial ad.
+- (void)customEventInterstitialDidReceiveAd:(nonnull id)customEvent;
+
+/// Your Custom Event object must call this when it fails to receive or create the ad. Pass along
+/// any error object sent from the ad network's SDK, or an NSError describing the error. Pass nil if
+/// not available.
+- (void)customEventInterstitial:(nonnull id)customEvent
+ didFailAd:(nullable NSError *)error;
+
+/// Your Custom Event object should call this when the user touches or "clicks" the ad to initiate
+/// an action. When the SDK receives this callback, it reports the click back to the mediation
+/// server.
+- (void)customEventInterstitialWasClicked:(nonnull id)customEvent;
+
+// When you call any of the following methods, the call will be propagated back to the
+// GADInterstitialDelegate that you implemented and passed to GADInterstitial.
+
+/// Your Custom Event should call this when the interstitial is being displayed.
+- (void)customEventInterstitialWillPresent:(nonnull id)customEvent;
+
+/// Your Custom Event should call this when the interstitial is about to be dismissed.
+- (void)customEventInterstitialWillDismiss:(nonnull id)customEvent;
+
+/// Your Custom Event should call this when the interstitial has been dismissed.
+- (void)customEventInterstitialDidDismiss:(nonnull id)customEvent;
+
+#pragma mark Deprecated
+
+/// Deprecated. Use customEventInterstitialDidReceiveAd:.
+- (void)customEventInterstitial:(nonnull id)customEvent
+ didReceiveAd:(nonnull NSObject *)ad
+ GAD_DEPRECATED_MSG_ATTRIBUTE("Use customEventInterstitialDidReceiveAd:.");
+
+/// Deprecated. No replacement.
+- (void)customEventInterstitialWillLeaveApplication:
+ (nonnull id)customEvent GAD_DEPRECATED_ATTRIBUTE;
+
+@end
diff --git a/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADCustomEventNativeAd.h b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADCustomEventNativeAd.h
new file mode 100755
index 0000000..5353f0c
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADCustomEventNativeAd.h
@@ -0,0 +1,55 @@
+//
+// GADCustomEventNativeAd.h
+// Google Mobile Ads SDK
+//
+// Copyright 2015 Google LLC. All rights reserved.
+//
+
+#import
+#import
+
+@protocol GADCustomEventNativeAdDelegate;
+
+/// Native ad custom event protocol. Your native ad custom event handler class must conform to this
+/// protocol.
+@protocol GADCustomEventNativeAd
+
+/// Delegate object used for receiving custom native ad load request progress.
+@property(nonatomic, weak, nullable) id delegate;
+
+/// Returns an initialized custom event native ad.
+- (nonnull instancetype)init;
+
+/// Called when the custom event is scheduled to be executed.
+///
+/// @param serverParameter A value configured in the mediation UI for the custom event.
+/// @param request Ad targeting information.
+/// @param adTypes List of requested native ad types. See GADAdLoaderAdTypes.h for available ad
+/// types.
+/// @param options Additional options configured by the publisher for requesting a native ad. See
+/// GADNativeAdImageAdLoaderOptions.h for available image options.
+/// @param rootViewController Publisher-provided view controller.
+- (void)requestNativeAdWithParameter:(nonnull NSString *)serverParameter
+ request:(nonnull GADCustomEventRequest *)request
+ adTypes:(nonnull NSArray *)adTypes
+ options:(nonnull NSArray *)options
+ rootViewController:(nonnull UIViewController *)rootViewController;
+
+/// Indicates whether the custom event handles user clicks. Return YES if the custom event should
+/// handle user clicks. In this case, the Google Mobile Ads SDK doesn't track user clicks and the
+/// custom event must notify the Google Mobile Ads SDK of clicks using
+/// +[GADMediatedNativeAdNotificationSource mediatedNativeAdDidRecordClick:]. Return NO if the
+/// custom event doesn't handles user clicks. In this case, the Google Mobile Ads SDK tracks user
+/// clicks itself and the custom event is notified of user clicks via -[GADMediatedUnifiedNativeAd
+/// didRecordClickOnAssetWithName:view:viewController:].
+- (BOOL)handlesUserClicks;
+
+/// Indicates whether the custom event handles user impressions tracking. If this method returns
+/// YES, the Google Mobile Ads SDK will not track user impressions and the custom event must notify
+/// the Google Mobile Ads SDK of impressions using +[GADMediatedNativeAdNotificationSource
+/// mediatedNativeAdDidRecordImpression:]. If this method returns NO, the Google Mobile Ads SDK
+/// tracks user impressions and notifies the custom event of impressions using
+/// -[GADMediatedUnifiedNativeAd didRecordImpression].
+- (BOOL)handlesUserImpressions;
+
+@end
diff --git a/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADCustomEventNativeAdDelegate.h b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADCustomEventNativeAdDelegate.h
new file mode 100755
index 0000000..bb67d66
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADCustomEventNativeAdDelegate.h
@@ -0,0 +1,26 @@
+//
+// GADCustomEventNativeAdDelegate.h
+// Google Mobile Ads SDK
+//
+// Copyright 2015 Google LLC. All rights reserved.
+//
+
+#import
+#import
+#import
+
+/// The delegate of the GADCustomEventNativeAd object must adopt the GADCustomEventNativeAdDelegate
+/// protocol. Methods in this protocol are used for native ad's custom event communication with the
+/// Google Mobile Ads SDK.
+@protocol GADCustomEventNativeAdDelegate
+
+/// Tells the delegate that the custom event ad request failed.
+- (void)customEventNativeAd:(nonnull id)customEventNativeAd
+ didFailToLoadWithError:(nonnull NSError *)error;
+
+/// Tells the delegate that the custom event ad request succeeded and loaded a unified native ad.
+- (void)customEventNativeAd:(nonnull id)customEventNativeAd
+ didReceiveMediatedUnifiedNativeAd:
+ (nonnull id)mediatedUnifiedNativeAd;
+
+@end
diff --git a/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADCustomEventParameters.h b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADCustomEventParameters.h
new file mode 100755
index 0000000..3ad2ad4
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADCustomEventParameters.h
@@ -0,0 +1,14 @@
+//
+// GADCustomEventParameters.h
+// Google Mobile Ads SDK
+//
+// Copyright 2016 Google LLC. All rights reserved.
+//
+
+#import
+#import
+
+/// Key for getting the server parameter configured in AdMob when mediating to a custom event
+/// adapter.
+/// Example: NSString *serverParameter = connector.credentials[GADCustomEventParametersServer].
+GAD_EXTERN NSString *_Nonnull const GADCustomEventParametersServer;
diff --git a/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADCustomEventRequest.h b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADCustomEventRequest.h
new file mode 100755
index 0000000..da7fed1
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADCustomEventRequest.h
@@ -0,0 +1,47 @@
+//
+// GADCustomEventRequest.h
+// Google Mobile Ads SDK
+//
+// Copyright 2012 Google LLC. All rights reserved.
+//
+
+#import
+#import
+
+@class GADCustomEventExtras;
+
+/// Specifies optional ad request targeting parameters that are provided by the publisher and are
+/// forwarded to custom events for purposes of populating an ad request to a 3rd party ad network.
+@interface GADCustomEventRequest : NSObject
+
+/// If the user's latitude, longitude, and accuracy are not specified, userHasLocation returns NO,
+/// and userLatitude, userLongitude, and userLocationAccuracyInMeters return 0.
+@property(nonatomic, readonly, assign) BOOL userHasLocation;
+
+/// User's latitude set in GADRequest.
+@property(nonatomic, readonly, assign) CGFloat userLatitude;
+
+/// User's longitude set in GADRequest.
+@property(nonatomic, readonly, assign) CGFloat userLongitude;
+
+/// The accuracy, in meters, of the user's location data.
+@property(nonatomic, readonly, assign) CGFloat userLocationAccuracyInMeters;
+
+/// Description of the user's location, in free form text, set in GADRequest. If not available,
+/// returns nil. This may be set even if userHasLocation is NO.
+@property(nonatomic, readonly, copy, nullable) NSString *userLocationDescription;
+
+/// Keywords set in GADRequest. Returns nil if no keywords are set.
+@property(nonatomic, readonly, copy, nullable) NSArray *userKeywords;
+
+/// The additional parameters set by the application. This property allows you to pass additional
+/// information from your application to your Custom Event object. To do so, create an instance of
+/// GADCustomEventExtras to pass to GADRequest -registerAdNetworkExtras:. The instance should have
+/// an NSDictionary set for a particular custom event label. That NSDictionary becomes the
+/// additionalParameters here.
+@property(nonatomic, readonly, copy, nullable) NSDictionary *additionalParameters;
+
+/// Indicates whether the testing property has been set in GADRequest.
+@property(nonatomic, readonly, assign) BOOL isTesting;
+
+@end
diff --git a/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADCustomNativeAd.h b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADCustomNativeAd.h
new file mode 100755
index 0000000..758198f
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADCustomNativeAd.h
@@ -0,0 +1,97 @@
+//
+// GADCustomNativeAd.h
+// Google Mobile Ads SDK
+//
+// Copyright 2015 Google LLC. All rights reserved.
+//
+
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+
+/// Native ad custom click handler block. |assetID| is the ID of asset that has received a click.
+typedef void (^GADNativeAdCustomClickHandler)(NSString *_Nonnull assetID);
+
+/// Asset key for the GADMediaView asset view.
+GAD_EXTERN NSString *_Nonnull const GADCustomNativeAdMediaViewKey;
+
+@protocol GADCustomNativeAdDelegate;
+
+/// Custom native ad. To request this ad type, you need to pass
+/// GADAdLoaderAdTypeCustomNative (see GADAdLoaderAdTypes.h) to the |adTypes| parameter
+/// in GADAdLoader's initializer method. If you request this ad type, your delegate must conform to
+/// the GADCustomNativeAdLoaderDelegate protocol.
+@interface GADCustomNativeAd : NSObject
+
+/// The ad's format ID.
+@property(nonatomic, readonly, nonnull) NSString *formatID;
+
+/// Array of available asset keys.
+@property(nonatomic, readonly, nonnull) NSArray *availableAssetKeys;
+
+/// Custom click handler. Set this property only if this ad is configured with a custom click
+/// action, otherwise set it to nil. If this property is set to a non-nil value, the ad's built-in
+/// click actions are ignored and |customClickHandler| is executed when a click on the asset is
+/// received.
+@property(atomic, copy, nullable) GADNativeAdCustomClickHandler customClickHandler;
+
+/// The display ad measurement associated with this ad.
+@property(nonatomic, readonly, nullable) GADDisplayAdMeasurement *displayAdMeasurement;
+
+/// Media content.
+@property(nonatomic, readonly, nonnull) GADMediaContent *mediaContent;
+
+/// Optional delegate to receive state change notifications.
+@property(nonatomic, weak, nullable) id delegate;
+
+/// Reference to a root view controller that is used by the ad to present full screen content after
+/// the user interacts with the ad. The root view controller is most commonly the view controller
+/// displaying the ad.
+@property(nonatomic, weak, nullable) UIViewController *rootViewController;
+
+/// Information about the ad response that returned the ad.
+@property(nonatomic, readonly, nonnull) GADResponseInfo *responseInfo;
+
+/// Returns the native ad image corresponding to the specified key or nil if the image is not
+/// available.
+- (nullable GADNativeAdImage *)imageForKey:(nonnull NSString *)key;
+
+/// Returns the string corresponding to the specified key or nil if the string is not available.
+- (nullable NSString *)stringForKey:(nonnull NSString *)key;
+
+/// Call when the user clicks on the ad. Provide the asset key that best matches the asset the user
+/// interacted with. If this ad is configured with a custom click action, ensure the receiver's
+/// customClickHandler property is set before calling this method.
+- (void)performClickOnAssetWithKey:(nonnull NSString *)assetKey;
+
+/// Call when the ad is displayed on screen to the user. Can be called multiple times. Only the
+/// first impression is recorded.
+- (void)recordImpression;
+
+/// Returns media view for rendering video loaded by the receiver. Returns nil if receiver doesn't
+/// have a video.
+@property(nonatomic, readonly, nullable) GADMediaView *mediaView GAD_DEPRECATED_MSG_ATTRIBUTE(
+ "Use the mediaContent property to set the media content on your own GADMediaView.");
+
+@end
+
+#pragma mark - Loading Protocol
+
+/// The delegate of a GADAdLoader object implements this protocol to receive
+/// GADCustomNativeAd ads.
+@protocol GADCustomNativeAdLoaderDelegate
+
+/// Called when requesting an ad. Asks the delegate for an array of custom native ad format ID
+/// strings.
+- (nonnull NSArray *)customNativeAdFormatIDsForAdLoader:(nonnull GADAdLoader *)adLoader;
+
+/// Tells the delegate that a custom native ad was received.
+- (void)adLoader:(nonnull GADAdLoader *)adLoader
+ didReceiveCustomNativeAd:(nonnull GADCustomNativeAd *)customNativeAd;
+
+@end
diff --git a/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADCustomNativeAdDelegate.h b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADCustomNativeAdDelegate.h
new file mode 100755
index 0000000..7cbc8d9
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADCustomNativeAdDelegate.h
@@ -0,0 +1,43 @@
+//
+// GADCustomNativeAdDelegate.h
+// Google Mobile Ads SDK
+//
+// Copyright 2015 Google LLC. All rights reserved.
+//
+
+#import
+
+@class GADCustomNativeAd;
+
+/// Identifies native ad assets.
+@protocol GADCustomNativeAdDelegate
+
+@optional
+
+#pragma mark Ad Lifecycle Events
+
+/// Called when an impression is recorded for a custom native ad.
+- (void)customNativeAdDidRecordImpression:(nonnull GADCustomNativeAd *)nativeAd;
+
+/// Called when a click is recorded for a custom native ad.
+- (void)customNativeAdDidRecordClick:(nonnull GADCustomNativeAd *)nativeAd;
+
+#pragma mark Click-Time Lifecycle Notifications
+
+/// Called just before presenting the user a full screen view, such as a browser, in response to
+/// clicking on an ad. Use this opportunity to stop animations, time sensitive interactions, etc.
+///
+/// Normally the user looks at the ad, dismisses it, and control returns to your application with
+/// the customNativeAdDidDismissScreen: message. However, if the user hits the Home button or clicks
+/// on an App Store link, your application will end. The next method called will be the
+/// applicationWillResignActive: of your UIApplicationDelegate object.
+- (void)customNativeAdWillPresentScreen:(nonnull GADCustomNativeAd *)nativeAd;
+
+/// Called just before dismissing a full screen view.
+- (void)customNativeAdWillDismissScreen:(nonnull GADCustomNativeAd *)nativeAd;
+
+/// Called just after dismissing a full screen view. Use this opportunity to restart anything you
+/// may have stopped as part of customNativeAdWillPresentScreen:.
+- (void)customNativeAdDidDismissScreen:(nonnull GADCustomNativeAd *)nativeAd;
+
+@end
diff --git a/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADDebugOptionsViewController.h b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADDebugOptionsViewController.h
new file mode 100755
index 0000000..f692109
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADDebugOptionsViewController.h
@@ -0,0 +1,32 @@
+//
+// GADDebugOptionsViewController.h
+// Google Mobile Ads SDK
+//
+// Copyright 2016 Google LLC. All rights reserved.
+//
+
+#import
+#import
+
+@class GADDebugOptionsViewController;
+
+/// Delegate for the GADDebugOptionsViewController.
+@protocol GADDebugOptionsViewControllerDelegate
+
+/// Called when the debug options flow is finished.
+- (void)debugOptionsViewControllerDidDismiss:(nonnull GADDebugOptionsViewController *)controller;
+
+@end
+
+/// Displays debug options to the user.
+@interface GADDebugOptionsViewController : UIViewController
+
+/// Creates and returns a GADDebugOptionsViewController object initialized with the ad unit ID.
+/// @param adUnitID An ad unit ID for the Google Ad Manager account that is being configured with
+/// debug options.
++ (nonnull instancetype)debugOptionsViewControllerWithAdUnitID:(nonnull NSString *)adUnitID;
+
+/// Delegate for the debug options view controller.
+@property(nonatomic, weak, nullable) IBOutlet id delegate;
+
+@end
diff --git a/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADDisplayAdMeasurement.h b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADDisplayAdMeasurement.h
new file mode 100755
index 0000000..097ef7f
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADDisplayAdMeasurement.h
@@ -0,0 +1,23 @@
+//
+// GADDisplayAdMeasurement.h
+// Google Mobile Ads SDK
+//
+// Copyright 2019 Google LLC. All rights reserved.
+//
+
+#import
+#import
+
+/// Measurement used for display custom native ad formats.
+@interface GADDisplayAdMeasurement : NSObject
+
+/// Ad view used to measure viewability. This property can be modified before or after starting
+/// display ad measurement. Must be accessed on the main thread.
+@property(nonatomic, weak, nullable) UIView *view;
+
+/// Starts OMID viewability measurement for display ads. Returns whether OMID viewability was
+/// started and sets |error| if unable to start. Once started, all subsequent calls return YES and
+/// have no effect. Must be called on the main thread.
+- (BOOL)startWithError:(NSError *_Nullable *_Nullable)error;
+
+@end
diff --git a/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADDynamicHeightSearchRequest.h b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADDynamicHeightSearchRequest.h
new file mode 100755
index 0000000..b4ec12e
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADDynamicHeightSearchRequest.h
@@ -0,0 +1,163 @@
+//
+// GADDynamicHeightSearchRequest.h
+// GoogleMobileAds
+//
+// Copyright 2016 Google LLC. All rights reserved.
+//
+
+#import
+
+/// Use to configure Custom Search Ad (CSA) ad requests. A dynamic height search banner can contain
+/// multiple ads and the height is set dynamically based on the ad contents. Please cross-reference
+/// the property sections and properties with the official reference document:
+/// https://developers.google.com/custom-search-ads/docs/reference
+@interface GADDynamicHeightSearchRequest : GADRequest
+
+#pragma mark - Page Level Parameters
+
+#pragma mark Required
+
+/// The CSA "query" parameter.
+@property(nonatomic, copy, nullable) NSString *query;
+
+/// The CSA "adPage" parameter.
+@property(nonatomic, assign) NSInteger adPage;
+
+#pragma mark Configuration Settings
+
+/// Indicates whether the CSA "adTest" parameter is enabled.
+@property(nonatomic, assign) BOOL adTestEnabled;
+
+/// The CSA "channel" parameter.
+@property(nonatomic, copy, nullable) NSString *channel;
+
+/// The CSA "hl" parameter.
+@property(nonatomic, copy, nullable) NSString *hostLanguage;
+
+#pragma mark Layout and Styling
+
+/// The CSA "colorLocation" parameter.
+@property(nonatomic, copy, nullable) NSString *locationExtensionTextColor;
+
+/// The CSA "fontSizeLocation" parameter.
+@property(nonatomic, assign) CGFloat locationExtensionFontSize;
+
+#pragma mark Ad Extensions
+
+/// Indicates whether the CSA "clickToCall" parameter is enabled.
+@property(nonatomic, assign) BOOL clickToCallExtensionEnabled;
+
+/// Indicates whether the CSA "location" parameter is enabled.
+@property(nonatomic, assign) BOOL locationExtensionEnabled;
+
+/// Indicates whether the CSA "plusOnes" parameter is enabled.
+@property(nonatomic, assign) BOOL plusOnesExtensionEnabled;
+
+/// Indicates whether the CSA "sellerRatings" parameter is enabled.
+@property(nonatomic, assign) BOOL sellerRatingsExtensionEnabled;
+
+/// Indicates whether the CSA "siteLinks" parameter is enabled.
+@property(nonatomic, assign) BOOL siteLinksExtensionEnabled;
+
+#pragma mark - Unit Level Parameters
+
+#pragma mark Required
+
+/// The CSA "width" parameter.
+@property(nonatomic, copy, nullable) NSString *CSSWidth;
+
+/// Configuration Settings
+
+/// The CSA "number" parameter.
+@property(nonatomic, assign) NSInteger numberOfAds;
+
+#pragma mark Font
+
+/// The CSA "fontFamily" parameter.
+@property(nonatomic, copy, nullable) NSString *fontFamily;
+
+/// The CSA "fontFamilyAttribution" parameter.
+@property(nonatomic, copy, nullable) NSString *attributionFontFamily;
+
+/// The CSA "fontSizeAnnotation" parameter.
+@property(nonatomic, assign) CGFloat annotationFontSize;
+
+/// The CSA "fontSizeAttribution" parameter.
+@property(nonatomic, assign) CGFloat attributionFontSize;
+
+/// The CSA "fontSizeDescription" parameter.
+@property(nonatomic, assign) CGFloat descriptionFontSize;
+
+/// The CSA "fontSizeDomainLink" parameter.
+@property(nonatomic, assign) CGFloat domainLinkFontSize;
+
+/// The CSA "fontSizeTitle" parameter.
+@property(nonatomic, assign) CGFloat titleFontSize;
+
+#pragma mark Color
+
+/// The CSA "colorAdBorder" parameter.
+@property(nonatomic, copy, nullable) NSString *adBorderColor;
+
+/// The CSA "colorAdSeparator" parameter.
+@property(nonatomic, copy, nullable) NSString *adSeparatorColor;
+
+/// The CSA "colorAnnotation" parameter.
+@property(nonatomic, copy, nullable) NSString *annotationTextColor;
+
+/// The CSA "colorAttribution" parameter.
+@property(nonatomic, copy, nullable) NSString *attributionTextColor;
+
+/// The CSA "colorBackground" parameter.
+@property(nonatomic, copy, nullable) NSString *backgroundColor;
+
+/// The CSA "colorBorder" parameter.
+@property(nonatomic, copy, nullable) NSString *borderColor;
+
+/// The CSA "colorDomainLink" parameter.
+@property(nonatomic, copy, nullable) NSString *domainLinkColor;
+
+/// The CSA "colorText" parameter.
+@property(nonatomic, copy, nullable) NSString *textColor;
+
+/// The CSA "colorTitleLink" parameter.
+@property(nonatomic, copy, nullable) NSString *titleLinkColor;
+
+#pragma mark General Formatting
+
+/// The CSA "adBorderSelections" parameter.
+@property(nonatomic, copy, nullable) NSString *adBorderCSSSelections;
+
+/// The CSA "adjustableLineHeight" parameter.
+@property(nonatomic, assign) CGFloat adjustableLineHeight;
+
+/// The CSA "attributionSpacingBelow" parameter.
+@property(nonatomic, assign) CGFloat attributionBottomSpacing;
+
+/// The CSA "borderSelections" parameter.
+@property(nonatomic, copy, nullable) NSString *borderCSSSelections;
+
+/// Indicates whether the CSA "noTitleUnderline" parameter is enabled.
+@property(nonatomic, assign) BOOL titleUnderlineHidden;
+
+/// Indicates whether the CSA "titleBold" parameter is enabled.
+@property(nonatomic, assign) BOOL boldTitleEnabled;
+
+/// The CSA "verticalSpacing" parameter.
+@property(nonatomic, assign) CGFloat verticalSpacing;
+
+#pragma mark Ad Extensions
+
+/// Indicates whether the CSA "detailedAttribution" parameter is enabled.
+@property(nonatomic, assign) BOOL detailedAttributionExtensionEnabled;
+
+/// Indicates whether the CSA "longerHeadlines" parameter is enabled.
+@property(nonatomic, assign) BOOL longerHeadlinesExtensionEnabled;
+
+/// The CSA "styleId" parameter.
+@property(nonatomic, copy, nullable) NSString *styleID;
+
+/// Sets an advanced option value for a specified key. The value must be an NSString or NSNumber.
+- (void)setAdvancedOptionValue:(nonnull id)value forKey:(nonnull NSString *)key;
+
+@end
diff --git a/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADExtras.h b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADExtras.h
new file mode 100755
index 0000000..724a841
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADExtras.h
@@ -0,0 +1,17 @@
+//
+// GADExtras.h
+// Google Mobile Ads SDK
+//
+// Copyright 2012 Google LLC. All rights reserved.
+//
+
+#import
+#import
+
+/// Ad network extras sent to Google networks.
+@interface GADExtras : NSObject
+
+/// Additional parameters to be sent to Google networks.
+@property(nonatomic, copy, nullable) NSDictionary *additionalParameters;
+
+@end
diff --git a/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADFullScreenContentDelegate.h b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADFullScreenContentDelegate.h
new file mode 100755
index 0000000..8c6e8ee
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADFullScreenContentDelegate.h
@@ -0,0 +1,49 @@
+//
+// GADFullScreenContentDelegate.h
+// Google Mobile Ads SDK
+//
+// Copyright 2020 Google LLC. All rights reserved.
+//
+
+#import
+
+@protocol GADFullScreenContentDelegate;
+
+/// Protocol for ads that present full screen content.
+@protocol GADFullScreenPresentingAd
+
+/// Delegate object that receives full screen content messages.
+@property(nonatomic, weak, nullable) id fullScreenContentDelegate;
+
+@end
+
+/// Delegate methods for receiving notifications about presentation and dismissal of full screen
+/// content. Full screen content covers your application's content. The delegate may want to pause
+/// animations or time sensitive interactions. Full screen content may be presented in the following
+/// cases:
+/// 1. A full screen ad is presented.
+/// 2. An ad interaction opens full screen content.
+@protocol GADFullScreenContentDelegate
+
+@optional
+
+/// Tells the delegate that an impression has been recorded for the ad.
+- (void)adDidRecordImpression:(nonnull id)ad;
+
+/// Tells the delegate that a click has been recorded for the ad.
+- (void)adDidRecordClick:(nonnull id)ad;
+
+/// Tells the delegate that the ad failed to present full screen content.
+- (void)ad:(nonnull id)ad
+ didFailToPresentFullScreenContentWithError:(nonnull NSError *)error;
+
+/// Tells the delegate that the ad presented full screen content.
+- (void)adDidPresentFullScreenContent:(nonnull id)ad;
+
+/// Tells the delegate that the ad will dismiss full screen content.
+- (void)adWillDismissFullScreenContent:(nonnull id)ad;
+
+/// Tells the delegate that the ad dismissed full screen content.
+- (void)adDidDismissFullScreenContent:(nonnull id)ad;
+
+@end
diff --git a/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADInitializationStatus.h b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADInitializationStatus.h
new file mode 100755
index 0000000..a208443
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADInitializationStatus.h
@@ -0,0 +1,39 @@
+//
+// GADInitializationStatus.h
+// Google Mobile Ads SDK
+//
+// Copyright 2018 Google LLC. All rights reserved.
+//
+
+#import
+
+typedef NS_ENUM(NSInteger, GADAdapterInitializationState) {
+ /// The mediation adapter is less likely to fill ad requests.
+ GADAdapterInitializationStateNotReady = 0,
+ /// The mediation adapter is ready to service ad requests.
+ GADAdapterInitializationStateReady = 1
+};
+
+/// An immutable snapshot of a mediation adapter's initialization status.
+@interface GADAdapterStatus : NSObject
+
+/// Initialization state of the adapter.
+@property(nonatomic, readonly) GADAdapterInitializationState state;
+
+/// Detailed description of the status.
+@property(nonatomic, readonly, nonnull) NSString *description;
+
+/// The adapter's initialization latency in seconds. 0 if initialization has not yet ended.
+@property(nonatomic, readonly) NSTimeInterval latency;
+
+@end
+
+/// An immutable snapshot of the Google Mobile Ads SDK's initialization status, categorized by
+/// mediation adapter.
+@interface GADInitializationStatus : NSObject
+/// Initialization status of each ad network available to the Google Mobile Ads SDK, keyed by its
+/// GADMAdapter's class name. The list of available ad networks may be incomplete during early
+/// phases of SDK initialization.
+@property(nonatomic, readonly, nonnull)
+ NSDictionary *adapterStatusesByClassName;
+@end
diff --git a/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADInterstitialAd.h b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADInterstitialAd.h
new file mode 100755
index 0000000..d9f0ff8
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADInterstitialAd.h
@@ -0,0 +1,62 @@
+//
+// GADInterstitialAd.h
+// Google Mobile Ads SDK
+//
+// Copyright 2020 Google LLC. All rights reserved.
+//
+
+#import
+#import
+
+#import
+#import
+#import
+#import
+#import
+
+@class GADInterstitialAd;
+
+/// A block to be executed when the ad request operation completes. On success,
+/// interstitialAd is non-nil and |error| is nil. On failure, interstitialAd is nil
+/// and |error| is non-nil.
+typedef void (^GADInterstitialAdLoadCompletionHandler)(GADInterstitialAd *_Nullable interstitialAd,
+ NSError *_Nullable error);
+
+/// An interstitial ad. This is a full-screen advertisement shown at natural transition points in
+/// your application such as between game levels or news stories. See
+/// https://developers.google.com/admob/ios/interstitial to get started.
+@interface GADInterstitialAd : NSObject
+
+/// The ad unit ID.
+@property(nonatomic, readonly, nonnull) NSString *adUnitID;
+
+/// Information about the ad response that returned the ad.
+@property(nonatomic, readonly, nonnull) GADResponseInfo *responseInfo;
+
+/// Delegate for handling full screen content messages.
+@property(nonatomic, weak, nullable) id fullScreenContentDelegate;
+
+/// Called when the ad is estimated to have earned money. Available for allowlisted accounts only.
+@property(nonatomic, nullable, copy) GADPaidEventHandler paidEventHandler;
+
+/// Loads an interstitial ad.
+///
+/// @param adUnitID An ad unit ID created in the AdMob or Ad Manager UI.
+/// @param request An ad request object. If nil, a default ad request object is used.
+/// @param completionHandler A handler to execute when the load operation finishes or times out.
++ (void)loadWithAdUnitID:(nonnull NSString *)adUnitID
+ request:(nullable GADRequest *)request
+ completionHandler:(nonnull GADInterstitialAdLoadCompletionHandler)completionHandler;
+
+/// Returns whether the interstitial ad can be presented from the provided root view
+/// controller. Sets the error out parameter if the ad can't be presented. Must be called on the
+/// main thread.
+- (BOOL)canPresentFromRootViewController:(nonnull UIViewController *)rootViewController
+ error:(NSError *_Nullable __autoreleasing *_Nullable)error;
+
+/// Presents the interstitial ad. Must be called on the main thread.
+///
+/// @param rootViewController A view controller to present the ad.
+- (void)presentFromRootViewController:(nonnull UIViewController *)rootViewController;
+
+@end
diff --git a/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADMediaAspectRatio.h b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADMediaAspectRatio.h
new file mode 100755
index 0000000..eba2b9b
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADMediaAspectRatio.h
@@ -0,0 +1,22 @@
+//
+// GADMediaAspectRatio.h
+// Google Mobile Ads SDK
+//
+// Copyright 2019 Google LLC. All rights reserved.
+//
+
+#import
+
+/// Media aspect ratio.
+typedef NS_ENUM(NSInteger, GADMediaAspectRatio) {
+ /// Unknown media aspect ratio.
+ GADMediaAspectRatioUnknown = 0,
+ /// Any media aspect ratio.
+ GADMediaAspectRatioAny = 1,
+ /// Landscape media aspect ratio.
+ GADMediaAspectRatioLandscape = 2,
+ /// Portrait media aspect ratio.
+ GADMediaAspectRatioPortrait = 3,
+ /// Close to square media aspect ratio. This is not a strict 1:1 aspect ratio.
+ GADMediaAspectRatioSquare = 4
+};
diff --git a/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADMediaContent.h b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADMediaContent.h
new file mode 100755
index 0000000..e039e68
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADMediaContent.h
@@ -0,0 +1,40 @@
+//
+// GADMediaContent.h
+// Google Mobile Ads SDK
+//
+// Copyright 2019 Google LLC. All rights reserved.
+//
+
+#import
+#import
+
+/// Provides media content information. Interact with instances of this class on the main queue
+/// only.
+@interface GADMediaContent : NSObject
+
+/// Controls the media content's video.
+@property(nonatomic, readonly, nonnull) GADVideoController *videoController;
+
+/// Indicates whether the media content has video content.
+@property(nonatomic, readonly) BOOL hasVideoContent;
+
+/// Media content aspect ratio (width/height). The value is 0 when there's no media content or the
+/// media content aspect ratio is unknown.
+@property(nonatomic, readonly) CGFloat aspectRatio;
+
+/// The video's duration in seconds or 0 if there's no video or the duration is unknown.
+@property(nonatomic, readonly) NSTimeInterval duration;
+
+/// The video's current playback time in seconds or 0 if there's no video or the current playback
+/// time is unknown.
+@property(nonatomic, readonly) NSTimeInterval currentTime;
+
+@end
+
+@interface GADMediaContent (NativeAd)
+
+/// The main image to be displayed when the media content doesn't contain video. Only available to
+/// native ads.
+@property(nonatomic, nullable) UIImage *mainImage;
+
+@end
diff --git a/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADMediaView.h b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADMediaView.h
new file mode 100755
index 0000000..2a8a6c5
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADMediaView.h
@@ -0,0 +1,29 @@
+//
+// GADMediaView.h
+// Google Mobile Ads SDK
+//
+// Copyright 2019 Google LLC. All rights reserved.
+//
+
+#import
+#import
+
+/// Displays native ad media content.
+///
+/// To display media content in GADNativeAdView instances, add a GADMediaView subview,
+/// assign the native ad view's mediaView property, and set the native ad's mediaContent property to
+/// the media view.
+///
+/// If the native ad contains video content, the media view displays the video content.
+///
+/// If the native ad doesn't have video content and image loading is enabled, the media view
+/// displays the first image from the native ad's |images| property.
+///
+/// If the native ad doesn't have video content and image loading is disabled, the media view is
+/// empty.
+@interface GADMediaView : UIView
+
+/// The media content displayed in the media view.
+@property(nonatomic, nullable) GADMediaContent *mediaContent;
+
+@end
diff --git a/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADMobileAds.h b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADMobileAds.h
new file mode 100755
index 0000000..b004686
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADMobileAds.h
@@ -0,0 +1,96 @@
+//
+// GADMobileAds.h
+// Google Mobile Ads SDK
+//
+// Copyright 2015 Google LLC. All rights reserved.
+//
+
+#import
+#import
+
+#import
+#import
+#import
+
+/// A block called with the initialization status when [GADMobileAds startWithCompletionHandler:]
+/// completes or times out.
+typedef void (^GADInitializationCompletionHandler)(GADInitializationStatus *_Nonnull status);
+
+/// Completion handler for presenting Ad Inspector. Returns an error if a problem was detected
+/// during presentation, or nil otherwise.
+typedef void (^GADAdInspectorCompletionHandler)(NSError *_Nullable error);
+
+/// Google Mobile Ads SDK settings.
+@interface GADMobileAds : NSObject
+
+/// Returns the shared GADMobileAds instance.
++ (nonnull GADMobileAds *)sharedInstance;
+
+/// Returns the version of the SDK.
+@property(nonatomic, nonnull, readonly) NSString *sdkVersion;
+
+/// The application's audio volume. Affects audio volumes of all ads relative to other audio output.
+/// Valid ad volume values range from 0.0 (silent) to 1.0 (current device volume). Use this method
+/// only if your application has its own volume controls (e.g., custom music or sound effect
+/// volumes). Defaults to 1.0.
+@property(nonatomic, assign) float applicationVolume;
+
+/// Indicates whether the application's audio is muted. Affects initial mute state for all ads. Use
+/// this method only if your application has its own volume controls (e.g., custom music or sound
+/// effect muting). Defaults to NO.
+@property(nonatomic, assign) BOOL applicationMuted;
+
+/// Manages the Google Mobile Ads SDK's audio and video settings.
+@property(nonatomic, readonly, strong, nonnull) GADAudioVideoManager *audioVideoManager;
+
+/// Request configuration that is common to all requests.
+@property(nonatomic, readonly, strong, nonnull) GADRequestConfiguration *requestConfiguration;
+
+/// Initialization status of the ad networks available to the Google Mobile Ads SDK.
+@property(nonatomic, nonnull, readonly) GADInitializationStatus *initializationStatus;
+
+/// Returns YES if the current SDK version is at least |major|.|minor|.|patch|. This method can be
+/// used by libraries that depend on a specific minimum version of the Google Mobile Ads SDK to warn
+/// developers if they have an incompatible version.
+///
+/// Available in Google Mobile Ads SDK 7.10 and onwards. Before calling this method check if the
+/// GADMobileAds's shared instance responds to this method. Calling this method on a Google Mobile
+/// Ads SDK lower than 7.10 can crash the app.
+- (BOOL)isSDKVersionAtLeastMajor:(NSInteger)major minor:(NSInteger)minor patch:(NSInteger)patch;
+
+/// Starts the Google Mobile Ads SDK. Call this method as early as possible to reduce latency on the
+/// session's first ad request. Calls completionHandler when the GMA SDK and all mediation networks
+/// are fully set up or if set-up times out. The Google Mobile Ads SDK starts on the first ad
+/// request if this method is not called.
+- (void)startWithCompletionHandler:(nullable GADInitializationCompletionHandler)completionHandler;
+
+/// Disables automated SDK crash reporting. If not called, the SDK records the original exception
+/// handler if available and registers a new exception handler. The new exception handler only
+/// reports SDK related exceptions and calls the recorded original exception handler.
+- (void)disableSDKCrashReporting;
+
+/// Disables mediation adapter initialization during initialization of the GMA SDK. Calling this
+/// method may negatively impact your ad performance and should only be called if you will not use
+/// GMA SDK controlled mediation during this app session. This method must be called before
+/// initializing the GMA SDK or loading ads and has no effect once the SDK has been initialized.
+- (void)disableMediationInitialization;
+
+/// Presents Ad Inspector. The device calling this API must be registered as a test device in order
+/// to launch Ad Inspector. Set
+/// GADMobileAds.sharedInstance.requestConfiguration.testDeviceIdentifiers to enable test mode on
+/// this device.
+/// @param viewController A view controller to present Ad Inspector.
+/// @param completionHandler A handler to execute when Ad Inspector is closed.
+- (void)presentAdInspectorFromViewController:(nonnull UIViewController *)viewController
+ completionHandler:
+ (nullable GADAdInspectorCompletionHandler)completionHandler;
+
+#pragma mark Deprecated
+
+/// Deprecated and does nothing. IAP transaction reporting is no longer supported.
+- (void)disableAutomatedInAppPurchaseReporting GAD_DEPRECATED_ATTRIBUTE;
+
+/// Deprecated and does nothing. IAP transaction reporting is no longer supported.
+- (void)enableAutomatedInAppPurchaseReporting GAD_DEPRECATED_ATTRIBUTE;
+
+@end
diff --git a/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADMultipleAdsAdLoaderOptions.h b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADMultipleAdsAdLoaderOptions.h
new file mode 100755
index 0000000..152a51e
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADMultipleAdsAdLoaderOptions.h
@@ -0,0 +1,23 @@
+//
+// GADMultipleAdsAdLoaderOptions.h
+// Google Mobile Ads SDK
+//
+// Copyright 2017 Google LLC. All rights reserved.
+//
+
+#import
+
+/// Ad loader options for requesting multiple ads. Requesting multiple ads in a single request is
+/// currently only available for native app install ads and native content ads.
+@interface GADMultipleAdsAdLoaderOptions : GADAdLoaderOptions
+
+/// Number of ads the GADAdLoader should attempt to return for the request. By default, numberOfAds
+/// is one. Requests are invalid and will fail if numberOfAds is less than one. If numberOfAds
+/// exceeds the maximum limit (5), only the maximum number of ads are requested.
+///
+/// The ad loader makes at least one and up to numberOfAds calls to the "ad received" and
+/// -didFailToReceiveAdWithError: methods found in GADAdLoaderDelegate and its extensions, followed
+/// by a single call to -adLoaderDidFinishLoading: once loading is finished.
+@property(nonatomic) NSInteger numberOfAds;
+
+@end
diff --git a/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADMuteThisAdReason.h b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADMuteThisAdReason.h
new file mode 100755
index 0000000..6172be5
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADMuteThisAdReason.h
@@ -0,0 +1,16 @@
+//
+// GADMuteThisAdReason.h
+// Google Mobile Ads SDK
+//
+// Copyright 2018 Google LLC. All rights reserved.
+//
+
+#import
+
+/// Reason for muting the ad.
+@interface GADMuteThisAdReason : NSObject
+
+/// Text that describes the reason for muting this ad. For example "Ad Covered Content".
+@property(nonatomic, readonly, nonnull) NSString *reasonDescription;
+
+@end
diff --git a/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADNativeAd+ConfirmationClick.h b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADNativeAd+ConfirmationClick.h
new file mode 100755
index 0000000..ad9d4de
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADNativeAd+ConfirmationClick.h
@@ -0,0 +1,28 @@
+//
+// GADNativeAd+ConfirmationClick.h
+// Google Mobile Ads SDK
+//
+// Copyright 2017 Google LLC. All rights reserved.
+//
+
+#import
+#import
+#import
+#import
+
+@interface GADNativeAd (ConfirmedClick)
+
+/// Unconfirmed click delegate.
+@property(nonatomic, weak, nullable) id
+ unconfirmedClickDelegate;
+
+/// Registers a view that will confirm the click.
+- (void)registerClickConfirmingView:(nullable UIView *)view;
+
+/// Cancels the unconfirmed click. Call this method when the user fails to confirm the click.
+/// Calling this method causes the SDK to stop tracking clicks on the registered click confirming
+/// view and invokes the -nativeAdDidCancelUnconfirmedClick: delegate method. If no unconfirmed
+/// click is in progress, this method has no effect.
+- (void)cancelUnconfirmedClick;
+
+@end
diff --git a/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADNativeAd+CustomClickGesture.h b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADNativeAd+CustomClickGesture.h
new file mode 100755
index 0000000..8d4df3d
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADNativeAd+CustomClickGesture.h
@@ -0,0 +1,22 @@
+//
+// GADNativeAd+CustomClickGesture.h
+// Google Mobile Ads SDK
+//
+// Copyright 2018 Google LLC. All rights reserved.
+//
+
+#import
+
+@interface GADNativeAd (CustomClickGesture)
+
+/// Indicates whether the custom click gestures feature can be used.
+@property(nonatomic, readonly, getter=isCustomClickGestureEnabled) BOOL customClickGestureEnabled;
+
+/// Enables custom click gestures. Must be called before the ad is associated with an ad view.
+/// Available for allowlisted accounts only.
+- (void)enableCustomClickGestures;
+
+/// Records a click triggered by a custom click gesture.
+- (void)recordCustomClickGesture;
+
+@end
diff --git a/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADNativeAd.h b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADNativeAd.h
new file mode 100755
index 0000000..4a65661
--- /dev/null
+++ b/plugins/2018.3326/universal/GoogleMobileAds.framework/Headers/GADNativeAd.h
@@ -0,0 +1,144 @@
+//
+// GADNativeAd.h
+// Google Mobile Ads SDK
+//
+// Copyright 2017 Google LLC. All rights reserved.
+//
+
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import