diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..e43b0f9
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+.DS_Store
diff --git a/BRLMPrinterKit.podspec b/BRLMPrinterKit.podspec
new file mode 100644
index 0000000..018543f
--- /dev/null
+++ b/BRLMPrinterKit.podspec
@@ -0,0 +1,14 @@
+Pod::Spec.new do |s|
+ s.name = "BRLMPrinterKit"
+ s.version = "4.3.1"
+ s.summary = "Brother Print SDK for iPhone/iPad"
+ s.description = "For sample projects and more detailed product page, check out: http://www.brother.com/product/dev/mobile/ios/"
+ s.homepage = "http://www.brother.com/product/dev/mobile/ios/"
+ s.license = { :type => "CUSTOM" }
+ s.author = "Brother Industries, Ltd."
+ s.platform = :ios, "9.0"
+ s.source = { :git => "https://github.com/lipka/BRLMPrinterKit.git", :tag => s.version }
+ s.ios.vendored_frameworks = 'Frameworks/BRLMPrinterKit.xcframework'
+ s.frameworks = "SystemConfiguration", "UIKit", "CoreBluetooth", "ExternalAccessory", "BRLMPrinterKit"
+ s.library = "c++", "z"
+end
diff --git a/BRPtouchPrinterKit.podspec b/BRPtouchPrinterKit.podspec
index 3fbab09..b431de4 100644
--- a/BRPtouchPrinterKit.podspec
+++ b/BRPtouchPrinterKit.podspec
@@ -15,8 +15,8 @@ Pod::Spec.new do |s|
# summary should be tweet-length, and the description more in depth.
#
- s.name = "BRPtouchPrinterKit"
- s.version = "3.1.9"
+ s.name = "BRLMPrinterKit"
+ s.version = "4.3.1"
s.summary = "Brother Print SDK for iPhone/iPad."
s.description = <<-DESC
@@ -60,7 +60,7 @@ Pod::Spec.new do |s|
#
# s.platform = :ios
- s.platform = :ios, "6.0"
+ s.platform = :ios, "10.0"
# When using multiple platforms
# s.ios.deployment_target = "5.0"
@@ -73,7 +73,7 @@ Pod::Spec.new do |s|
# Supports git, hg, bzr, svn and HTTP.
#
- s.source = { :git => "https://github.com/envoy/BRPtouchPrinterKit.git", :tag => "3.1.9" }
+ s.source = { :git => "https://github.com/envoy/BRPtouchPrinterKit.git", :tag => s.version }
# ――― Source Code ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
@@ -84,7 +84,7 @@ Pod::Spec.new do |s|
# Not including the public_header_files will make all headers public.
#
- s.ios.vendored_frameworks = 'Frameworks/BRPtouchPrinterKit.framework'
+ s.ios.vendored_frameworks = 'Frameworks/BRLMPrinterKit.xcframework'
# s.public_header_files = "Classes/**/*.h"
@@ -110,8 +110,8 @@ Pod::Spec.new do |s|
#
# s.framework = "SomeFramework"
- s.frameworks = "SystemConfiguration", "CFNetwork", "UIKit", "Foundation", "CoreGraphics", "ExternalAccessory", "BRPtouchPrinterKit"
-
+ s.frameworks = "SystemConfiguration", "UIKit", "CoreBluetooth", "ExternalAccessory", "BRLMPrinterKit"
+ s.library = "c++", "z"
# s.library = "iconv"
# s.libraries = "iconv", "xml2"
diff --git a/Frameworks/BRLMPrinterKit.xcframework/Info.plist b/Frameworks/BRLMPrinterKit.xcframework/Info.plist
new file mode 100644
index 0000000..d7bb4b5
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/Info.plist
@@ -0,0 +1,42 @@
+
+
+
+
+ AvailableLibraries
+
+
+ LibraryIdentifier
+ ios-arm64_armv7
+ LibraryPath
+ BRLMPrinterKit.framework
+ SupportedArchitectures
+
+ arm64
+ armv7
+
+ SupportedPlatform
+ ios
+
+
+ LibraryIdentifier
+ ios-arm64_i386_x86_64-simulator
+ LibraryPath
+ BRLMPrinterKit.framework
+ SupportedArchitectures
+
+ arm64
+ i386
+ x86_64
+
+ SupportedPlatform
+ ios
+ SupportedPlatformVariant
+ simulator
+
+
+ CFBundlePackageType
+ XFWK
+ XCFrameworkFormatVersion
+ 1.0
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/BRLMPrinterKit b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/BRLMPrinterKit
new file mode 100755
index 0000000..eedca6f
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/BRLMPrinterKit differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/BluetoothViewController.nib b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/BluetoothViewController.nib
new file mode 100644
index 0000000..b0278da
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/BluetoothViewController.nib differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/CutterViewController.nib b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/CutterViewController.nib
new file mode 100644
index 0000000..547b49e
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/CutterViewController.nib differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/ExtraFeedViewController.nib b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/ExtraFeedViewController.nib
new file mode 100644
index 0000000..2ece443
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/ExtraFeedViewController.nib differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/GenericMobileLabelModelPaperSizeViewController.nib b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/GenericMobileLabelModelPaperSizeViewController.nib
new file mode 100644
index 0000000..cac03dc
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/GenericMobileLabelModelPaperSizeViewController.nib differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BMSPrinterDriver.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BMSPrinterDriver.h
new file mode 100755
index 0000000..d4eede7
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BMSPrinterDriver.h
@@ -0,0 +1,727 @@
+//
+// BMSPrinterDriver.h
+// BMSPrinterKit
+//
+// Created by BMS on 10/2/12.
+// Copyright (c) 2012 Brother Mobile Solutions, Inc. All rights reserved.
+//
+
+#import
+#import
+#import // for UIViewController definition
+
+#ifndef REMOVE_BRPTOUCH_SDK
+// NOTE: This is now preprocessor definition in the RemoveBRPtouchSDK version of the project.
+
+// NOTE: We can NOT use the following "framework" syntax here (i.e. )
+// However, we CAN use the "BRPtouchPrinterKit.h" syntax, since we have added the BIL SDK .h
+// files to our project.
+//#import
+#import "BRPtouchPrinterKit.h"
+
+#endif
+
+#import "PrintSettings.h"
+
+//*** NOTIFICATIONS
+// Register for these if you wish to receive notifications for the following messages.
+// Typically, you will only want to register for these if you are creating your own Custom Progress View.
+
+// *************************************************************************************
+// 1. Use this notification instead of sendData return value if you are making a Progress ViewController.
+// With PJ7 printers, especially PJ-763MFi, "sendDataToChannel" may not return immediately on the final band,
+// because it needs to check printer status to wait for the page to be printed before more data can be sent.
+// This notification will be sent as soon as the data has been sent, allowing you to update your Progress GUI quicker.
+// NOTE: KEY_BYTESWRITTEN is used when processing the SENDDATA notification.
+// NOTE: If you are creating a ProgressView, this notification will work with ALL print APIs, even "simple" ones.
+// So, it's recommended to use this instead of the return value of "sendDataToChannel". Refer to CustomProgress in SDK Sample.
+#define NOTIFICATION_SENDDATA @"SendDataNotification"
+#define NOTIFICATION_SENDDATA_KEY_BYTESWRITTEN @"Bytes Written"
+// *************************************************************************************
+
+// *************************************************************************************
+// 2. MFi Bluetooth models MUST process STATUS RESPONSES for each page BEFORE sending data for the next page.
+// This is being done to fix problems related to data handshake that cause Apple to disconnect the MFi device.
+// The status response will not come until the page has been printed, which may take some time.
+//
+// This notification lets you know when this event occurs, in case you are creating a custom progress and want
+// to inform the user. Even though you probably already know this will happen, the sendDataToChannel API will not return
+// until the status response has been received. So, this notification allows you to update your Progress GUI
+// at the moment this event occurs.
+//
+// * NOTE: SDK 2.1 decided NOT to send this notification for RJ-4030Ai (and other new RJ models). So, it is only being sent for PJ-763MFi.
+//
+// The main reason why is that RJ4 pages typically send AND print much faster than PJ pages because they are shorter,
+// particularly if you are printing labels. So, if you are printing a large batch of labels, then the progress GUI
+// (at least the one built-in to the SDK) looks strange when processing this message, because it spends most of its
+// time showing this message, instead of some potentially more valuable messages for the user.
+
+// Also, RJ models will always be using Roll Paper (continuous or labels), so it is not necessary (typically) to remind user to insert paper
+// for each page, like it is for PJ users who use Cutsheet paper.
+//
+// So, a better approach for RJ4 may be to add other notifications instead of this one, as we read them.
+// This could allow sending notifications if various errors occur DURING printing, such as "Cover Open",
+// "No Paper", "Printer Overheat", "Low Battery", etc.
+//
+// TODO: Add these new notifications. These could be applicable with PJ763Mfi too, but only if we enable the
+// unsolicited status responses.
+//
+#define NOTIFICATION_WAITING_FOR_STATUSRESPONSE @"WaitStatusResponseNotification"
+// *************************************************************************************
+
+// *************************************************************************************
+// 3. Use NOTIFICATION_PRINTER_STATUS to receive notifications about printer status issues while printing,
+// such as "cooling on/off", "coverOpen", "paperOut", etc.
+// Refer to CustomProgressView in SDK Sample App for example of how to process this notification.
+// The "userInfo" will contain Dictionary with 1 key/value pair.
+// * Use KEY_STATUSNUMBER (NSNumber object) to process the notification.
+//
+// *** IMPORTANT NOTE: For now, this notification is ONLY supported for the BLUETOOTH channel, since it's the only channel
+// that can read printer status for the "unsolicited" responses. In the future, this might be applicable for WIFI.
+#define NOTIFICATION_PRINTER_STATUS @"PrinterStatusNotification"
+#define NOTIFICATION_PRINTER_STATUS_KEY_STATUSNUMBER @"Status Number"
+
+//*** Possible values returned for KEY_STATUSNUMBER
+// These values are sent to Apps that register for NOTIFICATION_PRINTER_STATUS notifications.
+// These values are defined arbitrarily and have no correspondence to the values returned in PTSTATUSINFO.
+// NOTE: Not all status responses will generate a notification. And, not all are supported for each printer and channel.
+// And, you are not required to handle all or any of them.
+
+#define NOTIFICATION_PRINTER_STATUSNUMBER_COOLING_BEGIN 2001
+#define NOTIFICATION_PRINTER_STATUSNUMBER_COOLING_END 2002
+#define NOTIFICATION_PRINTER_STATUSNUMBER_MEDIAEMPTY_BEGIN 2003
+#define NOTIFICATION_PRINTER_STATUSNUMBER_COVEROPEN_BEGIN 2004
+#define NOTIFICATION_PRINTER_STATUSNUMBER_WAITINGFORPEELER_BEGIN 2005 // only sent for printers with peeler available and enabled.
+
+// NOTE: MEDIAEMPTY, COVEROPEN, and WAITINGFORPEELER do NOT have a corresponding "_END" notification.
+// The main reason is that the printers don't generate an "unsolicited" status response notification for these "end" conditions.
+// These conditions can be detected internally, but it's not useful for an app because it requires sending another page(s) of data.
+//
+// --------------------------------
+// With MEDIAEMPTY and COVEROPEN:
+// --------------------------------
+// In a multi-page job, the RJ/TD printers continue to receive data and send status responses indicating that printing is successful.
+// Only on the LAST page of a job does the printer WAIT to send "printing completed" status.
+// So, as long as the job doesn't overflow the internal buffer, the printer can receive all the data for the job before
+// you insert paper or close the cover. Then, if cover is closed or media inserted, printing should complete NORMALLY!!
+// This is why they are NOT being treated as "fatal errors". And, for this reason, you may not even need to handle these notifications.
+//
+// The concerns are:
+// a) a statusResponseTimeout error could occur before media is changed after the final page of data has been sent.
+// So, the print API return code will indicate error.
+// But, everything should print OK anyway after you close the cover or insert more paper.
+// b) If too many pages are sent after the error occurs, the printer's internal buffer may fill up which could cause a "fatal" error.
+//
+// If you wish o prevent these concerns, you will have to use the "Manual APIs".
+//
+// Here is an algorithm that may be useful:
+// 1. When you receive the notification, set a flag indicating mediaEmpty or coverOpen.
+// 2. If flag is set, STOP sending data at the BEGINNING of a page
+// 3."Poll" the printer status manually using "getPTStatus", and check the appropriate bits in the status response
+// to determine when the condition goes away.
+// 4. Allow user to cancel, in case there's a problem with the "polling".
+//
+// Refer to the Custom Progress View in SDK Sample App for an example.
+//
+// --------------------------------
+// With WAITINGFORPEELER:
+// --------------------------------
+// There is no reason to check for the "end" notification anyway, because "sendDataToChannel" will not return
+// until after the label is peeled (or a timeout occurs). But, you can use the "begin" notification to post
+// a notice to users as a reminder they need to peel.
+//
+// *************************************************************************************
+
+
+//*** Used to assure that the CGBitmap is 32-pixel aligned
+// NOTE: Need to cast the division result to (int) in case a float type
+// is passed in for x so we get the expected truncation.
+#define ALIGN32(x) ((int)((x+31)/32) * 32)
+
+// *************************************************************************************
+//*** API Function Possible Return Codes ***
+
+#ifndef REMOVE_BRPTOUCH_SDK
+// NOTE: This is now a preprocessor definition in the RemoveBRPtouchSDK version of the project.
+
+// NOTE: Some API functions will return values defined in BRPtouchPrinter.h,
+// such as RET_TRUE, RET_FALSE, ERROR_TIMEOUT, etc.
+// For clarity, the return codes defined in this module will begin at -1000.
+
+#else
+// When BRPtouch SDK is removed, we need to define these constants.
+
+#define RET_FALSE 0
+#define RET_TRUE 1
+#define ERROR_TIMEOUT -3
+
+#endif
+
+#define RET_PARAMETER_ERROR -1000
+#define RET_FILEPATHURL_ERROR -1001
+#define RET_PDFPAGE_ERROR -1002
+#define RET_PRINTSETTINGS_ERROR -1003
+#define RET_PARENTVIEW_ERROR -1004
+#define RET_DATABUFFER_ERROR -1005
+#define RET_PRINTERMODEL_ERROR -1006
+
+// Channel related errors
+// These are generic for EACH channel (WIFI, BT, FILE)
+#define RET_CHANNEL_NOTOPEN_ERROR -1007 // if use Manual APIs on channel that has not been opened successfully
+#define RET_CHANNEL_CREATE_ERROR -1008 // if error creating WIFI/FILE streams or BluetoothSessionController. Memory related.
+#define RET_CHANNEL_WRITE_ERROR -1009 // error occurred while writing data, such as if channel disconnected
+#define RET_CHANNEL_READ_ERROR -1010 // error occurred while reading data, such as if channel disconnected
+
+// This is used only by WIFI and FILE channel.
+// In previous SDKs, RET_CHANNEL_CREATEERROR was used instead, but now we differentiate between these cases.
+// NOTE: With WIFI channel especially, this can occur when user tries to start a job too quickly after a failure.
+// Generally, using "isPrinterReady" API before calling openChannel can avoid this.
+#define RET_CHANNEL_STREAMSTATUS_ERROR -1011
+
+// These are used only for BT channel
+#define RET_BLUETOOTHCHANNEL_NOCONNECTEDPRINTERS_ERROR -1012 // No BT printers are connected
+#define RET_BLUETOOTHCHANNEL_CHANNELDISCONNECTED_ERROR -1013 // BT Session disconnected while sending data
+#define RET_BLUETOOTHCHANNEL_OPENSESSION_ERROR -1014 // unable to open EASession
+// Added this in SDK 2.1.0 to allow distinguishing this from ERROR_TIMEOUT. Only applicable for MFi models.
+// This error may occur if all data was sent successfully for a page, but the SDK timed out waiting for
+// a status response from the printer, which may occur if paper is not inserted on time to print the whole page
+// before the "statusReponseTimeout" has been reached.
+#define RET_BLUETOOTHCHANNEL_STATUSTIMEOUT_ERROR -1015
+
+// These are also only used with BT channel, since it's currently the only Bi-Di channel.
+// However, these are generally related to errors received when processing printer status.
+// So, in case WIFI is ever able to be Bi-Di, let's use a more generic name for these #define constants
+#define RET_PRINTERSTATUS_ERROR_PRINTERTURNEDOFF -1016
+#define RET_PRINTERSTATUS_ERROR_BATTERYWEAK -1017
+#define RET_PRINTERSTATUS_ERROR_EXPANSIONBUFFERFULL -1018
+#define RET_PRINTERSTATUS_ERROR_COMMUNICATIONERROR -1019
+#define RET_PRINTERSTATUS_ERROR_OVERHEATINGERROR -1020
+#define RET_PRINTERSTATUS_ERROR_MEDIACANNOTBEFED -1021 // This is different from media empty. Treated as an error.
+#define RET_PRINTERSTATUS_ERROR_UNKNOWNERROR -1022 // If status response processor gets unhandled error
+
+
+// *************************************************************************************
+
+
+// *************************************************************************************
+// SENDDATAMODE - new parameter added to "sendDataToChannel" and "sendNSDataToChannel".
+//
+// With Bluetooth Printers, it is REQUIRED to know EXACTLY when the FORM FEED command occurs in the data stream.
+//
+// NOTE: By "Form Feed", this means "the last byte(s) of data sent for a PAGE of data", which cause it to
+// print the page.
+// * for PJ models, this typically means "Esc ~ \0C" or "Esc ^ \0C"
+// * for RJ/TD models, this typically means "\1A" or "\0C".
+//
+// The reason is that BT printers typically send several "status" responses while printing a page.
+// In some cases, the printer will NOT ACCEPT DATA until the page completes printing.
+// And, with Bluetooth MFi, Apple will SHUT DOWN THE CONNECTION if it cannot send data to the printer within
+// about 5 seconds. Yet, Apple seems to take the data in some cases before it reports FALSE for "hasSpaceAvailable".
+// As such, there seems to be a TIMING PROBLEM with either the Printer Firmware or Apple's EASession, or both!!
+// So, we need to AVOID sending data to Apple when the printer will stop accepting it.
+//
+// So the "sendDataToChannel" and "sendNSDataToChannel" APIs need to know when the printer will begin printing a
+// page, so we can stop sending data until all the status responses have been processed.
+//
+// NOTE: WIFI models do NOT send status responses over Port9100 connections.
+// So, it is not possible to handle them in the same way as required with Bluetooth models.
+// In this SDK, status is being IGNORED with WIFI connections. But, in the future, it may be necessary to handle it
+// a different way. So, even WIFI models MAY benefit from this new option eventually.
+//
+// Options:
+// 1. kSendDataMode_NoFormFeed:
+// * This buffer of data does NOT contain a form feed.
+// * So, all bytes will be sent and the method will return immediately (as soon as possible)
+//
+// 2. kSendDataMode_FormFeedAtEnd:
+// * This buffer DOES contain a form feed, and this is at the END of the buffer.
+// * NOTE: This can normally be determined easily, since this will be the last buffer of data for the page,
+// where the data was generated by one of the "generatePrintData" APIs below.
+// * So, the sendDataXX methods will process the printer status before returning.
+// * WARNING: Do not use this mode if you generate/send your own ZPL/CPCL/ESCP data!! Some printers (RJ4030Ai at least)
+// do not send status responses except for Raster Mode data.
+//
+// 3. kSendDataMode_FormFeedIndeterminate:
+// * This buffer MAY OR MAY NOT contain a form feed, and it could be anywhere in the buffer.
+// * So, the code may "search" the data buffer to see if it contains the Form Feed, if applicable.
+// * NOTE: Since PJ models contain a 3-byte FormFeed command, it is possible to find it. However, since
+// other models only have a 1-byte command, it is not practical to try to find the byte in the data,
+// because it could be a valid byte of actual PRINT data, NOT a command byte. It is impossible to
+// distinguish without writing a full parser.
+// So, only PJ763 will treat this differently than the "NoFormFeed" option.
+// * NOTE: However, even with PJ, it is possible for the print data to RANDOMLY contain the 3-bytes as PRINT DATA.
+// If this occurs, it WILL cause a PROBLEM.
+// * NOTE: This case is mostly applicable when sending multiple page PRN data, such as with one of the
+// "sendFile" APIs.
+//
+// * We recommend NOT using this option, if it is at all possible to avoid it.
+//
+// Generally, the SDK will handle this internally for the "Simple APIs", e.g. "printPDFFilePathURL".
+// So, you the ISV will only need to care about this when you are using the "Manual APIs".
+//
+// We recommend using options 1 and 2 only if you are using Manual APIs to send PDF or IMAGE data.
+// However, for PRN data, particularly in a FILE, it may be necessary to use option 3 ("Indeterminate").
+//
+// WARNING: If your app generates its own PRN data (e.g. ESC/P, ZPL, CPCL, etc) which you use with "sendDataToChannel",
+// you might think you can use option 1,2 instead of option 3. However, **DO NOT USE** Option 2 ("FormFeedAtEnd")
+// with RJ4030Ai, unless data is "Raster Mode". Unfortunately, the printer does NOT send "unsolicited status" responses
+// for ESC/P, ZPL, CPCL, etc. So, the SDK will lock up waiting for status responses that will never come, and this will
+// result in a STATUSTIMEOUT_ERROR.
+//
+// Refer to SDK Sample App code for more details of how to use this.
+//
+typedef enum
+{
+ kSendDataMode_NoFormFeed=1,
+ kSendDataMode_FormFeedAtEnd,
+ kSendDataMode_FormFeedIndeterminate,
+} SENDDATAMODE;
+// *************************************************************************************
+
+
+@interface BMSPrinterDriver : NSObject
+{
+
+}
+
+//******** Designated Initializers ********
+- (id) initWithPrintSettings:(PrintSettings *)printSettings; // use this for PDF or IMAGE
+- (id) initWithModel:(PRINTERMODEL)theModel; // use this for PRN file/data
+
+//******** Class Properties ********
+@property (nonatomic, assign) PRINTERMODEL printerModel;
+@property (nonatomic, retain) PrintSettings *printSettings;
+
+// Caller MUST set these as appropriate when printing multiple pages (when using the "Manual APIs").
+@property (nonatomic, assign) BOOL isFirstPage;
+@property (nonatomic, assign) BOOL isLastPage;
+
+//*** Optional Properties:
+
+// *************************************************************************************
+// antiAliasMode:
+//
+// This property is now provided to override the (new) default handling of "anti-aliasing".
+// When Anti-Alias is ENABLED, font characters will be "smoothed" by Apple by adding a "light-gray outline".
+// This is Apple's default behavior, and it was our SDK's default behavior in v1.1.1 and earlier.
+//
+// DEFAULT driver behavior (new in SDK 2.0):
+// * If Halftone is kHalftoneDiffusion, anti-alias is DISABLED, because halftoning may produce "stray dots" on
+// characters that can decrease clarity.
+// * If Halftone is kHalftoneThreshold, anti-alias is ENABLED, because Threshold Value can be used to "thicken"
+// the font characters by increasing the Threshold Value, so that the "light-gray outline" is printed BLACK
+// instead of WHITE as it normally does at the default threshold value of 128.
+//
+// In some cases, you might want to force the anti-alias on/off. This property is provided for that purpose.
+//
+// For example, when printing barcodes, generally you will want to use Threshold halftone because Diffusion
+// could make them unreadable. However, with AntiAlias ENABLED, it could result in thicker bars which MAY
+// confuse a barcode reader. If that happens, then you should force AntiAliasing to be disabled.
+//
+// Another example: some pixels in the anti-alias "gray outline" might be darker gray than the Threshold Value,
+// which would result in "stray dots". So, you could DISABLE anti-alias in this case to remove these
+// stray dots, but then modifying Threshold Value would have NO effect in "thickening" the text characters.
+//
+// In most cases, it is a very subtle change, and most users will not notice the difference either way.
+// But, we are providing this property as an option to an ISV just in case it will be required.
+typedef enum
+{
+ kAntiAliasMode_UseDriverDefault=1,
+ kAntiAliasMode_ForceEnabled,
+ kAntiAliasMode_ForceDisabled,
+} ANTIALIASMODE;
+@property (nonatomic, assign) ANTIALIASMODE antiAliasMode;
+// *************************************************************************************
+
+
+// *************************************************************************************
+// interpolationQuality - Added at SDK 2.3.0
+// Previous SDKs did not set a value when drawing the PDF/Image on the CGContext.
+// So, presumably it was using "kCGInterpolationDefault".
+// However, recent tests indicate that using "kCGInterpolationNone" can produce better quality
+// output, especially when using ErrorDiffusion. So, "none" will be the new default.
+// If ISV notices any problems in output quality with the new SDK, this property is provided to
+// allow you to change this setting to one of the other values.
+// NOTE: Not adding a new enum as we did with ANTIALIASMODE, since Apple already provides one.
+@property (nonatomic, assign) CGInterpolationQuality interpolationQuality;
+// *************************************************************************************
+
+
+// *************************************************************************************
+// statusResponseTimeout:
+//
+// Timeout for Status Response - applicable for MFi (Bluetooth) printer models only.
+// In case STATUS_RESPONSE_TIMEOUT_DEFAULT is not sufficient, we provide this property to allow ISV to change it.
+//
+// Quick Summary:
+// * The value of statusResponseTimeout should be large enough to handle the AMOUNT OF TIME it takes to print a WORST CASE
+// page. The response(s) do not come until the page completes printing.
+// * So, you should consider "WORST CASE" as follows:
+// - page has a lot of graphics, paper may not be inserted, print head overheats while printing the page, etc.
+//
+//
+// IMPORTANT: If you do wish to set this, set it BEFORE calling "openChannel" (if using "Manual APIs") or BEFORE any of the
+// "simple APIs" (e.g. "printPDFFilePathURL").
+// Also, this ONLY applies DURING printing. It does not affect the "getPTStatus" API.
+//
+// NOTES:
+// * This timeout is applicable only when "sendDataToChannel" is called with the kSendDataMode_FormFeedAtEnd, or if
+// kSendDataMode_FormFeedIndeterminate (and SDK code detects that a form feed exists in the data).
+// Since all APIs use this function, it is important to understand this.
+// * Well, it is also applicable if kCloseBluetoothChannelFlushMode_UseStatusRequest is enabled.
+//
+// * PJ763Mfi handles this by sending a status request command and then waiting for the printer response, which does not
+// arrive until the page has completed printing.
+// * RJ4030Ai handles this by reading responses that the printer sends automatically, without sending the request.
+// The final response does not arrive until the page has nearly completed printing.
+// Because these responses come only in Raster Mode, do NOT set "FormFeedAtEnd" unless you are sending Raster mode data.
+//
+// * Bluetooth models seems to require this to avoid what seems to be an Apple Bug with "handshaking" when printing
+// MULTIPLE PAGE jobs, especially with PJ763MFi. This printer will stop taking data for next page while the previous
+// page is being printed. However, the outputStream in EASession does not stop taking data on time.
+// So, if you write to EASession outputStream, but EASession cannot write to the printer within about 5 seconds,
+// then Apple shuts down the MFi connection. So, to get around this problem, the SDK performs this status check
+// between each page.
+
+#define STATUS_RESPONSE_TIMEOUT_DEFAULT 60.0 // max # seconds we wait for a response from printer, by default
+@property (nonatomic, assign) CFTimeInterval statusResponseTimeout;
+// *************************************************************************************
+
+
+// *************************************************************************************
+// closeBluetoothChannelFlushMode:
+//
+// This property will affect only the "closeChannel" API (used by all printing APIs) for the MFi printers only.
+// It is provided JUST IN CASE you run into a problem where Apple disconnects the Bluetooth device, or if all the data
+// seems to have been sent correctly, but the printer doesn't print anything and needs to be power-cycled.
+// If the Bluetooth channel (EASession) is closed before Apple sends all of the data to the printer, one of the two
+// problems mentioned above might occur.
+//
+// 1. kCloseBluetoothChannelFlushMode_UsePrinterDefault (DEFAULT)
+// Each printer model will initialize this to the setting that works best for that model.
+// Choose one of the other settings to override the SDK's default value.
+//
+// 2. kCloseBluetoothChannelFlushMode_None
+// The channel is closed immediately.
+// Because we added the "Status Check" at the END of each page, as determined by kSendDataMode_FormFeedAtEnd,
+// this now seems to work correctly in most cases for RASTER MODE data (PDF, IMAGE, and Raster Mode PRN).
+// This is the default setting for PJ763MFi and RJ/TD Series models.
+//
+// 3. kCloseBluetoothChannelFlushMode_UseStatusRequest
+// Send a status request and wait for the response before closing the channel.
+// This was the best solution, until we added the status check at the end of each page, for each MFi model.
+// This assured that all data was sent before closing the channel, otherwise we would not receive the status response.
+// But, now it is redundant (with Image and PDF printing).
+//
+// IMPORTANT: When sending PRN data (ESC/P, ZPL, CPCL, etc) over MFi Bluetooth, you MUST set this UseStatusRequest option!
+// Otherwise, it is highly likely the channel stream will be shut down before all the data has been sent to the printer.
+// This will result in failure to print the final page, and likely Apple will forcefully disconnect the MFi device.
+//
+// 4. kCloseBluetoothChannelFlushMode_UseFixedDelay
+// This was the first solution before we used the status option. But, the delay needed to be quite large (10 sec) to
+// be reliable. However, this adds this much delay every time the channel is closed.
+//
+// While testing this with a 10 page ESC/P PRN file, because we cannot detect each page break in this case to send the status
+// check during printing, we found that Apple will disconnect the printer when we use the "None" option. So, we provide
+// these other options just in case you run into a problem. In most cases, changing the default will NOT be necessary.
+
+typedef enum
+{
+ kCloseBluetoothChannelFlushMode_UsePrinterDefault=0,
+ kCloseBluetoothChannelFlushMode_None,
+ kCloseBluetoothChannelFlushMode_UseStatusRequest,
+ kCloseBluetoothChannelFlushMode_UseFixedDelay,
+} CLOSE_BLUETOOTHCHANNEL_FLUSH_MODE;
+@property (nonatomic, assign) CLOSE_BLUETOOTHCHANNEL_FLUSH_MODE closeBluetoothChannelFlushMode;
+// *************************************************************************************
+
+
+//******** MAIN API FUNCTIONS ********
+
+// *** BRPtouchSDK function WRAPPERS ***
+// NOTE: These methods are now fully implemented in the BMS SDK. They are no longer wrappers.
+
+// wrappers for sendFile and sendFileEx
+- (int) sendFile: (NSString *)filePath
+ channelType: (CHANNELTYPE)channelType
+ channelString:(NSString *)channelString // IPAddress or BTDeviceName
+ timeout:(int)nTimeout;
+
+- (int) sendFileEx: (NSString *)filePath
+ channelType: (CHANNELTYPE)channelType
+ channelString:(NSString *)channelString // IPAddress or BTDeviceName
+ timeout:(int)nTimeout;
+
+// wrappers for sendData and sendDataEx.
+- (int) sendData:(NSData *)printData
+ channelType:(CHANNELTYPE)channelType
+ channelString:(NSString *)channelString // IPAddress or BTDeviceName
+ timeout:(int)nTimeout;
+
+- (int) sendDataEx:(NSData *)printData
+ channelType:(CHANNELTYPE)channelType
+ channelString:(NSString *)channelString // IPAddress or BTDeviceName
+ timeout:(int)nTimeout;
+
+
+// "wrappers" for isPrinterReady and getPTStatus.
+// * isPrinterReady is useful to check for connectivity before attempting to print.
+// * getPTStatus allows to you determine things like the actual connected model, paper inserted, cover open, etc.
+// Refer to the BRPtouchSDK documentation for more details about the format and meaning of the status response.
+
+// TAG: REMOVE_BRPTOUCH_SDK
+// When using the "RemoveBRPtouchSDK" framework, isPrinterReady and getPTStatus are NOT supported
+// for the WIFI channel, because WIFI channel requires using the BRPtouchSDK API.
+// However, for the Bluetooth channel, these functions are implemented internally to the BMS SDK, so you may still
+// use these two APIs.
+
+- (BOOL)isPrinterReady:(PRINTERMODEL)model
+ channelType:(CHANNELTYPE)channelType
+ channelString:(NSString *)channelString; // IPAddress or BTDeviceName
+
+#ifdef REMOVE_BRPTOUCH_SDK
+typedef struct _PTSTATUSINFO {
+ Byte byHead; // Head mark
+ Byte bySize; // Size
+ Byte byBrotherCode; // Brother code
+ Byte bySeriesCode; // Serial code
+ Byte byModelCode; // Model code
+ Byte byNationCode; // Nation code
+ Byte byFiller; // information about cover
+ Byte byFiller2; // Not used
+ Byte byErrorInf; // Error information 1
+ Byte byErrorInf2; // Error information 2
+ Byte byMediaWidth; // Media width
+ Byte byMediaType; // Media type
+ Byte byColorNum; // The number of colors
+ Byte byFont; // Font
+ Byte byJapanesFont; // Japanese font
+ Byte byMode; // Mode
+ Byte byDensity; // Density
+ Byte byMediaLength; // Media Length
+ Byte byStatusType; // Status Type
+ Byte byPhaseType; // Phase type
+ Byte byPhaseNoHi; // Upper bytes of phase number
+ Byte byPhaseNoLow; // Lower bytes of phase number
+ Byte byNoticeNo; // Notice number
+ Byte byExtByteNum; // Total bytes of extended part
+ Byte byLabelColor; // Color of label
+ Byte byFontColor; // Color of font
+ Byte byHardWareSetting[4]; // Settings of hardware
+ Byte byNoUse[2]; // Not Use
+} PTSTATUSINFO, *LPPTSTATUSINFO;
+#endif
+
+- (int) getPTStatus:(PTSTATUSINFO *)status
+ model:(PRINTERMODEL)model
+ channelType:(CHANNELTYPE)channelType
+ channelString:(NSString *)channelString; // IPAddress or BTDeviceName
+
+// note: wrappers for printImage and printPDFAtPath are NOT provided
+
+
+
+//******* BMS new functionality functions **********
+
+//***** Misc Utilities
+- (CGRect) getPrintableRectFromCurrentSettings;
+- (CGRect) getPaperRectFromCurrentSettings;
+
+//********************************************************************************
+// SIMPLE APIs
+//
+// These printing APIs will handle the whole job for you (including openChannel, sendDataToChannel, closeChannel).
+// See also the "Manual APIs", which give you more control of the printing process.
+
+//***** FILE Printing Functions (see also sendFile and sendFileEx above)
+// NOTE: new prototype in SDK 2.0
+- (int) sendFileWithProgressView:(NSURL *)filePathURL
+ channelType:(CHANNELTYPE)channelType
+ channelString:(NSString *)channelString // IPAddress or BTDeviceName
+ copies:(int)numCopies
+ writeTimeout:(NSTimeInterval)timeout
+ usingParentView:(UIViewController *)parentViewController;
+
+//***** PDF Printing Functions (see also Manual APIs below)
+
+// send PDF file without a ProgresView
+// This is a BLOCKING function only
+// NOTE: SDK 1.1.0 changed this prototype to add "copies" and "collate" parameters.
+// NOTE: The "collate" parameter value only matters when printing multiple copies of a multi-page PDF file.
+- (int) printPDFFilePathURL:(NSURL *)filePathURL
+ firstPage:(int)firstPage
+ lastPage:(int)lastPage
+ timeout:(CFTimeInterval)nTimeout
+ copies:(int)copies
+ collate:(BOOL)bCollate;
+
+// send PDF file with a MODAL ProgressView
+// NOTE: new prototype in SDK 2.0
+- (int) printPDFFileWithProgressView:(NSURL *)filePathURL
+ firstPage:(int)firstPage
+ lastPage:(int)lastPage
+ copies:(int)numCopies
+ collate:(BOOL)bCollate
+ writeTimeout:(NSTimeInterval)timeout
+ usingParentView:(UIViewController *)parentViewController;
+
+// Print an ARRAY of NSURLs that reference a PDF file.
+// All pages from EACH PDF file will be printed.
+// NOTE: The same printSettings will apply to EACH PDF file in the array.
+-(int) printPDFURLArray:(NSArray *)array
+ timeout:(CFTimeInterval)nTimeout
+ copies:(int)copies
+ collate:(BOOL)bCollate;
+
+
+//***** Image Printing Functions (see also Manual APIs below)
+// print Image with a MODAL ProgressView
+// NOTE: new prototype in SDK 2.0
+- (int) printCGImageRefWithProgressView:(CGImageRef)imageRef
+ copies:(int)numCopies
+ writeTimeout:(NSTimeInterval)timeout
+ usingParentView:(UIViewController *)parentViewController;
+
+
+
+// Print 1 or more copies of a single image, without a ProgressView.
+// NOTE: The printCGImageRef:blocking:timeout API has been REMOVED in SDK 2.0.0
+// The printCGImageRef:timeout:copies is now used instead.
+// WARNING: Do NOT use this API to send more than 1 image back-to-back.
+// Instead, see printImageURLArray or sendCGImageRefToChannel below.
+- (int) printCGImageRef:(CGImageRef)imageRef
+ timeout:(CFTimeInterval)nTimeout
+ copies:(int)copies;
+
+// Print an ARRAY of NSURLs that reference an IMAGE file, e.g. JPG, PNG, etc
+// NOTE: The same printSettings will apply to EACH image in the array.
+-(int) printImageURLArray:(NSArray *)array
+ timeout:(CFTimeInterval)nTimeout
+ copies:(int)copies;
+
+//********************************************************************************
+// Manual API Control of the Data Channel. These all work together!!
+//
+// NOTE: ALL "Manual API" prototypes have CHANGED in SDK 2.0!!
+// * Previous SDKs only used WIFI channel, so Manual APIs had "WIFI" in the name.
+// * Since SDK 2.0 now supports WIFI and Bluetooth (and also File), the APIs have all been RENAMED!!
+// * But, they are all very similar to the API names in older SDKs.
+//
+// How to use the Manual APIs:
+// 1. You MUST call openChannelWithTimeout (PDF or Image) or openChannelOfType (PRN) first
+// * For PDF/Image, the printSettings property of BMSPrinterDriver class is used to determine channelType/String
+// * For PRN, printSettings are N/A, so channelType/String need to be specified in the openChannelOfType parameters.
+// 2. Call one (or more) of the other APIs for sending print data to the current channel
+// 3. Call closeChannel
+//
+// Advantages to using the Manual APIs compared to the simpler APIs:
+// 1. Sending data this way allows you to send data in bands and display your own progress indicator.
+// 2. You can use different timeouts for openChannel and sending the data. This allows timing out more quickly if
+// (for example) there is a WIFI connection issue (i.e. not connected to the printer, wrong IPAddress, etc.)
+//
+// *** WARNING: PJ7 models will very likely require a LARGER TIMEOUT for SENDING the print data compared to other models,
+// especially when printing MULTIPLE PAGE jobs. PJ7 will STOP accepting data during printing (i.e. when paper is moving).
+// If the print head overheats during printing, the printer will stop printing until the head cools down, which lengthens
+// the amount of time needed for the timeout.
+// * We recommend setting AT LEAST 60 seconds for the SEND timeout when using PJ7 models, unless you know you will only
+// be printing single page jobs or jobs without a significant page coverage.
+// * We strongly recommend that you test a WORST CASE print job to assure that your SEND timeout setting is large enough.
+
+// Use this with PDF/Image. The printSettings property is used to get the channel info.
+- (int) openChannelWithTimeout:(CFTimeInterval)nTimeout;
+
+// Use this with PRN, since printSettings are N/A.
+- (int) openChannelOfType:(CHANNELTYPE)channelType
+ channelString:(NSString *)channelString // IPAddress or BTDeviceName or FilePath (Print to File)
+ timeout:(CFTimeInterval)nTimeout;
+
+// Data Generation APIs for Image and PDF, so you can retrieve the print data to send in any way that you prefer.
+- (int) generatePrintData:(NSMutableData *)printData
+ fromCGImageRef:(CGImageRef)imageRef;
+
+- (int) generatePrintData:(NSMutableData *)printData
+ fromPDFPageRef:(CGPDFPageRef) pdfPageRef;
+
+// NOTE: ALL other "Manual APIs" below use the CHANNELTYPE specified in printSettings or openChannelOfType.
+
+
+// This must be called when finished sending data to the channel opened by openChannelWithTimeout or
+// openChannelOfType
+// TODO: Consider returning "int" code instead of "void". May need to propagate errors that may occur when closing
+// bluetooth channel back to ISV.
+// But, these errors typically will occur only when kCloseBluetoothChannelFlushMode_UseStatusRequest is specified,
+// and this is not currently the default setting for any of the MFi models. So, "void" is OK for now.
+- (void) closeChannel;
+
+// This is the best API to use if you want to make your own progress indicator.
+- (int) sendDataToChannel:(const uint8_t *)data
+ length:(int)length
+ sendDataMode:(SENDDATAMODE)sendDataMode
+ timeout:(CFTimeInterval)nTimeout
+ errorCode:(int *)pErrorCode;
+
+// similar to sendDataToChannel, but easier to use since you don't have to manage the buffer.
+// However, it is not as useful if you wish to make your own progress indicator.
+// NOTE: The data will actually be sent in 16K bands, and the timeout parameter will apply to each band separately.
+- (int) sendNSDataToChannel:(NSData *)data
+ sendDataMode:(SENDDATAMODE)sendDataMode
+ timeout:(CFTimeInterval)nTimeout;
+
+
+// simple manual API to send a CGImageRef to already open channel. Not useful for progress indicator.
+// But, you can use this to print more than 1 image back-to-back.
+- (int) sendCGImageRefToChannel:(CGImageRef)imageRef
+ timeout:(CFTimeInterval)nTimeout
+ copies:(int)copies;
+
+// simple manual API to send a PDF file URL to already open channel. Not useful for progress indicator.
+// But, you can use this to print more than 1 PDF file back-to-back.
+- (int) sendPDFFilePathURLToChannel:(NSURL *)filePathURL
+ firstPage:(int)firstPage
+ lastPage:(int)lastPage
+ timeout:(CFTimeInterval)nTimeout
+ copies:(int)copies
+ collate:(BOOL)bCollate;
+
+// simple manual API to send a PRN file URL to already open channel. Not useful for progress indicator.
+// But, you can use this to print more than 1 PRN file back-to-back.
+- (int) sendPRNFilePathURLToChannel:(NSURL *)filePathURL
+ timeout:(CFTimeInterval)nTimeout;
+
+// Used with Manual APIs to handle possible "Cancel" button on a Custom Progress ViewController, if desired.
+// Sends data to printer to clear out a partial page and eject the paper.
+// NOTE: Only use this with PDF and IMAGE printing. It is N/A when sending PRN data.
+- (int) sendCancelPrintingDataToChannel;
+
+
+// Primarily used for RJ4 MCR reader applications!!
+- (int) readDataFromChannel:(uint8_t *)buffer
+ maxLength:(int)maxLength
+ errorCode:(int *)pErrorCode;
+
+
+// End of the Manual APIs
+//********************************************************************************
+
+@end
+
+/////////////////////////////////////////////////////////////////////////////
+// This defines the DataControllerProtocol that MUST be used for developing
+// new printer drivers for a printer model. The DataControllers are used to
+// generate model-specific print data based on the current printSettings.
+@protocol DataControllerProtocol
+// everything is required!
+@required
+
+// Properties
+@property (nonatomic, assign) BOOL isFirstPage;
+@property (nonatomic, assign) BOOL isLastPage;
+@property (nonatomic, retain) PrintSettings *printSettings;
+
+// Methods
+- (CGRect) getPaperRectFromCurrentSettings;
+- (CGRect) getPrintableRectFromCurrentSettings;
+- (BOOL) generatePrintData: (NSMutableData *)printData fromCGContextRef: (CGContextRef) context;
+- (BOOL) generateCancelPrintingData:(NSMutableData *)printData;
+@end
+/////////////////////////////////////////////////////////////////////////////
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BMSPrinterKit.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BMSPrinterKit.h
new file mode 100755
index 0000000..26d89ae
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BMSPrinterKit.h
@@ -0,0 +1,60 @@
+//
+// BMSPrinterKit.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/6/12.
+// Copyright (c) 2012 Brother Mobile Solutions. All rights reserved.
+//
+
+
+#ifndef REMOVE_BRPTOUCH_SDK
+#import "BRPtouchPrinterKit.h"
+#endif
+
+#import "BMSPrinterDriver.h"
+
+#import "PrintSettings.h"
+#import "GenericPocketJetPrintSettings.h"
+#import "PJ673PrintSettings.h"
+#import "PJ763MFiPrintSettings.h"
+#import "PJ773PrintSettings.h"
+#import "GenericMobileLabelModelPrintSettings.h"
+#import "RJ4030AiPrintSettings.h"
+#import "RJ4040PrintSettings.h"
+#import "RJ4230BPrintSettings.h"
+#import "RJ4250WBPrintSettings.h"
+#import "RJ3050PrintSettings.h"
+#import "RJ3050AiPrintSettings.h"
+#import "RJ3150PrintSettings.h"
+#import "RJ3150AiPrintSettings.h"
+#import "TD2120NPrintSettings.h"
+#import "TD2130NPrintSettings.h"
+#import "RJ2050PrintSettings.h"
+#import "RJ2140PrintSettings.h"
+#import "RJ2150PrintSettings.h"
+#import "TD4550DNWBPrintSettings.h"
+
+#import "PrintSettingsViewController.h"
+#import "GenericPocketJetPrintSettingsViewController.h"
+#import "PJ673PrintSettingsViewController.h"
+#import "PJ763MFiPrintSettingsViewController.h"
+#import "PJ773PrintSettingsViewController.h"
+#import "GenericMobileLabelModelPrintSettingsViewController.h"
+#import "RJ4030AiPrintSettingsViewController.h"
+#import "RJ4040PrintSettingsViewController.h"
+#import "RJ4230BPrintSettingsViewController.h"
+#import "RJ4250WBPrintSettingsViewController.h"
+#import "RJ3050PrintSettingsViewController.h"
+#import "RJ3050AiPrintSettingsViewController.h"
+#import "RJ3150PrintSettingsViewController.h"
+#import "RJ3150AiPrintSettingsViewController.h"
+#import "TD2120NPrintSettingsViewController.h"
+#import "TD2130NPrintSettingsViewController.h"
+#import "RJ2050PrintSettingsViewController.h"
+#import "RJ2140PrintSettingsViewController.h"
+#import "RJ2150PrintSettingsViewController.h"
+#import "TD4550DNWBPrintSettingsViewController.h"
+
+@interface BMSPrinterKit : NSObject
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRCustomPaperInfoCommand.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRCustomPaperInfoCommand.h
new file mode 100644
index 0000000..1f61e08
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRCustomPaperInfoCommand.h
@@ -0,0 +1,107 @@
+//
+// BRCustomPaperInfoCommand.h
+// BRPtouchPrinterKit
+//
+// Copyright (c) 2018 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+@interface BRCustomPaperInfoCommand : NSObject
+
+typedef enum {
+ Inch = 1,
+ Mm = 2
+}UnitOfLengthParameter;
+
+typedef enum {
+ Roll = 1,
+ DieCut = 2,
+ MarkRoll = 3
+}PaperKindParameter;
+
+typedef enum {
+ InternalError = -1,
+ NoErrorParameters = 0,
+ // Basic
+ TapeWidth = 1,
+ TapeLength = 2,
+ RightMargin = 3,
+ LeftMargin = 4,
+ TopMargin = 5,
+ BottomMargin = 6,
+ LabelPitch = 7,
+ MarkPosition = 8,
+ MarkHeight = 9,
+ DisplayName = 10,
+}ErrorParameterName;
+
+typedef enum {
+ NoError = 0,
+ ExceptionError = 1,
+ OverTheUpperLimit = 2,
+ BelowTheLowerLimit = 3,
+ FailToCreateCommand = 4,
+ FailToReadPTDFile = 5,
+}ErrorParameterDetail;
+
+
+// Basic Settings (readonly)
+@property(nonatomic, strong, readonly) NSString *printerName_;
+@property(readonly) float tapeWidth_;
+@property(readonly) float tapeLength_;
+@property(readonly) float rightMargin_;
+@property(readonly) float leftMagin_;
+@property(readonly) float topMargin_;
+@property(readonly) float bottomMargin_;
+@property(readonly) float labelPitch_;
+@property(readonly) float markPosition_;
+@property(readonly) float markHeight_;
+@property(readonly) UnitOfLengthParameter unitOfLengthParameter_;
+@property(readonly) PaperKindParameter paperKindParameter_;
+
+// Advance Settings
+@property(nonatomic, strong) NSString *displayName;
+@property(readwrite) int energyRank;
+@property(readwrite) float dieStartRevPlus;
+@property(readwrite) float dieStartFwdPlus;
+@property(readwrite) float afterFeedPlus;
+@property(readwrite) float mediaSensorSensitivity;
+@property(readwrite) float mediaSensorIntensity;
+
+- (id) initWithPrinterNameForRoll: (NSString *) printerName
+ tapeWidth: (float) tapeWidth
+ rightMargin: (float) rightMargin
+ leftMagin: (float) leftMagin
+ topMargin: (float) topMargin
+ unitOfLength: (UnitOfLengthParameter) unitOfLengthParameter;
+
+- (id) initWithPrinterNameForDieCut: (NSString *) printerName
+ tapeWidth: (float) tapeWidth
+ tapeLength: (float) tapeLength
+ rightMargin: (float) rightMargin
+ leftMagin: (float) leftMagin
+ topMargin: (float) topMargin
+ bottomMargin: (float) bottomMargin
+ labelPitch: (float) labelPitch
+ unitOfLength: (UnitOfLengthParameter) unitOfLengthParameter;
+
+- (id) initWithPrinterNameForMarkRoll: (NSString *) printerName
+ tapeWidth: (float) tapeWidth
+ tapeLength: (float) tapeLength
+ rightMargin: (float) rightMargin
+ leftMagin: (float) leftMagin
+ topMargin: (float) topMargin
+ bottomMargin: (float) bottomMargin
+ markPosition: (float) markPosition
+ markHeight: (float) markHeight
+ unitOfLength: (UnitOfLengthParameter) unitOfLengthParameter;
+
+- (NSData *) getCustomPaperInfoCommandData: (NSMutableArray **)errorArr;
+
+- (NSString *) valueOfErrorParameter:(ErrorParameterName)errorParameterName;
+- (NSString *) valueOfErrorParameterDetail:(ErrorParameterDetail)errorParameterDetail;
+
+@end
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMChannel.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMChannel.h
new file mode 100755
index 0000000..2af3eda
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMChannel.h
@@ -0,0 +1,33 @@
+//
+// BRLMPrinterAddress.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+#import "BRLMPrinterDefine.h"
+
+// Set the "serialNumber" that can be getting from EAAccessory.
+// Or set the "Bluetooth Address" that can be getting from your printer (*by self-printing and so on).
+// Please note that it is NOT the serial number of your Printer.
+typedef NSString BRLMExternalAccessorySerialNumber;
+
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMChannel : NSObject
+
+@property (nonatomic, readonly) BRLMChannelType channelType;
+@property (nonatomic, readonly) NSString *channelInfo;
+
+- (instancetype)initWithWifiIPAddress:(NSString *)ipAddress;
+- (instancetype)initWithBluetoothSerialNumber:(BRLMExternalAccessorySerialNumber *)serialNumber;
+- (instancetype)initWithBLELocalName:(NSString *)localName;
+
+- (instancetype)init __unavailable;
+- (instancetype)copy __unavailable;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMCustomPaperSize.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMCustomPaperSize.h
new file mode 100755
index 0000000..1622e67
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMCustomPaperSize.h
@@ -0,0 +1,69 @@
+//
+// BRLMCustomPaperSize.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+#import "BRLMPrintImageSettings.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+typedef NS_ENUM(NSInteger, BRLMCustomPaperSizeLengthUnit) {
+ BRLMCustomPaperSizeLengthUnitInch,
+ BRLMCustomPaperSizeLengthUnitMm,
+ // BRLMCustomPaperSizeLengthUnitDot,
+};
+
+typedef NS_ENUM(NSInteger, BRLMCustomPaperSizePaperKind) {
+ BRLMCustomPaperSizePaperKindRoll,
+ BRLMCustomPaperSizePaperKindDieCut,
+ BRLMCustomPaperSizePaperKindMarkRoll,
+ BRLMCustomPaperSizePaperKindByFile,
+};
+
+typedef struct
+{
+ CGFloat top;
+ CGFloat left;
+ CGFloat bottom;
+ CGFloat right;
+} BRLMCustomPaperSizeMargins;
+BRLMCustomPaperSizeMargins BRLMCustomPaperSizeMarginsMake(CGFloat top, CGFloat left, CGFloat bottom, CGFloat right);
+
+/// immutable
+@interface BRLMCustomPaperSize : NSObject
+
+- (instancetype) initRollWithTapeWidth:(CGFloat) tapeWidth
+ margins:(BRLMCustomPaperSizeMargins)margins // disable bottomMargin
+ unitOfLength:(BRLMCustomPaperSizeLengthUnit) unit;
+
+- (instancetype) initDieCutWithTapeWidth:(CGFloat) tapeWidth
+ tapeLength:(CGFloat) tapeLength
+ margins:(BRLMCustomPaperSizeMargins)margins
+ gapLength:(CGFloat) gapLength
+ unitOfLength:(BRLMCustomPaperSizeLengthUnit) unit;
+
+- (instancetype) initMarkRollWithTapeWidth:(CGFloat) tapeWidth
+ tapeLength:(CGFloat) tapeLength
+ margins:(BRLMCustomPaperSizeMargins)margins
+ markPosition:(CGFloat) markVerticalOffset
+ markHeight:(CGFloat) markLength
+ unitOfLength:(BRLMCustomPaperSizeLengthUnit) unit;
+
+- (instancetype) initWithFile:(NSURL*)filePath;
+
+@property (nonatomic, readonly) BRLMCustomPaperSizePaperKind paperKind;
+@property (nonatomic, nullable, readonly) NSURL *paperBinFilePath;
+@property (nonatomic, readonly) CGFloat tapeWidth;
+@property (nonatomic, readonly) CGFloat tapeLength;
+@property (nonatomic, readonly) BRLMCustomPaperSizeMargins margins;
+@property (nonatomic, readonly) CGFloat gapLength;
+@property (nonatomic, readonly) CGFloat markVerticalOffset;
+@property (nonatomic, readonly) CGFloat markLength;
+@property (nonatomic, readonly) BRLMCustomPaperSizeLengthUnit unit;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMError.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMError.h
new file mode 100644
index 0000000..7bbc920
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMError.h
@@ -0,0 +1,25 @@
+//
+// BRLMError.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMError : NSObject
+
+- (NSString *)description;
+@property(nonatomic, readonly, copy, nullable) NSString *errorRecoverySuggestion;
+
+@property(nonatomic, readonly, copy, nullable) NSDictionary *errorUserInfo;
+
+
+- (instancetype)init __unavailable;
+- (instancetype)copy __unavailable;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMGetStatusError.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMGetStatusError.h
new file mode 100644
index 0000000..83cc882
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMGetStatusError.h
@@ -0,0 +1,27 @@
+//
+// BRLMGetStatusError.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import "BRLMError.h"
+
+typedef NS_ENUM(NSInteger, BRLMGetStatusErrorCode) {
+ BRLMGetStatusErrorCodeNoError,
+ BRLMGetStatusErrorCodePrinterNotFound,
+ BRLMGetStatusErrorCodeTimeout,
+};
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMGetStatusError : BRLMError
+
+@property(nonatomic, readonly) BRLMGetStatusErrorCode code;
+
+- (instancetype)init __unavailable;
+- (instancetype)copy __unavailable;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMMWPrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMMWPrintSettings.h
new file mode 100755
index 0000000..ad7d24c
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMMWPrintSettings.h
@@ -0,0 +1,35 @@
+//
+// BRLMMWPrintSettings.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import "BRLMPrintSettingsProtocol.h"
+#import "BRLMPrintImageSettings.h"
+
+#import "BRLMCustomPaperSize.h"
+
+typedef float BRLMMWPrintLengthScale;
+
+
+typedef NS_ENUM(NSInteger, BRLMMWPrintSettingsPaperSize) {
+ BRLMMWPrintSettingsPaperSizeA6,
+ BRLMMWPrintSettingsPaperSizeA7,
+};
+
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMMWPrintSettings : NSObject
+
+
+@property (nonatomic, readonly) BRLMMWPrintSettingsPaperSize paperSize;
+
+// override
+- (nullable instancetype)initDefaultPrintSettingsWithPrinterModel:(BRLMPrinterModel)model;
+- (nullable instancetype)copyWithPrinterModel:(BRLMPrinterModel)model;
+@end
+
+
+NS_ASSUME_NONNULL_END
\ No newline at end of file
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMOpenChannelError.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMOpenChannelError.h
new file mode 100755
index 0000000..19b0f20
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMOpenChannelError.h
@@ -0,0 +1,27 @@
+//
+// BRLMOpenChannelError.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import "BRLMError.h"
+
+typedef NS_ENUM(NSInteger, BRLMOpenChannelErrorCode) {
+ BRLMOpenChannelErrorCodeNoError,
+ BRLMOpenChannelErrorCodeOpenStreamFailure,
+ BRLMOpenChannelErrorCodeTimeout,
+};
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMOpenChannelError : BRLMError
+
+@property(nonatomic, readonly) BRLMOpenChannelErrorCode code;
+
+- (instancetype)init __unavailable;
+- (instancetype)copy __unavailable;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMPJPrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMPJPrintSettings.h
new file mode 100755
index 0000000..29f66df
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMPJPrintSettings.h
@@ -0,0 +1,84 @@
+//
+// BRLMPJPrintSettings.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import "BRLMPrintSettingsProtocol.h"
+#import "BRLMPrintImageSettings.h"
+
+#import "BRLMPJPrintSettingsPaperSize.h"
+
+typedef float BRLMPrintSettingsLengthScale;
+
+
+typedef NS_ENUM(NSInteger, BRLMPJPrintSettingsPrintSpeed) {
+ BRLMPJPrintSettingsPrintSpeed2_5inchPerSec,
+ BRLMPJPrintSettingsPrintSpeed1_9inchPerSec,
+ BRLMPJPrintSettingsPrintSpeed1_6inchPerSec,
+ BRLMPJPrintSettingsPrintSpeed1_1inchPerSec,
+};
+
+typedef NS_ENUM(NSInteger, BRLMPJPrintSettingsDensity) {
+ BRLMPJPrintSettingsDensityWeakLevel5,
+ BRLMPJPrintSettingsDensityWeakLevel4,
+ BRLMPJPrintSettingsDensityWeakLevel3,
+ BRLMPJPrintSettingsDensityWeakLevel2,
+ BRLMPJPrintSettingsDensityWeakLevel1,
+ BRLMPJPrintSettingsDensityNeutral,
+ BRLMPJPrintSettingsDensityStrongLevel1,
+ BRLMPJPrintSettingsDensityStrongLevel2,
+ BRLMPJPrintSettingsDensityStrongLevel3,
+ BRLMPJPrintSettingsDensityStrongLevel4,
+ BRLMPJPrintSettingsDensityStrongLevel5,
+ BRLMPJPrintSettingsDensityUsePrinterSetting,
+};
+
+typedef NS_ENUM(NSInteger, BRLMPJPrintSettingsFeedMode) {
+ BRLMPJPrintSettingsFeedModeNoFeed,
+ BRLMPJPrintSettingsFeedModeFixedPage,
+ BRLMPJPrintSettingsFeedModeEndOfPage,
+ BRLMPJPrintSettingsFeedModeEndOfPageRetract,
+};
+
+typedef NS_ENUM(NSInteger, BRLMPJPrintSettingsPaperInsertionPosition) {
+ BRLMPJPrintSettingsPaperInsertionPositionLeft,
+ BRLMPJPrintSettingsPaperInsertionPositionCenter,
+ BRLMPJPrintSettingsPaperInsertionPositionRight,
+};
+
+typedef NS_ENUM(NSInteger, BRLMPJPrintSettingsPaperType) {
+ BRLMPJPrintSettingsPaperTypeRoll,
+ BRLMPJPrintSettingsPaperTypeCutSheet,
+};
+
+typedef NS_ENUM(NSInteger, BRLMPJPrintSettingsRollCase) {
+ BRLMPJPrintSettingsRollCaseNone,
+ BRLMPJPrintSettingsRollCasePARC001_NoAntiCurl,
+ BRLMPJPrintSettingsRollCasePARC001,
+};
+
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMPJPrintSettings : NSObject
+
+
+@property (nonatomic) BRLMPJPrintSettingsPaperSize* paperSize;
+@property (nonatomic) BRLMPJPrintSettingsPaperType paperType;
+@property (nonatomic) BRLMPJPrintSettingsPaperInsertionPosition paperInsertionPosition;
+@property (nonatomic) BRLMPJPrintSettingsFeedMode feedMode;
+@property (nonatomic) BRLMPJPrintSettingsDensity density;
+@property (nonatomic) BRLMPJPrintSettingsRollCase rollCase;
+@property (nonatomic) BRLMPJPrintSettingsPrintSpeed printSpeed;
+@property (nonatomic) BOOL usingCarbonCopyPaper;
+@property (nonatomic) BOOL printDashLine;
+
+// override
+- (nullable instancetype)initDefaultPrintSettingsWithPrinterModel:(BRLMPrinterModel)model;
+- (nullable instancetype)copyWithPrinterModel:(BRLMPrinterModel)model;
+@end
+
+
+NS_ASSUME_NONNULL_END
\ No newline at end of file
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMPJPrintSettingsCustomPaperSize.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMPJPrintSettingsCustomPaperSize.h
new file mode 100644
index 0000000..13114a5
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMPJPrintSettingsCustomPaperSize.h
@@ -0,0 +1,25 @@
+//
+// BRLMPJPrintSettingsCustomPaperSize.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMPJPrintSettingsCustomPaperSize : NSObject
+
+@property (nonatomic, readonly) NSUInteger widthDots;
+@property (nonatomic, readonly) NSUInteger lengthDots;
+@property (nonatomic, readonly) NSUInteger feedDots;
+
+- (instancetype)init __unavailable;
+- (instancetype)copy __unavailable;
+
+- (instancetype)initWithWidthDots:(NSUInteger)width lengthDots:(NSUInteger)length feedDots:(NSUInteger)feed;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMPJPrintSettingsPaperSize.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMPJPrintSettingsPaperSize.h
new file mode 100644
index 0000000..e391d08
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMPJPrintSettingsPaperSize.h
@@ -0,0 +1,35 @@
+//
+// BRLMPJPrintSettingsPaperSize.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+#import "BRLMPJPrintSettingsCustomPaperSize.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+typedef NS_ENUM(NSUInteger, BRLMPJPrintSettingsPaperSizeStandard) {
+ BRLMPJPrintSettingsPaperSizeStandardA4,
+ BRLMPJPrintSettingsPaperSizeStandardLegal,
+ BRLMPJPrintSettingsPaperSizeStandardLetter,
+ BRLMPJPrintSettingsPaperSizeStandardA5,
+ BRLMPJPrintSettingsPaperSizeStandardCustom, // read only
+};
+
+@interface BRLMPJPrintSettingsPaperSize : NSObject
+
+@property (nonatomic, readonly) BRLMPJPrintSettingsPaperSizeStandard paperSizeStandard;
+@property (nonatomic, readonly, nullable) BRLMPJPrintSettingsCustomPaperSize *customPaper;
+
+- (instancetype)init __unavailable;
+- (instancetype)copy __unavailable;
+
+- (instancetype)initWithPaperSizeStandard:(BRLMPJPrintSettingsPaperSizeStandard) paperSizeStandard;
+- (instancetype)initWithCustomPaper:(BRLMPJPrintSettingsCustomPaperSize *)customPaper;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMPTPrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMPTPrintSettings.h
new file mode 100755
index 0000000..efbccb9
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMPTPrintSettings.h
@@ -0,0 +1,53 @@
+//
+// BRLMPTPrintSettings.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import "BRLMPrintSettingsProtocol.h"
+#import "BRLMPrintImageSettings.h"
+
+ typedef NS_ENUM(NSInteger, BRLMPTPrintSettingsLabelSize) {
+ BRLMPTPrintSettingsLabelSizeWidth3_5mm,
+ BRLMPTPrintSettingsLabelSizeWidth6mm,
+ BRLMPTPrintSettingsLabelSizeWidth9mm,
+ BRLMPTPrintSettingsLabelSizeWidth12mm,
+ BRLMPTPrintSettingsLabelSizeWidth18mm,
+ BRLMPTPrintSettingsLabelSizeWidth24mm,
+ BRLMPTPrintSettingsLabelSizeWidth36mm,
+ BRLMPTPrintSettingsLabelSizeWidthHS_5_8mm,
+ BRLMPTPrintSettingsLabelSizeWidthHS_8_8mm,
+ BRLMPTPrintSettingsLabelSizeWidthHS_11_7mm,
+ BRLMPTPrintSettingsLabelSizeWidthHS_17_7mm,
+ BRLMPTPrintSettingsLabelSizeWidthHS_23_6mm,
+ BRLMPTPrintSettingsLabelSizeWidthFL_21x45mm,
+ };
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMPTPrintSettings : NSObject
+
+@property (nonatomic) BRLMPTPrintSettingsLabelSize labelSize;
+@property (nonatomic) BOOL cutmarkPrint;
+@property (nonatomic) BOOL autoCut;
+@property (nonatomic) BOOL halfCut;
+@property (nonatomic) BOOL chainPrint;
+@property (nonatomic) BOOL specialTapePrint;
+@property (nonatomic) BRLMPrintSettingsResolution resolution;
+/**
+Description : Specify the page number in “cut each # labels”
+Range(#) : 1 - 255
+Default : 1
+ */
+@property (nonatomic) UInt8 autoCutForEachPageCount;
+@property (nonatomic) BOOL forceVanishingMargin;
+
+
+// override
+- (nullable instancetype)initDefaultPrintSettingsWithPrinterModel:(BRLMPrinterModel)model;
+- (nullable instancetype)copyWithPrinterModel:(BRLMPrinterModel)model;
+@end
+
+
+NS_ASSUME_NONNULL_END
\ No newline at end of file
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMPrintError.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMPrintError.h
new file mode 100644
index 0000000..0be1854
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMPrintError.h
@@ -0,0 +1,52 @@
+//
+// BRLMPrintError.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import "BRLMError.h"
+
+typedef NS_ENUM(NSInteger, BRLMPrintErrorCode) {
+ BRLMPrintErrorCodeNoError,
+ BRLMPrintErrorCodePrintSettingsError,
+ BRLMPrintErrorCodeFilepathURLError,
+ BRLMPrintErrorCodePDFPageError,
+ BRLMPrintErrorCodePrintSettingsNotSupportError,
+ BRLMPrintErrorCodeDataBufferError,
+ BRLMPrintErrorCodePrinterModelError,
+ BRLMPrintErrorCodeCanceled,
+ BRLMPrintErrorCodeChannelTimeout,
+ BRLMPrintErrorCodeSetModelError,
+ BRLMPrintErrorCodeUnsupportedFile,
+ BRLMPrintErrorCodeSetMarginError,
+ BRLMPrintErrorCodeSetLabelSizeError,
+ BRLMPrintErrorCodeCustomPaperSizeError,
+ BRLMPrintErrorCodeSetLengthError,
+ BRLMPrintErrorCodeTubeSettingError,
+ BRLMPrintErrorCodeChannelErrorStreamStatusError,
+ BRLMPrintErrorCodeChannelErrorUnsupportedChannel,
+ BRLMPrintErrorCodePrinterStatusErrorPaperEmpty,
+ BRLMPrintErrorCodePrinterStatusErrorCoverOpen,
+ BRLMPrintErrorCodePrinterStatusErrorBusy,
+ BRLMPrintErrorCodePrinterStatusErrorPrinterTurnedOff,
+ BRLMPrintErrorCodePrinterStatusErrorBatteryWeak,
+ BRLMPrintErrorCodePrinterStatusErrorExpansionBufferFull,
+ BRLMPrintErrorCodePrinterStatusErrorCommunicationError,
+ BRLMPrintErrorCodePrinterStatusErrorPaperJam,
+ BRLMPrintErrorCodePrinterStatusErrorMediaCannotBeFed,
+ BRLMPrintErrorCodePrinterStatusErrorOverHeat,
+ BRLMPrintErrorCodePrinterStatusErrorHighVoltageAdapter,
+ BRLMPrintErrorCodePrinterStatusErrorUnknownError,
+ BRLMPrintErrorCodeUnknownError,
+};
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMPrintError : BRLMError
+
+@property(nonatomic, readonly) BRLMPrintErrorCode code;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMPrintImageSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMPrintImageSettings.h
new file mode 100644
index 0000000..8da4181
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMPrintImageSettings.h
@@ -0,0 +1,77 @@
+//
+// BRLMPrintImageSettings.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+#import "BRLMPrinterDefine.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+
+typedef NS_ENUM(NSInteger, BRLMPrintSettingsCompressMode) {
+ BRLMPrintSettingsCompressModeNone,
+ BRLMPrintSettingsCompressModeTiff,
+ BRLMPrintSettingsCompressModeMode9,
+};
+typedef NS_ENUM(NSInteger, BRLMPrintSettingsHalftone) {
+ BRLMPrintSettingsHalftoneThreshold,
+ BRLMPrintSettingsHalftoneErrorDiffusion,
+ BRLMPrintSettingsHalftonePatternDither,
+};
+typedef NS_ENUM(NSInteger, BRLMPrintSettingsHorizontalAlignment) {
+ BRLMPrintSettingsHorizontalAlignmentLeft,
+ BRLMPrintSettingsHorizontalAlignmentCenter,
+ BRLMPrintSettingsHorizontalAlignmentRight,
+};
+typedef NS_ENUM(NSInteger, BRLMPrintSettingsOrientation) {
+ BRLMPrintSettingsOrientationPortrait,
+ BRLMPrintSettingsOrientationLandscape,
+};
+typedef NS_ENUM(NSInteger, BRLMPrintSettingsPrintQuality) {
+ BRLMPrintSettingsPrintQualityBest,
+ BRLMPrintSettingsPrintQualityFast,
+};
+typedef NS_ENUM(NSInteger, BRLMPrintSettingsResolution) {
+ BRLMPrintSettingsResolutionLow,
+ BRLMPrintSettingsResolutionNormal,
+ BRLMPrintSettingsResolutionHigh,
+};
+typedef NS_ENUM(NSInteger, BRLMPrintSettingsScaleMode) {
+ BRLMPrintSettingsScaleModeActualSize,
+ BRLMPrintSettingsScaleModeFitPageAspect,
+ BRLMPrintSettingsScaleModeFitPaperAspect,
+ BRLMPrintSettingsScaleModeScaleValue,
+};
+typedef NS_ENUM(NSInteger, BRLMPrintSettingsVerticalAlignment) {
+ BRLMPrintSettingsVerticalAlignmentTop,
+ BRLMPrintSettingsVerticalAlignmentCenter,
+ BRLMPrintSettingsVerticalAlignmentBottom,
+};
+
+@protocol BRLMPrintImageSettings
+
+@property (nonatomic, readonly) BRLMPrinterModel printerModel;
+@property (nonatomic) BRLMPrintSettingsScaleMode scaleMode;
+@property (nonatomic) CGFloat scaleValue;
+@property (nonatomic) BRLMPrintSettingsOrientation printOrientation;
+@property (nonatomic) BRLMPrintSettingsHalftone halftone;
+@property (nonatomic) BRLMPrintSettingsHorizontalAlignment hAlignment;
+@property (nonatomic) BRLMPrintSettingsVerticalAlignment vAlignment;
+@property (nonatomic) BRLMPrintSettingsCompressMode compress;
+@property (nonatomic) UInt8 halftoneThreshold;
+@property (nonatomic) NSUInteger numCopies;
+@property (nonatomic) BOOL skipStatusCheck;
+@property (nonatomic) BRLMPrintSettingsPrintQuality printQuality;
+
+
++ (instancetype)new __unavailable;
+- (instancetype)init __unavailable;
+- (instancetype)copy __unavailable;
+
+
+@end
+
+NS_ASSUME_NONNULL_END
\ No newline at end of file
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMPrintSettingsProtocol.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMPrintSettingsProtocol.h
new file mode 100755
index 0000000..2fb4157
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMPrintSettingsProtocol.h
@@ -0,0 +1,25 @@
+//
+// BRLMPrintSettings.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+#import "BRLMPrinterDefine.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@protocol BRLMPrintSettingsProtocol
+
++ (instancetype)new __unavailable;
+- (instancetype)init __unavailable;
+- (instancetype)copy __unavailable;
+
+@required
+- (nullable instancetype)initDefaultPrintSettingsWithPrinterModel:(BRLMPrinterModel)model;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMPrinterClassifier.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMPrinterClassifier.h
new file mode 100644
index 0000000..fac6aba
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMPrinterClassifier.h
@@ -0,0 +1,31 @@
+//
+// BRLMPrinterClassifier.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+#import "BRLMPrinterDefine.h"
+
+typedef NS_ENUM(NSInteger, BRLMPrinterClassifierSeries) {
+ BRLMPrinterClassifierSeriesPJ,
+ BRLMPrinterClassifierSeriesRJ,
+ BRLMPrinterClassifierSeriesTD,
+ BRLMPrinterClassifierSeriesPT,
+ BRLMPrinterClassifierSeriesQL,
+ BRLMPrinterClassifierSeriesMW,
+ BRLMPrinterClassifierSeriesUnknown,
+};
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMPrinterClassifier : NSObject
+
++ (enum BRLMPrinterClassifierSeries)classifyPrinterSerieseFromModel:(BRLMPrinterModel)model;
++ (enum BRLMPrinterModel)transferEnumFromString:(NSString*)modelName;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMPrinterDefine.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMPrinterDefine.h
new file mode 100755
index 0000000..bee784e
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMPrinterDefine.h
@@ -0,0 +1,59 @@
+//
+// BRLMPrinterDefine.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+
+
+typedef NS_ENUM(NSInteger, BRLMChannelType) {
+ BRLMChannelTypeBluetoothMFi,
+ BRLMChannelTypeWiFi,
+ BRLMChannelTypeBluetoothLowEnergy,
+};
+
+typedef NS_ENUM(NSInteger, BRLMPrinterModel) {
+ BRLMPrinterModelPJ_673,
+ BRLMPrinterModelPJ_763MFi,
+ BRLMPrinterModelPJ_773,
+ BRLMPrinterModelMW_145MFi,
+ BRLMPrinterModelMW_260MFi,
+ BRLMPrinterModelMW_170,
+ BRLMPrinterModelMW_270,
+ BRLMPrinterModelRJ_4030Ai,
+ BRLMPrinterModelRJ_4040,
+ BRLMPrinterModelRJ_3050,
+ BRLMPrinterModelRJ_3150,
+ BRLMPrinterModelRJ_3050Ai,
+ BRLMPrinterModelRJ_3150Ai,
+ BRLMPrinterModelRJ_2050,
+ BRLMPrinterModelRJ_2140,
+ BRLMPrinterModelRJ_2150,
+ BRLMPrinterModelRJ_4230B,
+ BRLMPrinterModelRJ_4250WB,
+ BRLMPrinterModelTD_2120N,
+ BRLMPrinterModelTD_2130N,
+ BRLMPrinterModelTD_4100N,
+ BRLMPrinterModelTD_4420DN,
+ BRLMPrinterModelTD_4520DN,
+ BRLMPrinterModelTD_4550DNWB,
+ BRLMPrinterModelQL_710W,
+ BRLMPrinterModelQL_720NW,
+ BRLMPrinterModelQL_810W,
+ BRLMPrinterModelQL_820NWB,
+ BRLMPrinterModelQL_1110NWB,
+ BRLMPrinterModelQL_1115NWB,
+ BRLMPrinterModelPT_E550W,
+ BRLMPrinterModelPT_P750W,
+ BRLMPrinterModelPT_D800W,
+ BRLMPrinterModelPT_E800W,
+ BRLMPrinterModelPT_E850TKW,
+ BRLMPrinterModelPT_P900W,
+ BRLMPrinterModelPT_P950NW,
+ BRLMPrinterModelPT_P300BT,
+ BRLMPrinterModelPT_P710BT,
+ BRLMPrinterModelPT_P715eBT,
+ BRLMPrinterModelPT_P910BT,
+ BRLMPrinterModelUnknown,
+};
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMPrinterDriver.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMPrinterDriver.h
new file mode 100644
index 0000000..bbb0ef8
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMPrinterDriver.h
@@ -0,0 +1,54 @@
+//
+// BRLMPrinterDriver.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+#import "BRLMPrinterDefine.h"
+#import "BRLMPrintError.h"
+#import "BRLMPrintSettingsProtocol.h"
+#import "BRLMPrinterStatus.h"
+#import "BRLMGetStatusError.h"
+
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMGetPrinterStatusResult : NSObject
+@property (nonatomic, readonly) BRLMGetStatusError *error;
+@property (nonatomic, readonly, nullable) BRLMPrinterStatus *status;
+- (instancetype)init __unavailable;
+- (instancetype)copy __unavailable;
+@end
+
+@interface BRLMPrinterDriver : NSObject
+
+- (instancetype)init __attribute__((unavailable("Use [BRLMPrinterDriverGenerator openChannel:] instead")));
+- (instancetype)copy __attribute__((unavailable("Use [BRLMPrinterDriverGenerator openChannel:] instead")));
+
+- (BRLMPrintError *)printImageWithURL:(NSURL *)url settings:(id)settings;
+- (BRLMPrintError *)printImageWithURLs:(NSArray *)urls settings:(id)settings;
+- (BRLMPrintError *)printImageWithImage:(CGImageRef)imageRef settings:(id)settings;
+
+- (BRLMPrintError *)printPDFWithURL:(NSURL *)url settings:(id)settings;
+- (BRLMPrintError *)printPDFWithURLs:(NSArray *)urls settings:(id)settings;
+- (BRLMPrintError *)printPDFWithURL:(NSURL *)url pages:(NSArray *)pages settings:(id)settings;
+
+- (BRLMPrintError *)sendPRNFileWithURL:(NSURL *)url;
+- (BRLMPrintError *)sendPRNFileWithURLs:(NSArray *)urls;
+
+- (void)cancelPrinting;
+
+- (BRLMPrintError *)sendRawData:(NSData *)data;
+
+- (BRLMGetPrinterStatusResult *)getPrinterStatus;
+
+
+- (void)closeChannel;
+
+@end
+
+
+NS_ASSUME_NONNULL_END
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMPrinterDriverGenerator.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMPrinterDriverGenerator.h
new file mode 100755
index 0000000..7e78a37
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMPrinterDriverGenerator.h
@@ -0,0 +1,34 @@
+//
+// BRLMPrinterDriverGenerator.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+#import "BRLMPrinterDriver.h"
+#import "BRLMChannel.h"
+#import "BRLMOpenChannelError.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMPrinterDriverGenerateResult : NSObject
+@property (nonatomic, readonly) BRLMOpenChannelError *error;
+@property (nonatomic, readonly, nullable) BRLMPrinterDriver *driver;
+- (instancetype)init __unavailable;
+- (instancetype)copy __unavailable;
+@end
+
+@interface BRLMPrinterDriverGenerator : NSObject
+
+@property(nonatomic, readonly, nullable) BRLMOpenChannelError *openChannelError;
+
+- (instancetype)init __unavailable;
+- (instancetype)copy __unavailable;
+
++ (BRLMPrinterDriverGenerateResult *)openChannel:(BRLMChannel *)channel;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMPrinterKit+BRPtouchPrinterKit+BMSPrinterKit.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMPrinterKit+BRPtouchPrinterKit+BMSPrinterKit.h
new file mode 100644
index 0000000..f9eedae
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMPrinterKit+BRPtouchPrinterKit+BMSPrinterKit.h
@@ -0,0 +1,18 @@
+//
+// BRLMPrinterKit+BMSPrinterKit.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+//! Project version number for BRLMPrinterKit.
+FOUNDATION_EXPORT double BRLMPrinterKitVersionNumber;
+
+//! Project version string for BRLMPrinterKit.
+FOUNDATION_EXPORT const unsigned char BRLMPrinterKitVersionString[];
+
+#import "BRLMPrinterKit.h"
+#import "BRPtouchPrinterKit.h"
+#import "BMSPrinterKit.h"
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMPrinterKit.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMPrinterKit.h
new file mode 100644
index 0000000..51db651
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMPrinterKit.h
@@ -0,0 +1,32 @@
+//
+// BRLMPrinterKit.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+#import "BRLMPrinterDefine.h"
+
+#import "BRLMPrinterDriver.h"
+#import "BRLMPrinterDriverGenerator.h"
+#import "BRLMError.h"
+#import "BRLMOpenChannelError.h"
+#import "BRLMChannel.h"
+#import "BRLMPrintError.h"
+#import "BRLMGetStatusError.h"
+
+#import "BRLMPrinterStatus.h"
+
+#import "BRLMPrintSettingsProtocol.h"
+#import "BRLMMWPrintSettings.h"
+#import "BRLMPJPrintSettings.h"
+#import "BRLMPTPrintSettings.h"
+#import "BRLMQLPrintSettings.h"
+#import "BRLMRJPrintSettings.h"
+#import "BRLMTDPrintSettings.h"
+#import "BRLMPrinterClassifier.h"
+
+#import "BRLMCustomPaperSize.h"
+#import "BRLMValidatePrintSettings.h"
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMPrinterStatus.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMPrinterStatus.h
new file mode 100755
index 0000000..e2993b2
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMPrinterStatus.h
@@ -0,0 +1,55 @@
+//
+// BRLMPrinterStatus.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+#import "BRLMPrinterDefine.h"
+
+typedef struct {
+ Byte byHead; // Head mark
+ Byte bySize; // Size
+ Byte byBrotherCode; // Brother code
+ Byte bySeriesCode; // Serial code
+ Byte byModelCode; // Model code
+ Byte byNationCode; // Nation code
+ Byte byFiller; // information about cover
+ Byte byFiller2; // Not used
+ Byte byErrorInf; // Error information 1
+ Byte byErrorInf2; // Error information 2
+ Byte byMediaWidth; // Media width
+ Byte byMediaType; // Media type
+ Byte byColorNum; // The number of colors
+ Byte byFont; // Font
+ Byte byJapanesFont; // Japanese font
+ Byte byMode; // Mode
+ Byte byDensity; // Density
+ Byte byMediaLength; // Media Length
+ Byte byStatusType; // Status Type
+ Byte byPhaseType; // Phase type
+ Byte byPhaseNoHi; // Upper bytes of phase number
+ Byte byPhaseNoLow; // Lower bytes of phase number
+ Byte byNoticeNo; // Notice number
+ Byte byExtByteNum; // Total bytes of extended part
+ Byte byLabelColor; // Color of label
+ Byte byFontColor; // Color of font
+ Byte byHardWareSetting[4]; // Settings of hardware
+ Byte byNoUse[2]; // Not Use
+} BRLMPrinterStatusRawDataStructure;
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMPrinterStatus : NSObject
+
+@property (nonatomic, readonly) BRLMPrinterStatusRawDataStructure ptStatus;
+@property (nonatomic, readonly) BRLMPrinterModel model;
+
+- (instancetype)init __unavailable;
+- (instancetype)copy __unavailable;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMQLPrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMQLPrintSettings.h
new file mode 100755
index 0000000..93c47ff
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMQLPrintSettings.h
@@ -0,0 +1,64 @@
+//
+// BRLMQLPrintSettings.h
+// BRLMPrinterKit
+//
+// Copyright © 2018 Brother Industries, Ltd. All rights reserved.
+//
+
+#import "BRLMPrintSettingsProtocol.h"
+#import "BRLMPrintImageSettings.h"
+
+ typedef NS_ENUM(NSInteger, BRLMQLPrintSettingsLabelSize) {
+ BRLMQLPrintSettingsLabelSizeDieCutW17H54,
+ BRLMQLPrintSettingsLabelSizeDieCutW17H87,
+ BRLMQLPrintSettingsLabelSizeDieCutW23H23,
+ BRLMQLPrintSettingsLabelSizeDieCutW29H42,
+ BRLMQLPrintSettingsLabelSizeDieCutW29H90,
+ BRLMQLPrintSettingsLabelSizeDieCutW38H90,
+ BRLMQLPrintSettingsLabelSizeDieCutW39H48,
+ BRLMQLPrintSettingsLabelSizeDieCutW52H29,
+ BRLMQLPrintSettingsLabelSizeDieCutW62H29,
+ BRLMQLPrintSettingsLabelSizeDieCutW62H100,
+ BRLMQLPrintSettingsLabelSizeDieCutW60H86,
+ BRLMQLPrintSettingsLabelSizeDieCutW54H29,
+ BRLMQLPrintSettingsLabelSizeDieCutW102H51,
+ BRLMQLPrintSettingsLabelSizeDieCutW102H152,
+ BRLMQLPrintSettingsLabelSizeDieCutW103H164,
+ BRLMQLPrintSettingsLabelSizeRollW12,
+ BRLMQLPrintSettingsLabelSizeRollW29,
+ BRLMQLPrintSettingsLabelSizeRollW38,
+ BRLMQLPrintSettingsLabelSizeRollW50,
+ BRLMQLPrintSettingsLabelSizeRollW54,
+ BRLMQLPrintSettingsLabelSizeRollW62,
+ BRLMQLPrintSettingsLabelSizeRollW62RB,
+ BRLMQLPrintSettingsLabelSizeRollW102,
+ BRLMQLPrintSettingsLabelSizeRollW103,
+ BRLMQLPrintSettingsLabelSizeDTRollW90,
+ BRLMQLPrintSettingsLabelSizeDTRollW102,
+ BRLMQLPrintSettingsLabelSizeDTRollW102H51,
+ BRLMQLPrintSettingsLabelSizeDTRollW102H152,
+ };
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMQLPrintSettings : NSObject
+
+
+@property (nonatomic) BRLMQLPrintSettingsLabelSize labelSize;
+/**
+Description : Specify the page number in “cut each # labels”
+Range(#) : 1 - 255
+Default : 1
+ */
+@property (nonatomic) UInt8 autoCutForEachPageCount;
+@property (nonatomic) BOOL autoCut;
+@property (nonatomic) BOOL cutAtEnd;
+@property (nonatomic) BRLMPrintSettingsResolution resolution;
+
+// override
+- (nullable instancetype)initDefaultPrintSettingsWithPrinterModel:(BRLMPrinterModel)model;
+- (nullable instancetype)copyWithPrinterModel:(BRLMPrinterModel)model;
+@end
+
+
+NS_ASSUME_NONNULL_END
\ No newline at end of file
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMRJPrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMRJPrintSettings.h
new file mode 100755
index 0000000..e2d55b3
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMRJPrintSettings.h
@@ -0,0 +1,48 @@
+//
+// BRLMRJPrintSettings.h
+// BRLMPrinterKit
+//
+// Copyright © 2018 Brother Industries, Ltd. All rights reserved.
+//
+
+#import "BRLMPrintSettingsProtocol.h"
+#import "BRLMPrintImageSettings.h"
+
+#import "BRLMCustomPaperSize.h"
+
+
+typedef float BRLMRJPrintLengthScale;
+
+typedef NS_ENUM(NSInteger, BRLMRJPrintSettingsDensity) {
+ BRLMRJPrintSettingsDensityWeakLevel5,
+ BRLMRJPrintSettingsDensityWeakLevel4,
+ BRLMRJPrintSettingsDensityWeakLevel3,
+ BRLMRJPrintSettingsDensityWeakLevel2,
+ BRLMRJPrintSettingsDensityWeakLevel1,
+ BRLMRJPrintSettingsDensityNeutral,
+ BRLMRJPrintSettingsDensityStrongLevel1,
+ BRLMRJPrintSettingsDensityStrongLevel2,
+ BRLMRJPrintSettingsDensityStrongLevel3,
+ BRLMRJPrintSettingsDensityStrongLevel4,
+ BRLMRJPrintSettingsDensityStrongLevel5,
+ BRLMRJPrintSettingsDensityUsePrinterSetting,
+};
+
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMRJPrintSettings : NSObject
+
+
+@property (nonatomic) BRLMCustomPaperSize* customPaperSize;
+@property (nonatomic) BRLMRJPrintSettingsDensity density;
+@property (nonatomic) BOOL rotate180degrees;
+@property (nonatomic) BOOL peelLabel;
+
+// override
+- (nullable instancetype)initDefaultPrintSettingsWithPrinterModel:(BRLMPrinterModel)model;
+- (nullable instancetype)copyWithPrinterModel:(BRLMPrinterModel)model;
+@end
+
+
+NS_ASSUME_NONNULL_END
\ No newline at end of file
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMTDPrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMTDPrintSettings.h
new file mode 100755
index 0000000..d2ff1a0
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMTDPrintSettings.h
@@ -0,0 +1,47 @@
+//
+// BRLMTDPrintSettings.h
+// BRLMPrinterKit
+//
+// Copyright © 2018 Brother Industries, Ltd. All rights reserved.
+//
+
+#import "BRLMPrintSettingsProtocol.h"
+#import "BRLMPrintImageSettings.h"
+
+#import "BRLMCustomPaperSize.h"
+
+
+typedef float BRLMTDPrintLengthScale;
+
+typedef NS_ENUM(NSInteger, BRLMTDPrintSettingsDensity) {
+ BRLMTDPrintSettingsDensityWeakLevel5,
+ BRLMTDPrintSettingsDensityWeakLevel4,
+ BRLMTDPrintSettingsDensityWeakLevel3,
+ BRLMTDPrintSettingsDensityWeakLevel2,
+ BRLMTDPrintSettingsDensityWeakLevel1,
+ BRLMTDPrintSettingsDensityNeutral,
+ BRLMTDPrintSettingsDensityStrongLevel1,
+ BRLMTDPrintSettingsDensityStrongLevel2,
+ BRLMTDPrintSettingsDensityStrongLevel3,
+ BRLMTDPrintSettingsDensityStrongLevel4,
+ BRLMTDPrintSettingsDensityStrongLevel5,
+ BRLMTDPrintSettingsDensityUsePrinterSetting,
+};
+
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMTDPrintSettings : NSObject
+
+
+@property (nonatomic) BRLMCustomPaperSize* customPaperSize;
+@property (nonatomic) BRLMTDPrintSettingsDensity density;
+@property (nonatomic) BOOL peelLabel;
+
+// override
+- (nullable instancetype)initDefaultPrintSettingsWithPrinterModel:(BRLMPrinterModel)model;
+- (nullable instancetype)copyWithPrinterModel:(BRLMPrinterModel)model;
+@end
+
+
+NS_ASSUME_NONNULL_END
\ No newline at end of file
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMValidatePrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMValidatePrintSettings.h
new file mode 100644
index 0000000..196d872
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRLMValidatePrintSettings.h
@@ -0,0 +1,42 @@
+//
+// BRLMValidatePrintSettings.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries. All rights reserved.
+//
+
+#import
+
+@protocol BRLMPrintSettingsProtocol;
+
+NS_ASSUME_NONNULL_BEGIN
+
+typedef NS_ENUM(NSInteger, BRLMValidatePrintSettingsIssueRank) {
+ BRLMValidatePrintSettingsIssueRankError,
+ BRLMValidatePrintSettingsIssueRankWarning,
+ BRLMValidatePrintSettingsIssueRankNotice,
+};
+@interface BRLMValidatePrintSettingsIssue : NSObject
+- (instancetype)init __unavailable;
+- (instancetype)copy __unavailable;
+@property(nonatomic, readonly) BRLMValidatePrintSettingsIssueRank rank;
+@property(nonatomic, readonly) NSString* message;
+@property(nonatomic, readonly) NSInteger codeID;
+- (NSString *)description;
+@end
+
+@interface BRLMValidatePrintSettingsReport : NSObject
+- (instancetype)init __unavailable;
+- (instancetype)copy __unavailable;
+@property(nonatomic, readonly) NSArray* issues;
+@property(nonatomic, readonly) NSUInteger errorCount;
+@property(nonatomic, readonly) NSUInteger warningCount;
+@property(nonatomic, readonly) NSUInteger noticeCount;
+- (NSString *)description;
+@end
+
+@interface BRLMValidatePrintSettings : NSObject
++ (BRLMValidatePrintSettingsReport*) validate:(id)printSettings;
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/Frameworks/BRPtouchPrinterKit.framework/Versions/A/Headers/BRPtouchBLEManager.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRPtouchBLEManager.h
similarity index 100%
rename from Frameworks/BRPtouchPrinterKit.framework/Versions/A/Headers/BRPtouchBLEManager.h
rename to Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRPtouchBLEManager.h
diff --git a/Frameworks/BRPtouchPrinterKit.framework/Versions/A/Headers/BRPtouchBatteryInfo.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRPtouchBatteryInfo.h
similarity index 100%
rename from Frameworks/BRPtouchPrinterKit.framework/Versions/A/Headers/BRPtouchBatteryInfo.h
rename to Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRPtouchBatteryInfo.h
diff --git a/Frameworks/BRPtouchPrinterKit.framework/Versions/A/Headers/BRPtouchBluetoothManager.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRPtouchBluetoothManager.h
similarity index 100%
rename from Frameworks/BRPtouchPrinterKit.framework/Versions/A/Headers/BRPtouchBluetoothManager.h
rename to Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRPtouchBluetoothManager.h
diff --git a/Frameworks/BRPtouchPrinterKit.framework/Versions/A/Headers/BRPtouchDeviceInfo.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRPtouchDeviceInfo.h
similarity index 100%
rename from Frameworks/BRPtouchPrinterKit.framework/Versions/A/Headers/BRPtouchDeviceInfo.h
rename to Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRPtouchDeviceInfo.h
diff --git a/Frameworks/BRPtouchPrinterKit.framework/Versions/A/Headers/BRPtouchLabelInfoStatus.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRPtouchLabelInfoStatus.h
similarity index 98%
rename from Frameworks/BRPtouchPrinterKit.framework/Versions/A/Headers/BRPtouchLabelInfoStatus.h
rename to Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRPtouchLabelInfoStatus.h
index 4e7207b..10fef39 100644
--- a/Frameworks/BRPtouchPrinterKit.framework/Versions/A/Headers/BRPtouchLabelInfoStatus.h
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRPtouchLabelInfoStatus.h
@@ -85,6 +85,8 @@ typedef NS_ENUM(NSUInteger, ColorType) {
SILVER_PREMIUM = 0x0C,
OTHERS_PREMIUM = 0x0D,
OTHERS_MASKING = 0x0E,
+ SATIN_LIGHTBLUE = 0x0F,
+ SATIN_MINT = 0x10,
MATTE_WHITE = 0x20,
MATTE_CLEAR,
MATTE_SILVER,
diff --git a/Frameworks/BRPtouchPrinterKit.framework/Versions/A/Headers/BRPtouchLabelParam.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRPtouchLabelParam.h
similarity index 100%
rename from Frameworks/BRPtouchPrinterKit.framework/Versions/A/Headers/BRPtouchLabelParam.h
rename to Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRPtouchLabelParam.h
diff --git a/Frameworks/BRPtouchPrinterKit.framework/Versions/A/Headers/BRPtouchNetworkManager.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRPtouchNetworkManager.h
similarity index 100%
rename from Frameworks/BRPtouchPrinterKit.framework/Versions/A/Headers/BRPtouchNetworkManager.h
rename to Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRPtouchNetworkManager.h
diff --git a/Frameworks/BRPtouchPrinterKit.framework/Versions/A/Headers/BRPtouchPrintInfo.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRPtouchPrintInfo.h
similarity index 98%
rename from Frameworks/BRPtouchPrinterKit.framework/Versions/A/Headers/BRPtouchPrintInfo.h
rename to Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRPtouchPrintInfo.h
index a4a3288..e78d85b 100644
--- a/Frameworks/BRPtouchPrinterKit.framework/Versions/A/Headers/BRPtouchPrintInfo.h
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRPtouchPrintInfo.h
@@ -131,5 +131,6 @@
@property (assign,nonatomic)BOOL bRawMode;
@property (assign,nonatomic)BOOL bBanishMargin;
@property (assign,nonatomic)BOOL bUseLegacyHalftoneEngine;
+@property (assign,nonatomic)BOOL bUseCopyCommandInTemplatePrint;
@end
diff --git a/Frameworks/BRPtouchPrinterKit.framework/Versions/A/Headers/BRPtouchPrinter.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRPtouchPrinter.h
similarity index 91%
rename from Frameworks/BRPtouchPrinterKit.framework/Versions/A/Headers/BRPtouchPrinter.h
rename to Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRPtouchPrinter.h
index 7d4c3ee..27d72ab 100644
--- a/Frameworks/BRPtouchPrinterKit.framework/Versions/A/Headers/BRPtouchPrinter.h
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRPtouchPrinter.h
@@ -16,6 +16,8 @@
#include "BRPtouchLabelParam.h"
#include "BRPtouchLabelInfoStatus.h"
#import "BRPtouchBatteryInfo.h"
+#import "BRCustomPaperInfoCommand.h"
+#include "BRPtouchTemplateInfo.h"
#define ERROR_NONE_ 0
#define ERROR_TIMEOUT -3
@@ -73,6 +75,7 @@
#define ERROR_UPDATE_FRIM_NOT_SUPPORTED_ -56 // This does not occur in iOS
#define ERROR_OS_VERSION_NOT_SUPPORTED_ -57 // This does not occur in iOS
#define ERROR_MINIMUM_LENGTH_LIMIT_ -58
+#define ERROR_FAIL_TO_CONVERT_CSV_TO_BLF_ -59
// Message value
@@ -190,9 +193,11 @@ extern NSString *const BRMessageKey;
- (id)initWithPrinterIPAddress:(NSString *)IPAddress;
- (id)initWithPrinterName:(NSString*)strPrinterName;
- (id)initWithPrinterName:(NSString*)strPrinterName interface:(CONNECTION_TYPE)type;
+- (NSString *)printerName;
- (BOOL)setPrinterName:(NSString*)strPrinterName;
- (void)setPrintInfo:(BRPtouchPrintInfo*)printInfo;
-- (BOOL)setCustomPaperFile:(NSString*)strFilePath; // Not Available
+- (BOOL)setCustomPaperFile:(NSString*)strFilePath;
+- (NSArray *)setCustomPaperInfoCommand:(BRCustomPaperInfoCommand *)customPaperInfoCommand;
//- (BOOL)setEncryptKey:(NSString*)strKey keyEx:(NSString*)strKeyEx; // Not Available
- (BOOL)isPrinterReady;
@@ -203,6 +208,7 @@ extern NSString *const BRMessageKey;
- (BRPtouchLabelInfoStatus *)getLabelInfoStatus;
- (int)getPTStatus:(PTSTATUSINFO*)status;
- (int)getStatus:(BRPtouchPrinterStatus**)status;
+- (int)getStatus:(BRPtouchPrinterStatus**)status errorCode:(int *)errorCode;
- (NSString *)getModelName;
- (NSString *)getFirmVersion;
- (NSString *)getMediaVersion;
@@ -214,6 +220,15 @@ extern NSString *const BRMessageKey;
- (BOOL)sendFirmwareFile:(NSArray*)sendFileArray;
- (int)sendTemplate:(NSString *)sendtemplateFilePath connectionType:(CONNECTION_TYPE) type;
+- (int)sendDatabase:(NSString *)databaseFilePath;
+
+- (BOOL)startPTTPrint:(int)key encoding:(NSStringEncoding)encoding;
+- (BOOL)replaceText:(NSString *)data;
+- (BOOL)replaceTextIndex:(NSString *)data objectIndex:(int)objIndex;
+- (BOOL)replaceTextName:(NSString *)data objectName:(NSString *)objName;
+- (int)flushPTTPrintWithCopies:(int)nCopy;
+- (int)removeTemplate:(NSArray *)keyList;
+- (int)getTemplateList:(NSArray*__autoreleasing *)templateList;
- (void)setIPAddress:(NSString*)strIP;
- (void)setupForBluetoothDeviceWithSerialNumber:(NSString*)serialNumber;
diff --git a/Frameworks/BRPtouchPrinterKit.framework/Versions/A/Headers/BRPtouchPrinterData.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRPtouchPrinterData.h
similarity index 100%
rename from Frameworks/BRPtouchPrinterKit.framework/Versions/A/Headers/BRPtouchPrinterData.h
rename to Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRPtouchPrinterData.h
diff --git a/Frameworks/BRPtouchPrinterKit.framework/Versions/A/Headers/BRPtouchPrinterKit.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRPtouchPrinterKit.h
similarity index 91%
rename from Frameworks/BRPtouchPrinterKit.framework/Versions/A/Headers/BRPtouchPrinterKit.h
rename to Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRPtouchPrinterKit.h
index 3052fa8..d4fb456 100644
--- a/Frameworks/BRPtouchPrinterKit.framework/Versions/A/Headers/BRPtouchPrinterKit.h
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRPtouchPrinterKit.h
@@ -11,6 +11,7 @@
#import "BRPtouchBluetoothManager.h"
#import "BRPtouchBLEManager.h"
#import "BRPtouchDeviceInfo.h"
+#import "BRPtouchTemplateInfo.h"
@interface BRPtouchPrinterKit : NSObject
diff --git a/Frameworks/BRPtouchPrinterKit.framework/Versions/A/Headers/BRPtouchPrinterStatus.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRPtouchPrinterStatus.h
similarity index 100%
rename from Frameworks/BRPtouchPrinterKit.framework/Versions/A/Headers/BRPtouchPrinterStatus.h
rename to Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRPtouchPrinterStatus.h
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRPtouchTemplateInfo.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRPtouchTemplateInfo.h
new file mode 100644
index 0000000..158efa8
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/BRPtouchTemplateInfo.h
@@ -0,0 +1,23 @@
+//
+// BRPtouchTemplateInfo.h
+// BRPtouchPrinterKit
+//
+// Copyright (c) 2018 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+// 64-bit value representing the number of 100-nanosecond intervals since January 1, 1601.
+typedef unsigned long long int BRFILETIMEDate;
+extern const BRFILETIMEDate NULLOfBRFILETIMEDate;
+
+@interface BRPtouchTemplateInfo : NSObject
+
+@property (nonatomic, readonly) NSUInteger key;
+@property (nonatomic, readonly) NSUInteger fileSize;
+@property (nonatomic, readonly) NSUInteger checksum;
+@property (nonatomic, readonly) NSDate *modifiedDate;
+@property (nonatomic, readonly) BRFILETIMEDate rawModifiedDate;
+@property (nonatomic, readonly) NSString *fileName;
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/GenericMobileLabelModelPrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/GenericMobileLabelModelPrintSettings.h
new file mode 100755
index 0000000..7e369e1
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/GenericMobileLabelModelPrintSettings.h
@@ -0,0 +1,211 @@
+//
+// GenericMobileLabelModelPrintSettings.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/12/12.
+// Copyright (c) 2012-13 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "PrintSettings.h"
+
+
+
+@interface GenericMobileLabelModelPrintSettings : PrintSettings
+{
+ // provide subclasses with access to readonly properties via ivars.
+ // Because they are readonly, there is no "Setter" method available in the superclass.
+ // The subclasses should be the only place where these properties are set.
+ // But, they will be used in this superclass.
+ // Users of this superclass can read the values if desired, but in most cases this
+ // will not be necessary.
+ int _resolutionHorz;
+ int _resolutionVert;
+ int _headSizeDots;
+ int _paperWidthDotsMin;
+ int _paperWidthDotsMax;
+ int _paperLengthDotsMin;
+ int _paperLengthDotsMax;
+ int _marginLengthDotsMin;
+ int _marginLengthDotsMax;
+ int _extraFeedMax;
+
+ unsigned char _energyRank;
+ signed char _sensThrAdj;
+ signed char _sensDutyAdj;
+ int16_t _horzPosAdjDots;
+ int16_t _vertPosAdjDots;
+}
+
+// the following are defined somewhat arbitrarily to limit these settings to a
+// reasonable value during validation.
+// NOTE: We do NOT need "read only" properties for these since they will be the same
+// for each model and subclass.
+#define LABELSPACINGDOTS_MAX 1000
+#define MARKWIDTHDOTS_MAX 1000
+#define MARKOFFSETDOTS_MIN -1000
+#define MARKOFFSETDOTS_MAX 1000
+
+
+//*** IMPORTANT (for SDK Users):
+// *** DO NOT INSTANTIATE AN OBJECT OF THIS CLASS!!!!! ***
+// The GenericMobileLabelModelPrintSettings class is essentially an ABSTRACT class.
+// Instead, you should instantiate the model-specific class, e.g. RJ4040PrintSettings.
+
+//*** The following properties should be set by your app code, either PROGRAMMATICALLY
+// or by using one of the PrintSettingsViewControllers (which may not set all properties).
+
+// The properties and methods in this super-class will be COMMON for all
+// of the RJ and TD printer models.
+// They will be implemented in here generically, but will use the genericModelDelegate
+// property above to get model-specific information.
+
+// SDK Users: All of the properties below (and those in the PrintSettings superclass)
+// are settable by you to change the printer behavior.
+// If you are not using the PrintSettingsViewController (either the SDK's or your own custom one),
+// then you should set each of these properties programmatically to your desired setting.
+@property (nonatomic, assign) PAPERTYPE paperType;
+// formFeedMode = NOFEED mode is used to implement "trimTapeAfterData" from Windows driver.
+// This allows clipping white space from the bottom of the job to save paper.
+@property (nonatomic, assign) FORMFEEDMODE formFeedMode;
+@property (nonatomic, assign) DENSITY density;
+@property (nonatomic,assign) int extraFeed; // used with kFormFeedModeNoFeed only
+
+//*** PAPER SIZE is defined by setting ALL of the following properties.
+// They are used to generate the "Esc iUw[128 bytes]" command.
+
+// Paper Size is defined by a Width and Length.
+// Unprintable Margins impact printable area within this defined size.
+// * Printable height will be calculated as:
+// "printableHeight = paperLengthDots - 2*marginLengthDots"
+// * Printable width will be calculated as:
+// "printableWidth = paperWidthDots - 2*marginWidthDots"
+// Also, since printer paper is "center justified", anything less than 4" width needs to be
+// compensated for using "rightOffsetBytes" to shift the data relative to printhead origin.
+// We calculate "rightOffsetBytes" in the DRIVER based on paperWidthDots and marginWidthDots.
+//
+// NOTE: RJ4040 requires the left/right margins (marginWidth) to be the same as each other,
+// and it requires top/bottom margins (marginLength) to be the same as each other.
+// Although TD2 firmware allows these to be different, we are NOT going to support that
+// functionality. If any margin settings are needed that require these unprintable margins
+// to be different, then use the "marginDots" property in the superclass to make these adjustments.
+@property (nonatomic, assign) int paperWidthDots;
+@property (nonatomic, assign) int paperLengthDots;
+@property (nonatomic, assign) int16_t marginWidthDots; // left and right unprintable margin
+@property (nonatomic, assign) int16_t marginLengthDots; // top and bottom unprintable margin
+// this is for labels only:
+@property (nonatomic, assign) int16_t labelSpacingDots; // distance between labels
+// These 2 are for Marked Paper only:
+@property (nonatomic, assign) int16_t markWidthDots; // width of mark
+@property (nonatomic, assign) int16_t markOffsetDots; // distance from leading edge to marks. Can be negative.
+// The following properties are also added to Esc iUw (additionalMediaInfo) command.
+// In Windows Driver, these are on "Advanced Printing Adjustments..." when editing a PaperSize.
+//
+// Until now they have been hard-coded to match defaults in Windows driver.
+// In SDK version 2.3.4, we made these available for you to modify if necessary.
+// However, they may not be available in the PrintSettingsViewController. TBD.
+// If not and you wish to change them, you must set them independently, as you most likely do with all the other settings anyway.
+@property (nonatomic, assign) unsigned char energyRank; // similar to density.
+ // Range is 0-10
+ // TD-4550 range is 0-30.
+ // Default depends on printer model and paper type.
+ // Set to '\xFF' (-1) to allow SDK to set default, same as SDK versions < v2.3.4.
+
+// NOTE: These are N/A for RJ-4000 series. But they are supported with all other RJ/TD models.
+@property (nonatomic, assign) signed char sensThrAdj; // range = 0xFE (-2) to 0x02 (2), default = 0
+ // TD-4550 range = 0xFB (-5) to 0x05 (5), default = 0
+@property (nonatomic, assign) signed char sensDutyAdj; // range = 0xFE (-2) to 0x02 (2), default = 0
+#ifdef WHAT_THE_SPEC_SAYS
+// This range is small, especially at 300 dpi.
+// And, it doesn't match the size of the field in the struct or the Windows Driver.
+@property (nonatomic, assign) int16_t horzPosAdjDots; // range = 0x80 (-128) to 0x7F (127), default = 0
+@property (nonatomic, assign) int16_t vertPosAdjDots; // range = 0x80 (-128) to 0x7F (127), default = 0
+#else
+// Windows driver allows +/- 5.91 inches at printer resolution.
+// And, the value in Esc iUw structure is a 16-bit signed integer.
+// So, these values in comments seem to be the right ones.
+@property (nonatomic, assign) int16_t horzPosAdjDots; // range = +/- 5.91*resolution, default = 0
+@property (nonatomic, assign) int16_t vertPosAdjDots; // range = +/- 5.91*resolution, default = 0
+#endif
+
+
+// By default, the "Esc iUw [128 bytes]" command will be sent by computing the 128-byte
+// structure fields from the paperSize and other property settings.
+// However, some types of media may not be adequately handled. In this case, we provide the
+// option to disable sending this command. However, it will then be necessary to use the
+// Windows driver to send a job to the printer to cause the appropriate "Esc iUw" command to
+// be sent to the printer.
+// *** The printer will remember the settings from the last time this command was sent. ***
+// It will be important to assure that this class' property settings closely match the
+// settings sent by the Windows driver.
+@property (nonatomic, assign) BOOL sendAdditionalMediaInfoCommand;
+
+
+// Enable/Disable the FIXED 2 Sec Delay at end of **EACH** page when printing by MFi Bluetooth.
+// SDK v2.3.2 forced this delay for RJ-42 models ONLY, without this configurable property.
+// SDK v2.3.3 added this property to allow you to turn it ON only if needed, for RJ-42 series only.
+// SDK v2.3.4 moved this to Generic class, so it can be used with other models in case it is needed.
+// * However, we haven't seen the problem occur with any printers other than RJ-4200 series.
+// * We provide this capability with other models just in case it is helpful.
+//
+// When Enabled:
+// * A fixed 2-second delay is added at the END OF EACH PAGE, for MFi Bluetooth Channel ONLY.
+// * This delay seems to fix a problem that occurs with RJ-42 models which can cause MFi to disconnect
+// when the printer goes into a cooling state while printing multiple page jobs.
+// * However, the delay is NOT needed in most "normal" conditions, so enabling it can slow you down.
+// Therefore, the default value is NO (Disabled).
+//
+// When Disabled (default):
+// * NO 2-sec delay at end of each page, which is normal for all printers released prior to RJ-4200 series.
+// * However, when printing multiple page jobs on RJ-4200 series, there is a possibility that MFi can be disconnected
+// by Apple when printer begins "Cooling". This seems to be a FW bug with RJ-42 models only. However, the possibility
+// exists that other models can have this problem too.
+//
+// Generally, we recommend setting NO unless your "worst case" scenario results in the MFi being disconnected
+// for your printer model. If so, then we suggest giving user a CHOICE to enable/disable this so the delay doesn't
+// occur on every page, unless you are OK with this delay happening every page.
+//
+@property (nonatomic, assign) BOOL coolingDelayEnabled;
+
+//*** The properties below are READ ONLY. SDK Users can NOT set them!!
+// Each subclass MUST set them to their model-specific values in their init method.
+// The purpose of this GenericMobileLabelModelPrintSettings class is to implement COMMON
+// code so it does not have to be duplicated for each similar printer model. However, it
+// requires these model-dependent properties to be set by the SUBCLASS.
+@property (readonly, nonatomic, assign) int resolutionHorz;
+@property (readonly, nonatomic, assign) int resolutionVert;
+@property (readonly, nonatomic, assign) int headSizeDots;
+@property (readonly, nonatomic, assign) int paperWidthDotsMin;
+@property (readonly, nonatomic, assign) int paperWidthDotsMax;
+@property (readonly, nonatomic, assign) int paperLengthDotsMin;
+@property (readonly, nonatomic, assign) int paperLengthDotsMax;
+@property (readonly, nonatomic, assign) int marginLengthDotsMin;
+@property (readonly, nonatomic, assign) int marginLengthDotsMax;
+@property (readonly, nonatomic, assign) int extraFeedMax;
+
+
+// *** PrintSettingsDelegate protocol
+// All subclasses of PrintSettings are required to implement these methods.
+// validatePrintSettings - This function assures that all properties are in range
+// and that there are no conflicting settings.
+- (BOOL)validatePrintSettings;
+- (void) loadPreferences;
+- (void) savePreferences;
+//generate strings from CURRENT settings, for convenience.
+// This is part of the PrintSettingsDelegateProtocol too.
+- (NSString *)stringFromCurrentPaperType;
+// NOTE: PaperSize uses combination of internal settings to generate a string, formatted in inches.
+- (NSString *)stringFromCurrentPaperSize;
+- (NSString *)stringFromCurrentFormFeedMode;
+- (NSString *)stringFromCurrentExtraFeed;
+- (NSString *)stringFromCurrentDensity;
+
+
+//*** generate strings from constants, for convenience
+- (NSString *)stringFromPaperType: (PAPERTYPE)paperType;
+// NOTE: paperSize for these models does not have a constant, so you can only use the CURRENT version below.
+- (NSString *)stringFromFormFeedMode: (FORMFEEDMODE)ffmode;
+- (NSString *)stringFromExtraFeed:(int)extraFeed;
+- (NSString *)stringFromDensity: (DENSITY)density;
+
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/GenericMobileLabelModelPrintSettingsViewController.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/GenericMobileLabelModelPrintSettingsViewController.h
new file mode 100755
index 0000000..f7e7ca9
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/GenericMobileLabelModelPrintSettingsViewController.h
@@ -0,0 +1,50 @@
+//
+// GenericMobileLabelModelPrintSettingsViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/27/13.
+// Copyright (c) 2013 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "PrintSettingsViewController.h"
+#import "GenericMobileLabelModelPrintSettings.h"
+#import "PrintSettingTableViewController.h" // for PrintSettingTableViewResponder protocol, internal use only
+
+
+////////////////////////////////////////////////////////////////////////////////
+
+
+//*********************************************************************
+// GenericMobileLabelModelPrintSettingsViewController INTERFACE
+//
+//*** IMPORTANT: *** DO NOT INSTANTIATE AN OBJECT OF THIS CLASS!!!!! ***
+// The GenericMobileLabelModelPrintSettingsViewController class is essentially an
+// ABSTRACT class.
+// Instead, you should instantiate the model-specific class,
+// e.g. RJ4040PrintSettingsViewController.
+//*********************************************************************
+
+
+@interface GenericMobileLabelModelPrintSettingsViewController : PrintSettingsViewController < UITableViewDelegate, UITableViewDataSource, PrintSettingTableViewResponder>
+{
+}
+
+// "style" MUST be set to UITableViewStyleGrouped!!
+-(id)initWithStyle:(UITableViewStyle)style;
+
+
+// SDK Designers: The PrintSettingsViewController superclass defines several properties:
+// printSettings, popoverSize, rowHeight, fontSize, printSettingsDelegate,
+// showIPAddressHelpButton, IPAddressHelpFileName, and showSettingsOptionMask.
+// So, they are not defined in here.
+// However, this class and/or a model-specific subclass should "init" these properties
+// and handle setter overrides (if necessary).
+//
+// SDK Users: You should be familiar with the superclass properties so you can set
+// them accordingly, in particular the printSettingsDelegate (which handles
+// the PrintSettingsResponder protocol).
+
+
+@end
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/GenericPocketJetPrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/GenericPocketJetPrintSettings.h
new file mode 100755
index 0000000..323e276
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/GenericPocketJetPrintSettings.h
@@ -0,0 +1,99 @@
+//
+// GenericPocketJetPrintSettings.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/23/15.
+// Copyright (c) 2012-15 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "PrintSettings.h"
+
+typedef enum
+{
+ kCustomPaperAlignLeft = 0,
+ kCustomPaperAlignCenter,
+} CUSTOMPAPERALIGN;
+
+@interface GenericPocketJetPrintSettings : PrintSettings
+{
+ // provide subclasses with access to readonly properties via ivars.
+ // Because they are readonly, there is no "Setter" method available in the superclass.
+ // The subclasses should be the only place where these properties are set.
+ // But, they will be used in this superclass.
+ // Users of this superclass can read the values if desired, but in most cases this
+ // will not be necessary.
+ int _resolutionHorz;
+ int _resolutionVert;
+ int _customPaperWidthDotsMin;
+ int _customPaperWidthDotsMax;
+ int _customPaperLengthDotsMin;
+ int _customPaperLengthDotsMax;
+ int _extraFeedMax;
+}
+
+
+//*** IMPORTANT (for SDK Users):
+// *** DO NOT INSTANTIATE AN OBJECT OF THIS CLASS!!!!! ***
+// The GenericPocketJetPrintSettings class is essentially an ABSTRACT class.
+// Instead, you should instantiate the model-specific class, e.g. PJ673PrintSettings.
+
+//*** The following properties should be set by your app code, either PROGRAMMATICALLY
+// or by using one of the PrintSettingsViewControllers (which may not set all properties).
+
+// The properties and methods in this super-class will be COMMON for all
+// of the PocketJet printer models.
+
+// SDK Users: All of the properties below (and those in the PrintSettings superclass)
+// are settable by you to change the printer behavior.
+// If you are not using the PrintSettingsViewController (either the SDK's or your own custom one),
+// then you should set each of these properties programmatically to your desired setting.
+@property (nonatomic, assign) PAPERSIZE paperSize;
+@property (nonatomic, assign) PAPERTYPE paperType;
+@property (nonatomic, assign) FORMFEEDMODE formFeedMode;
+@property (nonatomic,assign) int extraFeed; // used with kFormFeedModeNoFeed only
+@property (nonatomic, assign) DENSITY density;
+// These 3 properties are used ONLY when paperSize is set to kPaperSizeCustom!
+@property (nonatomic, assign) int customPaperWidthDots;
+@property (nonatomic, assign) int customPaperLengthDots;
+@property (nonatomic, assign) CUSTOMPAPERALIGN customPaperAlign;
+
+
+//*** The properties below are READ ONLY. SDK Users can NOT set them!!
+// Each subclass MUST set them to their model-specific values in their init method.
+// The purpose of this GenericPocketJetPrintSettings class is to implement COMMON
+// code so it does not have to be duplicated for each similar printer model. However, it
+// requires these model-dependent properties to be set by the SUBCLASS.
+@property (readonly, nonatomic, assign) int resolutionHorz;
+@property (readonly, nonatomic, assign) int resolutionVert;
+@property (readonly, nonatomic, assign) int customPaperWidthDotsMin;
+@property (readonly, nonatomic, assign) int customPaperWidthDotsMax;
+@property (readonly, nonatomic, assign) int customPaperLengthDotsMin;
+@property (readonly, nonatomic, assign) int customPaperLengthDotsMax;
+@property (readonly, nonatomic, assign) int extraFeedMax;
+
+
+// *** PrintSettingsDelegate protocol
+// All subclasses of PrintSettings are required to implement these methods.
+// validatePrintSettings - This function assures that all properties are in range
+// and that there are no conflicting settings.
+- (BOOL)validatePrintSettings;
+- (void) loadPreferences;
+- (void) savePreferences;
+//generate strings from CURRENT settings, for convenience.
+// This is part of the PrintSettingsDelegateProtocol too.
+- (NSString *)stringFromCurrentPaperType;
+- (NSString *)stringFromCurrentPaperSize;
+- (NSString *)stringFromCurrentFormFeedMode;
+- (NSString *)stringFromCurrentExtraFeed;
+- (NSString *)stringFromCurrentDensity;
+
+
+//*** generate strings from constants, for convenience
+- (NSString *)stringFromPaperType: (PAPERTYPE)paperType;
+- (NSString *)stringFromPaperSize: (PAPERSIZE)paperSize;
+- (NSString *)stringFromFormFeedMode: (FORMFEEDMODE)ffmode;
+- (NSString *)stringFromExtraFeed:(int)extraFeed;
+- (NSString *)stringFromDensity: (DENSITY)density;
+
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/GenericPocketJetPrintSettingsViewController.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/GenericPocketJetPrintSettingsViewController.h
new file mode 100755
index 0000000..5f0149f
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/GenericPocketJetPrintSettingsViewController.h
@@ -0,0 +1,47 @@
+//
+// GenericPocketJetPrintSettingsViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 8/8/12.
+// Copyright (c) 2012 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "PrintSettingsViewController.h"
+#import "GenericPocketJetPrintSettings.h"
+#import "PrintSettingTableViewController.h" // for PrintSettingTableViewResponder protocol, internal use only
+
+
+
+
+//*********************************************************************
+// GenericPocketJetPrintSettingsViewController INTERFACE
+//
+//*** IMPORTANT: *** DO NOT INSTANTIATE AN OBJECT OF THIS CLASS!!!!! ***
+// The GenericPocketJetPrintSettingsViewController class is essentially an
+// ABSTRACT class.
+// Instead, you should instantiate the model-specific class,
+// e.g. PJ673PrintSettingsViewController.
+//*********************************************************************
+
+@interface GenericPocketJetPrintSettingsViewController : PrintSettingsViewController
+{
+}
+
+// "style" MUST be set to UITableViewStyleGrouped!!
+-(id)initWithStyle:(UITableViewStyle)style;
+
+// SDK Designers: The PrintSettingsViewController superclass defines several properties:
+// printSettings, popoverSize, rowHeight, fontSize, printSettingsDelegate,
+// showIPAddressHelpButton, IPAddressHelpFileName, and showSettingsOptionMask.
+// So, they are not defined in here.
+// However, this class and/or a model-specific subclass should "init" these properties
+// and handle setter overrides (if necessary).
+//
+// SDK Users: You should be familiar with the superclass properties so you can set
+// them accordingly, in particular the printSettingsDelegate (which handles
+// the PrintSettingsResponder protocol).
+
+
+@end
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/PJ673PrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/PJ673PrintSettings.h
new file mode 100755
index 0000000..17e53c9
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/PJ673PrintSettings.h
@@ -0,0 +1,43 @@
+//
+// PJ673PrintSettings.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/11/12.
+// Copyright (c) 2012 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericPocketJetPrintSettings.h"
+
+@interface PJ673PrintSettings : GenericPocketJetPrintSettings
+
+// These constants below are provided for reference only. DO NOT MODIFY!
+#define PJ673_RESOLUTION_HORZ 300
+#define PJ673_RESOLUTION_VERT 300
+
+// Arbitrarily restrict extraFeed to 11" at 300 dpi. There is no reason to be larger.
+#define PJ673_MAX_EXTRAFEEDDOTS (11*PJ673_RESOLUTION_VERT)
+
+// NOTE: These custom MIN/MAX settings will be built into framework, so you can't change them.
+// And, the setter functions will clip to these values. The reasons for these choices are described below.
+// If you require something different for some reason, please contact Technical Support.
+#define PJ673_CUSTOM_WIDTHDOTS_MIN 1200 // 4" due to likely skewing of narrower paper. Otherwise can be lower.
+#define PJ673_CUSTOM_WIDTHDOTS_MAX 2550 // 8.5" = max paper width
+#define PJ673_CUSTOM_LENGTHDOTS_MIN 600 // 2" to allow PerfRoll paper to print anything due to large unprintable area
+#define PJ673_CUSTOM_LENGTHDOTS_MAX 30000 // 100", arbitrary
+
+//*** IMPORTANT ***
+// SDK Users:
+// You should NEVER instantiate an object of the GenericPocketJetPrintSettings class.
+// Instead, you should instantiate one of the model-specific subclasses (i.e. PJ673PrintSettings).
+//
+// For a list of important properties in the settings that your application needs to set,
+// refer to the GenericPocketJetPrintSettings superclass.
+
+// SDK Designers:
+// The GenericPocketJetPrintSettings class handles all the important work.
+// This subclass only needs to provide the model-specific data to the generic class.
+
+//*** ADDITIONAL PROPERTIES not handled by GenericPocketJetPrintSettings
+
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/PJ673PrintSettingsViewController.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/PJ673PrintSettingsViewController.h
new file mode 100755
index 0000000..cb6ec15
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/PJ673PrintSettingsViewController.h
@@ -0,0 +1,40 @@
+//
+// PJ673PrintSettingsViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 8/8/12.
+// Copyright (c) 2012 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericPocketJetPrintSettingsViewController.h"
+#import "PJ673PrintSettings.h"
+
+// This is the DEFAULT popup contentSize for PJ673PrintSettingsViewController.
+//
+// You can override this by setting the "popoverSize" property (defined in the
+// PrintSettingsViewController superclass) to something different
+// before showing the ViewController.
+//
+// The popoverSize setting will be propagated to all of the "child" ViewControllers
+// of the main ViewController so all of the detail views will be the SAME size as each other.
+//
+// NOTE: iPad1 and iPad2 size = 1024 x 768, iPad3 = 2048 x 1536
+#define PJ673POPUPCONTENTSIZE CGSizeMake(400,480)
+#define PJ673POPUPCONTENTSIZE_IOS7 CGSizeMake(400,588)
+
+/*
+ This class is a subclass of GenericPocketJetPrintSettingsViewController,
+ which implements all the major functionality.
+
+ *** SDK Users:
+ DO NOT INSTANTIATE an instance of GenericPocketJetPrintSettingsViewController.
+ Always instantiate a model-specific class, e.g. PJ673PrintSettingsViewController
+ */
+
+@interface PJ673PrintSettingsViewController : GenericPocketJetPrintSettingsViewController
+{
+}
+
+@end
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/PJ763MFIPrintSettingsViewController.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/PJ763MFIPrintSettingsViewController.h
new file mode 100755
index 0000000..67e0b63
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/PJ763MFIPrintSettingsViewController.h
@@ -0,0 +1,41 @@
+//
+// PJ763MFiPrintSettingsViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 8/8/12.
+// Copyright (c) 2012 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericPocketJetPrintSettingsViewController.h"
+#import "PJ763MFiPrintSettings.h"
+
+// This is the DEFAULT popup contentSize for PJ763MFiPrintSettingsViewController.
+//
+// You can override this by setting the "popoverSize" property (defined in the
+// PrintSettingsViewController superclass) to something different
+// before showing the ViewController.
+//
+// The popoverSize setting will be propagated to all of the "child" ViewControllers
+// of the main ViewController so all of the detail views will be the SAME size as each other.
+//
+// NOTE: iPad1 and iPad2 size = 1024 x 768, iPad3 = 2048 x 1536
+//#define PJ763MFiPOPUPCONTENTSIZE CGSizeMake(400,480)
+#define PJ763MFiPOPUPCONTENTSIZE CGSizeMake(400,548)
+#define PJ763MFiPOPUPCONTENTSIZE_IOS7 CGSizeMake(400,588)
+
+/*
+ This class is a subclass of GenericPocketJetPrintSettingsViewController,
+ which implements all the major functionality.
+
+ *** SDK Users:
+ DO NOT INSTANTIATE an instance of GenericPocketJetPrintSettingsViewController.
+ Always instantiate a model-specific class, e.g. PJ763MFiPrintSettingsViewController
+ */
+
+@interface PJ763MFiPrintSettingsViewController : GenericPocketJetPrintSettingsViewController
+{
+}
+
+@end
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/PJ763MFiPrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/PJ763MFiPrintSettings.h
new file mode 100755
index 0000000..1ae62d0
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/PJ763MFiPrintSettings.h
@@ -0,0 +1,45 @@
+//
+// PJ763MFiPrintSettings.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/11/12.
+// Copyright (c) 2012 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericPocketJetPrintSettings.h"
+
+@interface PJ763MFiPrintSettings : GenericPocketJetPrintSettings
+
+// These constants below are provided for reference only. DO NOT MODIFY!
+#define PJ763MFi_RESOLUTION_HORZ 300
+#define PJ763MFi_RESOLUTION_VERT 300
+
+// Arbitrarily restrict extraFeed to 11" at 300 dpi. There is no reason to be larger.
+#define PJ763MFi_MAX_EXTRAFEEDDOTS (11*PJ763MFi_RESOLUTION_VERT)
+
+// NOTE: These custom MIN/MAX settings will be built into framework, so you can't change them.
+// And, the setter functions will clip to these values. The reasons for these choices are described below.
+// If you require something different for some reason, please contact Technical Support.
+#define PJ763MFi_CUSTOM_WIDTHDOTS_MIN 1200 // 4" due to likely skewing of narrower paper. Otherwise can be lower.
+#define PJ763MFi_CUSTOM_WIDTHDOTS_MAX 2550 // 8.5" = max paper width
+#define PJ763MFi_CUSTOM_LENGTHDOTS_MIN 600 // 2" to allow PerfRoll paper to print anything due to large unprintable area
+#define PJ763MFi_CUSTOM_LENGTHDOTS_MAX 30000 // 100", arbitrary
+
+//*** IMPORTANT ***
+// SDK Users:
+// You should NEVER instantiate an object of the GenericPocketJetPrintSettings class.
+// Instead, you should instantiate one of the model-specific subclasses (i.e. PJ763MFiPrintSettings).
+//
+// For a list of important properties in the settings that your application needs to set,
+// refer to the GenericPocketJetPrintSettings superclass.
+
+// SDK Designers:
+// The GenericPocketJetPrintSettings class handles all the important work.
+// This subclass only needs to provide the model-specific data to the generic class.
+
+//*** ADDITIONAL PROPERTIES not handled by GenericPocketJetPrintSettings
+@property (nonatomic, assign) ROLL_CASE_OPTION rollCaseOption;
+@property (nonatomic, assign) PRINT_SPEED_OPTION printSpeedOption;
+
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/PJ773PrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/PJ773PrintSettings.h
new file mode 100755
index 0000000..ad67622
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/PJ773PrintSettings.h
@@ -0,0 +1,46 @@
+//
+// PJ773PrintSettings.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/11/12.
+// Copyright (c) 2012 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericPocketJetPrintSettings.h"
+
+
+@interface PJ773PrintSettings : GenericPocketJetPrintSettings
+
+// These constants below are provided for reference only. DO NOT MODIFY!
+#define PJ773_RESOLUTION_HORZ 300
+#define PJ773_RESOLUTION_VERT 300
+
+// Arbitrarily restrict extraFeed to 11" at 300 dpi. There is no reason to be larger.
+#define PJ773_MAX_EXTRAFEEDDOTS (11*PJ773_RESOLUTION_VERT)
+
+// NOTE: These custom MIN/MAX settings will be built into framework, so you can't change them.
+// And, the setter functions will clip to these values. The reasons for these choices are described below.
+// If you require something different for some reason, please contact Technical Support.
+#define PJ773_CUSTOM_WIDTHDOTS_MIN 1200 // 4" due to likely skewing of narrower paper. Otherwise can be lower.
+#define PJ773_CUSTOM_WIDTHDOTS_MAX 2550 // 8.5" = max paper width
+#define PJ773_CUSTOM_LENGTHDOTS_MIN 600 // 2" to allow PerfRoll paper to print anything due to large unprintable area
+#define PJ773_CUSTOM_LENGTHDOTS_MAX 30000 // 100", arbitrary
+
+//*** IMPORTANT ***
+// SDK Users:
+// You should NEVER instantiate an object of the GenericPocketJetPrintSettings class.
+// Instead, you should instantiate one of the model-specific subclasses (i.e. PJ773PrintSettings).
+//
+// For a list of important properties in the settings that your application needs to set,
+// refer to the GenericPocketJetPrintSettings superclass.
+
+// SDK Designers:
+// The GenericPocketJetPrintSettings class handles all the important work.
+// This subclass only needs to provide the model-specific data to the generic class.
+
+//*** ADDITIONAL PROPERTIES not handled by GenericPocketJetPrintSettings
+@property (nonatomic, assign) ROLL_CASE_OPTION rollCaseOption;
+@property (nonatomic, assign) PRINT_SPEED_OPTION printSpeedOption;
+
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/PJ773PrintSettingsViewController.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/PJ773PrintSettingsViewController.h
new file mode 100755
index 0000000..97048c9
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/PJ773PrintSettingsViewController.h
@@ -0,0 +1,41 @@
+//
+// PJ773PrintSettingsViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 8/8/12.
+// Copyright (c) 2012 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericPocketJetPrintSettingsViewController.h"
+#import "PJ773PrintSettings.h"
+
+// This is the DEFAULT popup contentSize for PJ773PrintSettingsViewController.
+//
+// You can override this by setting the "popoverSize" property (defined in the
+// PrintSettingsViewController superclass) to something different
+// before showing the ViewController.
+//
+// The popoverSize setting will be propagated to all of the "child" ViewControllers
+// of the main ViewController so all of the detail views will be the SAME size as each other.
+//
+// NOTE: iPad1 and iPad2 size = 1024 x 768, iPad3 = 2048 x 1536
+//#define PJ773POPUPCONTENTSIZE CGSizeMake(400,480)
+#define PJ773POPUPCONTENTSIZE CGSizeMake(400,548)
+#define PJ773POPUPCONTENTSIZE_IOS7 CGSizeMake(400,588)
+
+/*
+ This class is a subclass of GenericPocketJetPrintSettingsViewController,
+ which implements all the major functionality.
+
+ *** SDK Users:
+ DO NOT INSTANTIATE an instance of GenericPocketJetPrintSettingsViewController.
+ Always instantiate a model-specific class, e.g. PJ773PrintSettingsViewController
+ */
+
+@interface PJ773PrintSettingsViewController : GenericPocketJetPrintSettingsViewController
+{
+}
+
+@end
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/PrintSettingTableViewController.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/PrintSettingTableViewController.h
new file mode 100755
index 0000000..74a176d
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/PrintSettingTableViewController.h
@@ -0,0 +1,51 @@
+//
+// PrintSettingTableViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 2/11/13.
+// Copyright (c) 2013 Brother Mobile Solutions. All rights reserved.
+//
+// NOTE: This is a generic implementation for all print settings that use a
+// TableView to display the settings. It handles only a single setting at a time.
+//
+// NOTE: This class is used INTERNALLY to the SDK only. But, we need to make this a PUBLIC header file
+// because other public headers need to #import it due to the PrintSettingTableViewResponder protocol.
+
+#import
+
+@protocol PrintSettingTableViewResponder
+// The "tableViewItemChanged" function must be implemented by the class that
+// uses this PrintSettingTableViewController.
+// This function is responsible to:
+// (1) set the new value to its copy of the printSettings,
+// (2) handle any "mutually exclusive" settings (such as FFMode and PaperType),
+// (3) call "printSettingsDidChange" function per the "PrintSettingsSetter"
+// protocol to pass the settings change notification along
+- (void)tableViewItemChanged: (int)whichSetting newItemValue:(int)newItemValue;
+@end
+
+@protocol PrintSettingTableViewSetter
+@property (assign, nonatomic) id printSettingDelegate;
+@end
+
+
+@interface PrintSettingTableViewController : UITableViewController
+{
+ UITableViewCell *_cellWithCheck;
+}
+// used internally only
+@property (nonatomic, retain) UITableViewCell *cellWithCheck;
+
+// Must be set by caller.
+@property (nonatomic, assign) int whichPrintSetting;
+@property (nonatomic, retain) NSString *viewTitle;
+@property (nonatomic, retain) NSArray *tableItemArray;
+@property (nonatomic, assign) int initialItemValueToCheck;
+@property (nonatomic, assign) UITableViewCellStyle cellStyle;
+@property (nonatomic, retain) NSString *section0Title;
+
+// The class which implements the printSettingDidChange function.
+// This MUST be set by the CALLER before we are loaded. It cannot be nil!!
+@property (assign, nonatomic) id printSettingDelegate;
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/PrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/PrintSettings.h
new file mode 100755
index 0000000..ac0ba05
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/PrintSettings.h
@@ -0,0 +1,467 @@
+//
+// PrintSettings.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/11/12.
+// Copyright (c) 2012 Brother Mobile Solutions. All rights reserved.
+//
+// NOTE: This is the super-class that contains properties and methods common to each printer model.
+
+#import
+
+//#define ALLOW_BT_TEMPORARILY 1 // TODO: define or undefine this if applicable
+
+
+//*********************************************************************
+// PrintSettingsDelegate PROTOCOL
+//
+// Subclasses of PrintSettings are required to implement the following protocol.
+@protocol PrintSettingsDelegate
+
+//*** Methods
+// SDK Users: These are primary API methods that you may want to use!
+- (BOOL) validatePrintSettings;
+// TODO: Consider changing proto to return BOOL instead of void.
+// For loadPrefs, return FALSE if it detects that they have never been saved previously.
+// This could be helpful in some ISV scenarios.
+- (void) loadPreferences;
+- (void) savePreferences;
+
+// These are only convenience methods, if needed. But, we need to assure that each
+// subclass (and/or the superclass) implements them by adding them to the protocol.
+- (NSString *)stringFromCurrentPaperType;
+- (NSString *)stringFromCurrentPaperSize;
+- (NSString *)stringFromCurrentFormFeedMode;
+- (NSString *)stringFromCurrentExtraFeed;
+- (NSString *)stringFromCurrentDensity;
+
+// NOTE: IPAddress is already an NSString so don't need an API function for it.
+// NOTE: bluetoothDeviceName is already an NSString so don't need an API function for it.
+- (NSString *)stringFromCurrentChannelType;
+- (NSString *)stringFromCurrentIPPort;
+- (NSString *)stringFromCurrentScaleMode;
+- (NSString *)stringFromCurrentOrientation;
+- (NSString *)stringFromCurrentMargins;
+- (NSString *)stringFromCurrentHalftone;
+- (NSString *)stringFromCurrentThreshold;
+- (NSString *)stringFromCurrentCompress;
+- (NSString *)stringFromCurrentInvert;
+- (NSString *)stringFromCurrentPrinterModel;
+
+//*** Strings for custom properties not included in the GenericXXX class.
+// PJ
+- (NSString *)stringFromCurrentRollCase;
+- (NSString *)stringFromCurrentPrintSpeed;
+
+// RJ/TD
+- (NSString *)stringFromCurrentCoolingDelayEnabled;
+- (NSString *)stringFromCurrentCutterOptions;
+
+//*** Properties
+// NOTE: If you wish to get/set any model-dependent properties, then you
+// will need to use (or cast to) an object of the specific subclass.
+// You will NOT be able to use an object of type "PrintSettings *" to
+// access these properties; the compiler will give a "may not respond to" warning.
+//
+// For example 1:
+// PrintSettings *mySettings = [[PJ673PrintSettings alloc] init];
+// // NO!!
+// [mySettings setFormFeedMode:kFormFeedModeFixedPage];
+// // YES!!
+// [(PJ673PrintSettings *)mySettings setFormFeedMode:kFormFeedModeFixedPage];
+//
+// For example 2:
+// PJ673PrintSettings *mySettings = [[PJ673PrintSettings alloc] init];
+// [mySettings setFormFeedMode:kFormFeedModeFixedPage]; // OK!!
+//
+// Though many subclass properties are common to all models,
+// (e.g. paperType, formFeedMode, extraFeed, density), and we COULD put
+// those into this protocol, this is not going to be possible when we
+// get to "paperSize", since PJ-673 handles this very differently from
+// RJ4/TD2 models. So, you will need a specific subclass for that anyway.
+//
+// Furthermore, if we were to put these into this protocol, then the
+// PrintSettings superclass will be required to add these properties to
+// the interface and synthesize them, though they will NEVER be used.
+//
+// Furthermore, since TD2 has properties that are specific for it, we
+// cannot add those to this protocol, so again you will have to use
+// (or cast to) a specific subclass to access these.
+//
+// As such, we will NOT add these 'common' model-specific properties
+// to this protocol.
+//
+// NOTE: We did add the corresponding "stringFromCurrentXXX" methods
+// above, because these can be accessed generically, even for PaperSize.
+
+@end // PrintSettingsDelegate protocol
+//*********************************************************************
+
+
+//*********************************************************************
+//*** NSUserDefaults
+// These are the top-level keys. Each model will have its own "dictionary" of subkeys
+// below this key, so all of the keys for a model will be self-contained.
+#define keyPJ673PrintSettings @"PJ-673 Print Settings"
+#define keyPJ763MFiPrintSettings @"PJ-763MFi Print Settings"
+#define keyPJ773PrintSettings @"PJ-773 Print Settings"
+#define keyRJ4040PrintSettings @"RJ-4040 Print Settings"
+#define keyRJ4030AiPrintSettings @"RJ-4030Ai Print Settings"
+#define keyRJ4230BPrintSettings @"RJ-4230B Print Settings"
+#define keyRJ4250WBPrintSettings @"RJ-4250WB Print Settings"
+#define keyTD2120NPrintSettings @"TD-2120N Print Settings"
+#define keyTD2130NPrintSettings @"TD-2130N Print Settings"
+#define keyRJ3050PrintSettings @"RJ-3050 Print Settings"
+#define keyRJ3050AiPrintSettings @"RJ-3050Ai Print Settings"
+#define keyRJ3150PrintSettings @"RJ-3150 Print Settings"
+#define keyRJ3150AiPrintSettings @"RJ-3150Ai Print Settings"
+#define keyRJ2050PrintSettings @"RJ-2050 Print Settings"
+#define keyRJ2140PrintSettings @"RJ-2140 Print Settings"
+#define keyRJ2150PrintSettings @"RJ-2150 Print Settings"
+#define keyTD4550DNWBPrintSettings @"TD-4550DNWB Print Settings"
+
+// common properties from PrintSettings superclass
+#define keyChannelType @"ChannelType"
+#define keyIPAddress @"IPAddress"
+#define keyBluetoothDeviceName @"BluetoothDeviceName"
+#define keyIPPort @"IPPort"
+#define keyScaleMode @"Scale Mode"
+#define keyOrientation @"Orientation"
+#define keyHalftone @"Halftone"
+#define keyThreshold @"Threshold"
+#define keyCompressionOn @"Compress"
+#define keyMarginTop @"MarginTop"
+#define keyMarginLeft @"MarginLeft"
+#define keyMarginBottom @"MarginBottom"
+#define keyMarginRight @"MarginRight"
+#define keyInvertPrintData @"InvertPrintData"
+
+// common properties from each subclass
+#define keyPaperType @"PaperType"
+#define keyFormFeedMode @"FormFeedMode"
+#define keyExtraFeed @"ExtraFeed"
+#define keyDensity @"Density"
+
+// Papersize is handled differently for different models.
+// Some models (e.g. PJ-673) have a set of fixed sizes defined by constants.
+#define keyPaperSize @"PaperSize"
+// But, now we added Custom Size capability, so let's add some more keys
+#define keyCustomPaperWidth @"CustomPaperWidth"
+#define keyCustomPaperLength @"CustomPaperLength"
+#define keyCustomPaperAlign @"CustomPaperAlign"
+
+
+// For other models (RJ4040, RJ3050, RJ3150, TD2120N, TD2130N),
+// PaperSize is broken up into the following components
+#define keyPaperWidth @"PaperWidth"
+#define keyPaperLength @"PaperLength"
+#define keyPaperMarginWidth @"PaperMarginWidth"
+#define keyPaperMarginLength @"PaperMarginLength"
+#define keyLabelSpacing @"LabelSpacing"
+#define keyMarkWidth @"MarkWidth"
+#define keyMarkOffset @"MarkOffset"
+// new papersize related keys added in 2.3.4
+#define keyEnergyRank @"EnergyRank"
+#define keySensThrAdj @"Sensor Threshold Adjustment"
+#define keySensDutyAdj @"Sensor Duty Adjustment"
+#define keyHorzPosAdjDots @"Horz Position Adjustment"
+#define keyVertPosAdjDots @"Vert Position Adjustment"
+
+
+// TD2 specific keys
+#define keyPeelerEnabled @"Peeler Enabled"
+#define keyInvert180Degrees @"Invert 180 Degrees"
+
+// RJ42 specific keys
+#define keyCoolingDelayEnabled @"Cooling Delay Enabled"
+
+// TD-4550DNWB specific keys
+#define keyCutAtEndOfJobEnabled @"CutAtEnd Enabled"
+#define keyAutoCutEnabled @"AutoCut Enabled"
+#define keyAutoCutEveryNLabels @"AutoCut Every N Labels"
+
+// PJ7 specific keys
+#define keyPrintSpeedOption @"Print Speed Option"
+#define keyRollCaseOption @"Roll Case Option"
+
+// PrintSettingsViewController specific keys
+#define keyBluetoothVCSearchSelectsSerialNumber @"Bluetooth Search Selects Serial Number"
+
+
+//*********************************************************************
+
+
+//*********************************************************************
+//*** Constant Enumerations
+// These are "common" to all printer models
+
+typedef enum
+{
+ // Currently supported printer models
+ // NOTE TO DEVELOPERS: Sometimes the order of the models defined here changes.
+ // While I probably *should* just add new models to the END of the list, instead I sometimes rearrange them
+ // so that they are grouped in a more meaningful way.
+ // Since save/loadPreferences SDK API uses a named key, that shouldn't cause you any problems if the enum changes.
+ // However, if your own app stores this value to preferences separately, I just realized that the value
+ // you saved from older SDK may no longer match the model enum value in a new SDK when you load it from prefs.
+ // As such, if you do store this in preferences,
+ // I recommend that you use **your own** defined enum values (or string values) for the "current model to use",
+ // rather than rely on these being the same with each new SDK release.
+ // If this affects your code in some way after you update to a new SDK, I apologize!!
+ kPrinterModelPJ673 = 1,
+ kPrinterModelPJ763MFi,
+ kPrinterModelPJ773,
+ kPrinterModelRJ4030Ai,
+ kPrinterModelRJ4040,
+ kPrinterModelRJ4230B,
+ kPrinterModelRJ4250WB,
+ kPrinterModelRJ3050,
+ kPrinterModelRJ3050Ai,
+ kPrinterModelRJ3150,
+ kPrinterModelRJ3150Ai,
+ kPrinterModelRJ2050,
+ kPrinterModelRJ2140,
+ kPrinterModelRJ2150,
+ kPrinterModelTD2120N,
+ kPrinterModelTD2130N,
+ kPrinterModelTD4550DNWB,
+
+} PRINTERMODEL;
+
+typedef enum
+{
+ kChannelTypeWIFI = 1,
+ kChannelTypeBluetooth,
+ kChannelTypeFile, // NOTE: When this is selected, SDK will create file "Output.prn" in the App Documents folder.
+} CHANNELTYPE;
+
+typedef enum
+{
+ kHalftoneThreshold = 1,
+ kHalftoneDiffusion,
+} HALFTONE;
+
+typedef enum
+{
+ kScaleModeActualSize = 1,
+ kScaleModeFitPage,
+ kScaleModeFitPageAspect,
+ kScaleModeFitWidthAspectAutoHeight,
+} SCALEMODE;
+
+typedef enum
+{
+ kOrientationPortrait = 1,
+ kOrientationLandscape90,
+ kOrientationPortrait180,
+ kOrientationLandscape270,
+} ORIENTATION;
+
+//*** The following enums are for properties defined in each subclass,
+// i.e. they are model-specific properties (at least as concerns the subset of values supported).
+// We define them here instead of in each subclass' header file so they can hold ALL of the
+// possible values for ALL models to avoid "redefinition of enumerator" compiler errors if we
+// attempt to use the same constant names in different enums within each subclass.
+// *** Each printer model is likely to support only a SUBSET of these values. ***
+// As such, we will handle limiting the available choices in the "setter" function for each
+// property in the appropriate PrintSettings subclass for each model.
+// Refer to the SDK Documentation for a list of values supported by each printer model.
+typedef enum
+{
+ kPaperSizeLetter=1,
+ kPaperSizeLegal,
+ kPaperSizeA4,
+ kPaperSizeCustom,
+} PAPERSIZE;
+
+typedef enum
+{
+ kPaperTypeRoll = 1, // unmarked roll, used by PJ, RJ, and TD
+ kPaperTypeCutsheet, // PJ only
+ kPaperTypePerfRoll, // marked roll, used by PJ, RJ, and TD
+ kPaperTypePerfRollRetract, // marked roll, with forced retraction, used by PJ only
+ kPaperTypeDieCutLabel, // label, used by RJ and TD only
+} PAPERTYPE;
+
+
+typedef enum
+{
+ kFormFeedModeNoFeed=1,
+ kFormFeedModeFixedPage,
+ kFormFeedModeEndOfPage,
+ kFormFeedModeEndOfPageRetract,
+} FORMFEEDMODE;
+
+typedef enum
+{
+ kDensity0 = 0, // start this one at 0 rather than 1. "stringFromDensity" in particular requires this.
+ kDensity1,
+ kDensity2,
+ kDensity3,
+ kDensity4,
+ kDensity5,
+ kDensity6,
+ kDensity7,
+ kDensity8,
+ kDensity9,
+ kDensity10,
+ kDensityUsePrinterSetting, // use value saved to printer, don't send command
+} DENSITY;
+
+// PJ-7 only
+typedef enum
+{
+ kRollCaseOption_None = 1,
+ kRollCaseOption_PARC001_NoAntiCurl,
+ kRollCaseOption_PARC001,
+ kRollCaseOption_UsePrinterSetting, // use value saved to printer, don't send command
+} ROLL_CASE_OPTION;
+
+// PJ-7 only
+typedef enum
+{
+ kPrintSpeedOption_65mmpersec = 1, // 2.5 ips
+ kPrintSpeedOption_48mmpersec, // 1.9 ips
+ kPrintSpeedOption_41mmpersec, // 1.6 ips
+ kPrintSpeedOption_27mmpersec, // 1.1 ips
+ kPrintSpeedOption_UsePrinterSetting, // use value saved to printer, don't send command
+} PRINT_SPEED_OPTION;
+
+//*********************************************************************
+
+
+//*********************************************************************
+//*** struct definitions
+
+// Arbitrarily limit the size (in dots) of each margin dimension to something rational.
+// These values are used when setting and validating the margins.
+#define MARGINDOTSMIN 0
+#define MARGINDOTSMAX 1000
+
+typedef struct
+{
+ int top;
+ int left;
+ int bottom;
+ int right;
+} MARGINS, *pMARGINS;
+//*********************************************************************
+
+
+@interface PrintSettings : NSObject
+{
+ // provide subclasses with access to READONLY properties via ivars.
+ // Because they are readonly, there is no "Setter" method available in the superclass.
+ // The subclasses should be the only place where these properties are set.
+ // But, they will be used in this superclass.
+ // Users of this superclass can read the values if desired, but in most cases this
+ // will not be necessary.
+ PRINTERMODEL _printerModel;
+
+ // provide subclasses with access to non-readonly ivars too, especially if subclass implements setter override.
+ CHANNELTYPE _channelType;
+
+}
+
+// NOTE: This superclass contains properties that will be common to all subclasses.
+
+// SDK Users: All of the properties below (and those in the PrintSettings subclasses)
+// are settable by you to change the printer behavior.
+// If you are not using the PrintSettingsViewController (either the SDK's or your own custom one),
+// then you should set each of these properties programmatically to your desired setting.
+
+@property (nonatomic, assign) CHANNELTYPE channelType;
+@property (nonatomic, retain) NSString *IPAddress;
+@property (nonatomic, assign) int IPPort;
+@property (nonatomic, retain) NSString *bluetoothDeviceNameOrSerialNumber;
+
+@property (nonatomic, assign) SCALEMODE scaleMode;
+@property (nonatomic, assign) ORIENTATION orientation;
+@property (nonatomic, assign) MARGINS marginDots;
+
+@property (nonatomic, assign) HALFTONE halftone;
+// INCREASE this value to make printout darker. Decrease to make it lighter. Default is 128.
+@property (nonatomic, assign) Byte threshold;
+@property (nonatomic, assign) BOOL compress;
+// NOTE: Added this property to allow inverting the print data (i.e. black<->white)
+// But, not adding this to the ViewController. It must be set programmatically.
+@property (nonatomic, assign) BOOL bInvert;
+
+//*** NOTE: The following properties are NOT used for printing,
+// but they are part of the PrintSettings superclass for convenience.
+
+// For save/loadPreferences, each subclass MUST set this during init.
+// NOTE: If desired, the caller can set this to be different from the default, so not using readonly attribute.
+@property (nonatomic, retain) NSString *preferencesKey;
+
+//*** The following properties are used ONLY by the PrintSettingsViewController(s)
+// They are specified here only to allow SDK-related preferences to be stored in their own container
+// along with the rest of the preferences.
+@property (nonatomic, assign) BOOL bBluetoothVCSearchSelectsSerialNumber;
+
+
+//*** READONLY properties. Values will be set by the subclass. SDK User can NOT change it.
+// printerModel may be useful if the subclass (e.g. PJ673PrintSettings) object instance is
+// stored inside the app using a superclass (e.g. PrintSettings) object reference.
+// This can be used to perform model-specific behavior in your app, if necessary.
+@property (readonly, nonatomic, assign) PRINTERMODEL printerModel;
+
+// *** PrintSettingsDelegate protocol
+// All subclasses of PrintSettings are required to implement these methods.
+// validatePrintSettings - This function assures that all properties are in range
+// and that there are no conflicting settings.
+- (BOOL) validatePrintSettings;
+- (void) loadPreferences;
+- (void) savePreferences;
+
+// These are only convenience methods, if needed. But, we need to assure that each
+// subclass (and/or the superclass) implements them by adding them to the protocol.
+
+//*** generate strings from CURRENT values of properties, for convenience
+- (NSString *)stringFromCurrentPaperType;
+- (NSString *)stringFromCurrentPaperSize;
+- (NSString *)stringFromCurrentFormFeedMode;
+- (NSString *)stringFromCurrentExtraFeed;
+- (NSString *)stringFromCurrentDensity;
+
+// NOTE: IPAddress is already an NSString so don't need an API function for it.
+// NOTE: bluetoothDeviceName is already an NSString so don't need an API function for it.
+- (NSString *)stringFromCurrentChannelType;
+- (NSString *)stringFromCurrentIPPort;
+- (NSString *)stringFromCurrentScaleMode;
+- (NSString *)stringFromCurrentOrientation;
+- (NSString *)stringFromCurrentMargins;
+- (NSString *)stringFromCurrentHalftone;
+- (NSString *)stringFromCurrentThreshold;
+- (NSString *)stringFromCurrentCompress;
+- (NSString *)stringFromCurrentInvert;
+- (NSString *)stringFromCurrentPrinterModel;
+// Strings for custom properties not included in the GenericXXX class.
+// PJ
+- (NSString *)stringFromCurrentRollCase;
+- (NSString *)stringFromCurrentPrintSpeed;
+// RJ/TD
+- (NSString *)stringFromCurrentCoolingDelayEnabled;
+- (NSString *)stringFromCurrentCutterOptions; // TD-4550DNWB only for now.
+
+
+//*** generate strings from SPECIFIC constants, for convenience
+// NOTE: IPAddress is already an NSString so don't need an API function for it.
+// NOTE: bluetoothDeviceName is already an NSString so don't need an API function for it.
+- (NSString *)stringFromChannelType:(CHANNELTYPE)channelType;
+- (NSString *)stringFromIPPort: (int)ipPort;
+- (NSString *)stringFromScaleMode:(SCALEMODE)scaleMode;
+- (NSString *)stringFromOrientation:(ORIENTATION)orientation;
+- (NSString *)stringFromMargins:(MARGINS)margins;
+- (NSString *)stringFromHalftone: (HALFTONE)halftone;
+- (NSString *)stringFromThreshold:(Byte)threshold;
+- (NSString *)stringFromBool: (BOOL)boolValue; // used with compress, invert
+- (NSString *)stringFromPrinterModel: (PRINTERMODEL)model;
+// Strings for custom properties not included in the GenericXXX class.
+// PJ
+- (NSString *)stringFromRollCase:(ROLL_CASE_OPTION)rollCaseOption;
+- (NSString *)stringFromPrintSpeed:(PRINT_SPEED_OPTION)printSpeedOption;
+// RJ/TD
+- (NSString *)stringFromCutEveryNLabels:(Byte)nLabels;
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/PrintSettingsViewController.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/PrintSettingsViewController.h
new file mode 100755
index 0000000..195a17b
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/PrintSettingsViewController.h
@@ -0,0 +1,203 @@
+//
+// PrintSettingsViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 8/8/12.
+// Copyright (c) 2012 Brother Mobile Solutions. All rights reserved.
+//
+// The PrintSettingsViewController class is the SUPERCLASS of each of the
+// model-specific view controller classes.
+//
+// You should NEVER instantiate an object of this superclass. Instead, instantiate
+// an object of the model-specific subclass, e.g. PJ673PrintSettingsViewController.
+
+#import
+#import "PrintSettings.h"
+
+// The following mask constants allow customizing the options available in the PrintSettingsViewController.
+// Combine these using the OR (|) operator to select only the options you want to be available.
+// Set these into the property named "showSettingsOptionMask".
+typedef enum
+{
+ // NOTE: Not all options will be available for all printer models.
+ // If an unsupported option is added to the mask, it will be ignored.
+
+ // Printer Connection Settings
+ kShowSettingsOption_ChannelType = 0x00000001,
+ kShowSettingsOption_IPAddress = 0x00000002,
+ kShowSettingsOption_Bluetooth = 0x00000004,
+ // Printer-specific settings
+ kShowSettingsOption_PaperSize = 0x00000008,
+ kShowSettingsOption_PaperType = 0x00000010,
+ kShowSettingsOption_FormFeedMode = 0x00000020,
+ kShowSettingsOption_ExtraFeed = 0x00000040,
+ kShowSettingsOption_Density = 0x00000080,
+ // General Settings
+ kShowSettingsOption_ScaleMode = 0x00000100,
+ kShowSettingsOption_Orientation = 0x00000200,
+ kShowSettingsOption_Margins = 0x00000400,
+ kShowSettingsOption_Halftone = 0x00000800,
+ kShowSettingsOption_Threshold = 0x00001000,
+ kShowSettingsOption_Invert = 0x00002000,
+
+ // PJ7 model-specific settings not handled by above options
+ kShowSettingsOption_RollCase = 0x00004000,
+ kShowSettingsOption_PrintSpeed = 0x00008000,
+
+ // RJ42 model-specific settings not handled by above options
+ // NOTE: This is now in genericMLM class, but only RJ42 seems to need it.
+ kShowSettingsOption_CoolingDelayEnabled = 0x00010000,
+
+ // TD-4550DNWB model-specific settings not handled by above options
+ kShowSettingsOption_Cutter = 0x00020000,
+
+ // ViewController Settings
+ // Normally, the TableView uses 3 sections. However, depending on the combination
+ // of settings added, it may look better with only a single section.
+ kShowSettingsOption_SingleSection = 0x80000000,
+
+} SETTINGS_OPTIONS_MASK;
+
+//*********************************************************************
+// PrintSettingsResponder PROTOCOL
+// NOTE: Perhaps a better way to implement this would be using NSNotificationCenter.
+// But, for now we will use with this approach.
+/*
+ A class that uses a PrintSettingsViewController is a PrintSettingsResponder.
+
+ You are required to do 3 things if you implement this protocol:
+ --------------------------------------------------------------
+ 1. Set the "printSettingsDelegate" property in the PrintSettingsViewController class
+ object in order to receive the printSettingsDidChange notification. Since
+ each PrintSettingsViewController implements the PrintSettingsSetter protocol, each
+ of the model-specific ViewControllers will have this property.
+
+ 2. Implement the printSettingsDidChange function.
+
+ 3. Implement the searchingForPrinterDidChange function.
+ This is a CRITICAL new callback method for apps that display PrintSettingsVC in a POPOVER control for iPad.
+ If user is searching for printers via the IPAddressViewController,
+
+ SDK Users:
+ ---------
+ You should implement this protocol if you choose to display any of the
+ model-specific PrintSettingsViewControllers built-in to the SDK, but only if you
+ care to be notified when any of the settings are changed by the controller,
+ -OR- (NEW) if you allow the Search feature to be available and you show the PrintSettingsVC
+ in a POPOVER control, to prevent the popover from being dismissed when search is active.
+
+ For example, you can allow the view controller to change the print settings,
+ and you can pass the new settings to the BMSPrinterDriver when you need to
+ use them. In this case, you do not need to implement this protocol.
+
+ However, you may want to "savePreferences" when any of the settings change,
+ as the SDK will not do this automatically. In this case, you do need to
+ implement this protocol to call the savePreferences API in your implementation
+ of the printSettingsDidChange API.
+ */
+//*********************************************************************
+@protocol PrintSettingsResponder
+- (void)printSettingsDidChange;
+- (void)searchingForPrinterDidChange:(BOOL)isSearching;
+@end
+
+
+//*********************************************************************
+// PrintSettingsSetter PROTOCOL
+/*
+ A ViewController that modifies print settings is a PrintSettingsSetter.
+ It will call the printSettingsDidChange function that will be implemented by the
+ object class specified in the printSettingsDelegate property, which is a
+ PrintSettingsResponder.
+ NOTE: It is OK to set this to "nil" if your class does not want to
+ be notified when the settings change.
+
+ This protocol is for SDK Designers only.
+ SDK Users do NOT need to implement this protocol.
+ */
+//*********************************************************************
+@protocol PrintSettingsSetter
+@property (assign, nonatomic) id printSettingsDelegate;
+@end
+
+
+//*********************************************************************
+// PrintSettingsViewController INTERFACE
+//
+// DO NOT INSTANTIATE an object of this class.
+// ALWAYS INSTANTIATE a model-specific object, e.g. PJ673PrintSettingsViewController.
+//
+// This is essentially an ABSTRACT class that does nothing on its own.
+//
+// NOTE: You can use a generic variable of the PrintSettingsViewController class to contain
+// the model-specific instantiation, and this reference which will have access to the
+// following properties/methods.
+//*********************************************************************
+@interface PrintSettingsViewController : UITableViewController
+{
+ // ivars needed during subclass init, defining here allows subclasses to access ivar directly without setter.
+ BOOL _showPrinterSearchButton;
+
+ // these two will combine constants defined by enum SETTINGS_OPTIONS_MASK
+ // They allow ISV to customize the setting options available in the ViewController
+ unsigned int _showSettingsOptionMask;
+ unsigned int _supportedOptions; // read only, specific for each printer model
+}
+
+//*** PrintSettingsSetter protocol
+@property (assign, nonatomic) id printSettingsDelegate;
+
+//*** PrintSettingsResponder protocol
+- (void)printSettingsDidChange;
+
+//*** The following properties are defined in this super-class so they are available
+// to an APP that stores the printer-specific object into a generic super-class object
+// and then wishes to modify these properties.
+@property (nonatomic, retain) PrintSettings *printSettings;
+
+// Allows SDK User to modify the default tableview properties
+@property (nonatomic, assign) CGSize popoverSize;
+@property (nonatomic, assign) int rowHeight;
+@property (nonatomic, assign) int fontSize;
+@property (nonatomic, assign) CGFloat section0HeaderSize;
+@property (nonatomic, assign) CGFloat otherSectionHeaderSize;
+@property (nonatomic, assign) CGFloat sectionFooterSize;
+
+
+
+//*** These 2 properties allow customizing the IPAddressHelpViewController.
+// * showIPAddressHelpButton is passed through to the IPAddressViewController to decide
+// whether to show the Help Button at all.
+// * IPAddressHelpFileName is passed thru to the IPAddressHelpViewController.
+// This allows SDK User to change the Help File displayed, if desired.
+// The file MUST be a "pdf" file (with lower-case file extension in the actual file),
+// and you MUST omit the ".pdf" from the filename specified in this property.
+@property (nonatomic, assign) BOOL showIPAddressHelpButton;
+@property (nonatomic, retain) NSString *IPAddressHelpFileName;
+
+// Allows SDK User to modify the settings options displayed in the tableview.
+// c.f. SETTINGS_OPTIONS_MASK enum for these two properties!
+@property (nonatomic, assign) unsigned int showSettingsOptionMask;
+// READONLY property. Value will be set by the subclass. SDK User can NOT change it.
+@property (readonly, nonatomic, assign) unsigned int supportedOptions;
+
+// By default, the Search button will be available on the IPAddressViewController for all models EXCEPT PJ673,
+// which does not support the search feature. This property allows SDK user to hide the search button if desired.
+// NOTE: This same property is used for the Search button on the BluetoothViewController too!!
+@property (nonatomic, assign) BOOL showPrinterSearchButton;
+// New in SDK 2.1.1. Default is YES, which means that an IPv6 address format will be returned by the
+// "IPAddress Search" instead of IPv4 format, but only if IPv6 address is available. It will only be
+// available when connected by Infrastructure Mode to an IPv6-only network, which is not a typical use mode.
+// If for some reason you don't want this behavior, i.e. you only want to see IPv4 formatted addresses,
+// this property is provided to allow you to override the default behavior. However, beware that Apple
+// **MAY** require the IPv6 format address, based on their new (June 1, 2016) IPv6 policy.
+@property (nonatomic, assign) BOOL showIPv6AddressIfAvailable;
+
+
+
+// NOTE: subclasses MUST set these in their init method to model-specific values
+@property (nonatomic, retain) NSString *mainTitle; // ViewController title
+@property (nonatomic, retain) NSString *section1Title; // main TableView section1 title
+
+@end
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ2050PrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ2050PrintSettings.h
new file mode 100755
index 0000000..9bd1978
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ2050PrintSettings.h
@@ -0,0 +1,81 @@
+//
+// RJ2050PrintSettings.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/6/16.
+// Copyright (c) 2016 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettings.h"
+
+
+@interface RJ2050PrintSettings : GenericMobileLabelModelPrintSettings
+
+// These definitions are provided for information only. DO NOT MODIFY!
+// spec section 4.3.1 Resolution
+#define RJ2050_RESOLUTION_HORZ 203
+#define RJ2050_RESOLUTION_VERT 203
+// spec section 4.3.6 Raster Line
+#define RJ2050_HEADSIZEDOTS 432
+// spec section "Select compression mode" command
+// NOTE: This should be same as HEADSIZEDOTS/8. And, it should be same as the # of decompressed bytes.
+#define RJ2050_MAX_COMPRESS_LENGTH 54
+
+// NOT in spec. *** Used Windows Printer Driver as reference ***
+// NOTE: MAXPAPERWIDTH DOES exceed HEADSIZEDOTS!!
+#define RJ2050_MIN_PAPERWIDTHDOTS (0.47F * RJ2050_RESOLUTION_HORZ) // 95
+#define RJ2050_MAX_PAPERWIDTHDOTS (2.28F * RJ2050_RESOLUTION_HORZ) // 462.
+// spec section 4.3.4 Maximum and Minimum Lengths
+#define RJ2050_MIN_PAPERLENGTHDOTS 96
+#define RJ2050_MAX_PAPERLENGTHDOTS 7992
+// spec section 4.3.3 Feed Amount
+#ifdef OLD
+// IMPORTANT NOTE: For LABEL papertype ONLY, we allow the MIN marginlengthdots to be set to 0.
+// That is, this MIN value here is ignored when papertype = label is specified.
+// Consider the case of a 1.0x0.5" label. A min margin of 0.12" will take up half of the printable length!!
+// This is why we will allow the margin to be set to 0 in this case.
+// Beware that some labels might clip the top if this is set to 0. But, other settings can be tweaked to
+// make it work (such as by setting a larger paperlength and setting the top margin to non-zero.)
+#define RJ2050_MIN_MARGINLENGTHDOTS 24
+
+#else
+// Allow 0 now for continuous roll too, as the Esc iUw command generated from this can affect AirPrint.
+// However, if this is 0, then the Esc id command will send 0 too. And, the printer may not eject the page
+// enough at the end. So, I am introducing the MIN_PAGEFEEDDOTS definition now, so that if current marginLengthDots
+// is LESS than MIN_PAGEFEEDDOTS, we will send Esc id command using the MIN_PAGEFEEDDOTS value instead.
+// Otherwise, the Esc id command will use the marginLengthDots value as it has in the past.
+//
+// NOTE: If this occurs, the final paper length after tear off will be up to 1/4" longer than the
+// specified paperLengthDots, because the print data will be (up to) the entire paper length, and then the
+// PAGEFEEDDOTS will be added to the final paper length. If you need a specific paperlength, then make sure
+// that marginLengthDots is >= MIN_PAGEFEEDDOTS.
+//
+#define RJ2050_MIN_MARGINLENGTHDOTS 0
+// v2.3.0 UPDATE: Instead of forcing this MIN_PAGEFEEDDOTS value on EVERY page, which essentially PREVENTS a "no gap"
+// solution if the FW actually supports it, now we only force it on the LAST page, allowing a 0-margin between pages
+// in case the FW allows it. But, we will force this on the LAST page, to assure the FW will eject the page to tear off
+// in case it doesn't automatically behave that way.
+#define RJ2050_MIN_PAGEFEEDDOTS_LASTPAGE 24
+
+#endif
+
+#define RJ2050_MAX_MARGINLENGTHDOTS 1015
+// Arbitrarily restrict extraFeed to 11" at 203 dpi. There is no reason to be larger.
+#define RJ2050_MAX_EXTRAFEEDDOTS (11*RJ2050_RESOLUTION_VERT)
+
+//*** IMPORTANT ***
+// SDK Users:
+// You should NEVER instantiate an object of the GenericMobileLabelModelPrintSettings class.
+// Instead, you should instantiate one of the model-specific subclasses (i.e. RJ2050PrintSettings).
+//
+// For a list of important properties in the settings that your application needs to set,
+// refer to the GenericMobileLabelModelPrintSettings superclass.
+
+// SDK Designers:
+// The GenericMobileLabelModelPrintSettings class handles all the important work.
+// This subclass only needs to provide the model-specific data to the generic class.
+
+//*** ADDITIONAL PROPERTIES not handled by GenericMobileLabelModelPrintSettings
+@property (nonatomic, assign) BOOL invert180degrees;
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ2050PrintSettingsViewController.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ2050PrintSettingsViewController.h
new file mode 100755
index 0000000..2ddb4b6
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ2050PrintSettingsViewController.h
@@ -0,0 +1,42 @@
+//
+// RJ2050PrintSettingsViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/6/16.
+// Copyright (c) 2016 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettingsViewController.h"
+#import "RJ2050PrintSettings.h"
+
+// This is the DEFAULT popup contentSize for RJ2050PrintSettingsViewController.
+//
+// You can override this by setting the "popoverSize" property (defined in the
+// PrintSettingsViewController superclass) to something different
+// before showing the ViewController.
+//
+// The popoverSize setting will be propagated to all of the "child" ViewControllers
+// of the main ViewController so all of the detail views will be the SAME size as each other.
+//
+// NOTE: iPad1 and iPad2 size = 1024 x 768, iPad3 = 2048 x 1536
+//#define RJ2050POPUPCONTENTSIZE CGSizeMake(400,480)
+#define RJ2050POPUPCONTENTSIZE CGSizeMake(400,548)
+#define RJ2050POPUPCONTENTSIZE_IOS7 CGSizeMake(400,588)
+
+
+/*
+ This class is a subclass of GenericMobileLabelModelPrintSettingsViewController,
+ which implements all the major functionality.
+
+ *** SDK Users:
+ DO NOT INSTANTIATE an instance of GenericMobileLabelModelPrintSettingsViewController.
+ Always instantiate a model-specific class, e.g. RJ2050PrintSettingsViewController
+ */
+
+@interface RJ2050PrintSettingsViewController : GenericMobileLabelModelPrintSettingsViewController
+{
+}
+
+@end
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ2140PrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ2140PrintSettings.h
new file mode 100755
index 0000000..cea6c11
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ2140PrintSettings.h
@@ -0,0 +1,81 @@
+//
+// RJ2140PrintSettings.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/6/16.
+// Copyright (c) 2016 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettings.h"
+
+
+@interface RJ2140PrintSettings : GenericMobileLabelModelPrintSettings
+
+// These definitions are provided for information only. DO NOT MODIFY!
+// spec section 4.3.1 Resolution
+#define RJ2140_RESOLUTION_HORZ 203
+#define RJ2140_RESOLUTION_VERT 203
+// spec section 4.3.6 Raster Line
+#define RJ2140_HEADSIZEDOTS 432
+// spec section "Select compression mode" command
+// NOTE: This should be same as HEADSIZEDOTS/8. And, it should be same as the # of decompressed bytes.
+#define RJ2140_MAX_COMPRESS_LENGTH 54
+
+// NOT in spec. *** Used Windows Printer Driver as reference ***
+// NOTE: MAXPAPERWIDTH DOES exceed HEADSIZEDOTS!!
+#define RJ2140_MIN_PAPERWIDTHDOTS (0.47F * RJ2140_RESOLUTION_HORZ) // 95
+#define RJ2140_MAX_PAPERWIDTHDOTS (2.28F * RJ2140_RESOLUTION_HORZ) // 462.
+// spec section 4.3.4 Maximum and Minimum Lengths
+#define RJ2140_MIN_PAPERLENGTHDOTS 96
+#define RJ2140_MAX_PAPERLENGTHDOTS 7992
+// spec section 4.3.3 Feed Amount
+#ifdef OLD
+// IMPORTANT NOTE: For LABEL papertype ONLY, we allow the MIN marginlengthdots to be set to 0.
+// That is, this MIN value here is ignored when papertype = label is specified.
+// Consider the case of a 1.0x0.5" label. A min margin of 0.12" will take up half of the printable length!!
+// This is why we will allow the margin to be set to 0 in this case.
+// Beware that some labels might clip the top if this is set to 0. But, other settings can be tweaked to
+// make it work (such as by setting a larger paperlength and setting the top margin to non-zero.)
+#define RJ2140_MIN_MARGINLENGTHDOTS 24
+
+#else
+// Allow 0 now for continuous roll too, as the Esc iUw command generated from this can affect AirPrint.
+// However, if this is 0, then the Esc id command will send 0 too. And, the printer may not eject the page
+// enough at the end. So, I am introducing the MIN_PAGEFEEDDOTS definition now, so that if current marginLengthDots
+// is LESS than MIN_PAGEFEEDDOTS, we will send Esc id command using the MIN_PAGEFEEDDOTS value instead.
+// Otherwise, the Esc id command will use the marginLengthDots value as it has in the past.
+//
+// NOTE: If this occurs, the final paper length after tear off will be up to 1/4" longer than the
+// specified paperLengthDots, because the print data will be (up to) the entire paper length, and then the
+// PAGEFEEDDOTS will be added to the final paper length. If you need a specific paperlength, then make sure
+// that marginLengthDots is >= MIN_PAGEFEEDDOTS.
+
+#define RJ2140_MIN_MARGINLENGTHDOTS 0
+// v2.3.0 UPDATE: Instead of forcing this MIN_PAGEFEEDDOTS value on EVERY page, which essentially PREVENTS a "no gap"
+// solution if the FW actually supports it, now we only force it on the LAST page, allowing a 0-margin between pages
+// in case the FW allows it. But, we will force this on the LAST page, to assure the FW will eject the page to tear off
+// in case it doesn't automatically behave that way.
+#define RJ2140_MIN_PAGEFEEDDOTS_LASTPAGE 24
+
+#endif
+
+#define RJ2140_MAX_MARGINLENGTHDOTS 1015
+// Arbitrarily restrict extraFeed to 11" at 203 dpi. There is no reason to be larger.
+#define RJ2140_MAX_EXTRAFEEDDOTS (11*RJ2140_RESOLUTION_VERT)
+
+//*** IMPORTANT ***
+// SDK Users:
+// You should NEVER instantiate an object of the GenericMobileLabelModelPrintSettings class.
+// Instead, you should instantiate one of the model-specific subclasses (i.e. RJ2140PrintSettings).
+//
+// For a list of important properties in the settings that your application needs to set,
+// refer to the GenericMobileLabelModelPrintSettings superclass.
+
+// SDK Designers:
+// The GenericMobileLabelModelPrintSettings class handles all the important work.
+// This subclass only needs to provide the model-specific data to the generic class.
+
+//*** ADDITIONAL PROPERTIES not handled by GenericMobileLabelModelPrintSettings
+@property (nonatomic, assign) BOOL invert180degrees;
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ2140PrintSettingsViewController.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ2140PrintSettingsViewController.h
new file mode 100755
index 0000000..b87f154
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ2140PrintSettingsViewController.h
@@ -0,0 +1,42 @@
+//
+// RJ2140PrintSettingsViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/6/16.
+// Copyright (c) 2016 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettingsViewController.h"
+#import "RJ2140PrintSettings.h"
+
+// This is the DEFAULT popup contentSize for RJ2140PrintSettingsViewController.
+//
+// You can override this by setting the "popoverSize" property (defined in the
+// PrintSettingsViewController superclass) to something different
+// before showing the ViewController.
+//
+// The popoverSize setting will be propagated to all of the "child" ViewControllers
+// of the main ViewController so all of the detail views will be the SAME size as each other.
+//
+// NOTE: iPad1 and iPad2 size = 1024 x 768, iPad3 = 2048 x 1536
+//#define RJ2140POPUPCONTENTSIZE CGSizeMake(400,480)
+#define RJ2140POPUPCONTENTSIZE CGSizeMake(400,548)
+#define RJ2140POPUPCONTENTSIZE_IOS7 CGSizeMake(400,588)
+
+
+/*
+ This class is a subclass of GenericMobileLabelModelPrintSettingsViewController,
+ which implements all the major functionality.
+
+ *** SDK Users:
+ DO NOT INSTANTIATE an instance of GenericMobileLabelModelPrintSettingsViewController.
+ Always instantiate a model-specific class, e.g. RJ2140PrintSettingsViewController
+ */
+
+@interface RJ2140PrintSettingsViewController : GenericMobileLabelModelPrintSettingsViewController
+{
+}
+
+@end
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ2150PrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ2150PrintSettings.h
new file mode 100755
index 0000000..f2b8afd
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ2150PrintSettings.h
@@ -0,0 +1,81 @@
+//
+// RJ2150PrintSettings.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/6/16.
+// Copyright (c) 2016 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettings.h"
+
+
+@interface RJ2150PrintSettings : GenericMobileLabelModelPrintSettings
+
+// These definitions are provided for information only. DO NOT MODIFY!
+// spec section 4.3.1 Resolution
+#define RJ2150_RESOLUTION_HORZ 203
+#define RJ2150_RESOLUTION_VERT 203
+// spec section 4.3.6 Raster Line
+#define RJ2150_HEADSIZEDOTS 432
+// spec section "Select compression mode" command
+// NOTE: This should be same as HEADSIZEDOTS/8. And, it should be same as the # of decompressed bytes.
+#define RJ2150_MAX_COMPRESS_LENGTH 54
+
+// NOT in spec. *** Used Windows Printer Driver as reference ***
+// NOTE: MAXPAPERWIDTH DOES exceed HEADSIZEDOTS!!
+#define RJ2150_MIN_PAPERWIDTHDOTS (0.47F * RJ2150_RESOLUTION_HORZ) // 95
+#define RJ2150_MAX_PAPERWIDTHDOTS (2.28F * RJ2150_RESOLUTION_HORZ) // 462.
+// spec section 4.3.4 Maximum and Minimum Lengths
+#define RJ2150_MIN_PAPERLENGTHDOTS 96
+#define RJ2150_MAX_PAPERLENGTHDOTS 7992
+// spec section 4.3.3 Feed Amount
+#ifdef OLD
+// IMPORTANT NOTE: For LABEL papertype ONLY, we allow the MIN marginlengthdots to be set to 0.
+// That is, this MIN value here is ignored when papertype = label is specified.
+// Consider the case of a 1.0x0.5" label. A min margin of 0.12" will take up half of the printable length!!
+// This is why we will allow the margin to be set to 0 in this case.
+// Beware that some labels might clip the top if this is set to 0. But, other settings can be tweaked to
+// make it work (such as by setting a larger paperlength and setting the top margin to non-zero.)
+#define RJ2150_MIN_MARGINLENGTHDOTS 24
+
+#else
+// Allow 0 now for continuous roll too, as the Esc iUw command generated from this can affect AirPrint.
+// However, if this is 0, then the Esc id command will send 0 too. And, the printer may not eject the page
+// enough at the end. So, I am introducing the MIN_PAGEFEEDDOTS definition now, so that if current marginLengthDots
+// is LESS than MIN_PAGEFEEDDOTS, we will send Esc id command using the MIN_PAGEFEEDDOTS value instead.
+// Otherwise, the Esc id command will use the marginLengthDots value as it has in the past.
+//
+// NOTE: If this occurs, the final paper length after tear off will be up to 1/4" longer than the
+// specified paperLengthDots, because the print data will be (up to) the entire paper length, and then the
+// PAGEFEEDDOTS will be added to the final paper length. If you need a specific paperlength, then make sure
+// that marginLengthDots is >= MIN_PAGEFEEDDOTS.
+
+#define RJ2150_MIN_MARGINLENGTHDOTS 0
+// v2.3.0 UPDATE: Instead of forcing this MIN_PAGEFEEDDOTS value on EVERY page, which essentially PREVENTS a "no gap"
+// solution if the FW actually supports it, now we only force it on the LAST page, allowing a 0-margin between pages
+// in case the FW allows it. But, we will force this on the LAST page, to assure the FW will eject the page to tear off
+// in case it doesn't automatically behave that way.
+#define RJ2150_MIN_PAGEFEEDDOTS_LASTPAGE 24
+
+#endif
+
+#define RJ2150_MAX_MARGINLENGTHDOTS 1015
+// Arbitrarily restrict extraFeed to 11" at 203 dpi. There is no reason to be larger.
+#define RJ2150_MAX_EXTRAFEEDDOTS (11*RJ2150_RESOLUTION_VERT)
+
+//*** IMPORTANT ***
+// SDK Users:
+// You should NEVER instantiate an object of the GenericMobileLabelModelPrintSettings class.
+// Instead, you should instantiate one of the model-specific subclasses (i.e. RJ2150PrintSettings).
+//
+// For a list of important properties in the settings that your application needs to set,
+// refer to the GenericMobileLabelModelPrintSettings superclass.
+
+// SDK Designers:
+// The GenericMobileLabelModelPrintSettings class handles all the important work.
+// This subclass only needs to provide the model-specific data to the generic class.
+
+//*** ADDITIONAL PROPERTIES not handled by GenericMobileLabelModelPrintSettings
+@property (nonatomic, assign) BOOL invert180degrees;
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ2150PrintSettingsViewController.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ2150PrintSettingsViewController.h
new file mode 100755
index 0000000..298653d
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ2150PrintSettingsViewController.h
@@ -0,0 +1,42 @@
+//
+// RJ2150PrintSettingsViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/6/16.
+// Copyright (c) 2016 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettingsViewController.h"
+#import "RJ2150PrintSettings.h"
+
+// This is the DEFAULT popup contentSize for RJ2150PrintSettingsViewController.
+//
+// You can override this by setting the "popoverSize" property (defined in the
+// PrintSettingsViewController superclass) to something different
+// before showing the ViewController.
+//
+// The popoverSize setting will be propagated to all of the "child" ViewControllers
+// of the main ViewController so all of the detail views will be the SAME size as each other.
+//
+// NOTE: iPad1 and iPad2 size = 1024 x 768, iPad3 = 2048 x 1536
+//#define RJ2150POPUPCONTENTSIZE CGSizeMake(400,480)
+#define RJ2150POPUPCONTENTSIZE CGSizeMake(400,548)
+#define RJ2150POPUPCONTENTSIZE_IOS7 CGSizeMake(400,588)
+
+
+/*
+ This class is a subclass of GenericMobileLabelModelPrintSettingsViewController,
+ which implements all the major functionality.
+
+ *** SDK Users:
+ DO NOT INSTANTIATE an instance of GenericMobileLabelModelPrintSettingsViewController.
+ Always instantiate a model-specific class, e.g. RJ2150PrintSettingsViewController
+ */
+
+@interface RJ2150PrintSettingsViewController : GenericMobileLabelModelPrintSettingsViewController
+{
+}
+
+@end
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ3050AIPrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ3050AIPrintSettings.h
new file mode 100755
index 0000000..bd79f9e
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ3050AIPrintSettings.h
@@ -0,0 +1,81 @@
+//
+// RJ3050AiPrintSettings.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/12/12.
+// Copyright (c) 2012 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettings.h"
+
+
+@interface RJ3050AiPrintSettings : GenericMobileLabelModelPrintSettings
+
+// These definitions are provided for information only. DO NOT MODIFY!
+// spec section 4.3.1 Resolution
+#define RJ3050Ai_RESOLUTION_HORZ 203
+#define RJ3050Ai_RESOLUTION_VERT 203
+// spec section 4.3.6 Raster Line
+#define RJ3050Ai_HEADSIZEDOTS 576
+// spec section "Select compression mode" command
+// NOTE: This should be same as HEADSIZEDOTS/8. And, it should be same as the # of decompressed bytes.
+#define RJ3050Ai_MAX_COMPRESS_LENGTH 72
+
+// NOT in spec. *** Used Windows Printer Driver as reference ***
+// NOTE: MAXPAPERWIDTH DOES exceed HEADSIZEDOTS!!
+#define RJ3050Ai_MIN_PAPERWIDTHDOTS (0.47F * RJ3050Ai_RESOLUTION_HORZ) // 95
+#define RJ3050Ai_MAX_PAPERWIDTHDOTS (3.15F * RJ3050Ai_RESOLUTION_HORZ) // 639.
+// spec section 4.3.4 Maximum and Minimum Lengths
+#define RJ3050Ai_MIN_PAPERLENGTHDOTS 96
+#define RJ3050Ai_MAX_PAPERLENGTHDOTS 7992
+// spec section 4.3.3 Feed Amount
+#ifdef OLD
+// IMPORTANT NOTE: For LABEL papertype ONLY, we allow the MIN marginlengthdots to be set to 0.
+// That is, this MIN value here is ignored when papertype = label is specified.
+// Consider the case of a 1.0x0.5" label. A min margin of 0.12" will take up half of the printable length!!
+// This is why we will allow the margin to be set to 0 in this case.
+// Beware that some labels might clip the top if this is set to 0. But, other settings can be tweaked to
+// make it work (such as by setting a larger paperlength and setting the top margin to non-zero.)
+#define RJ3050Ai_MIN_MARGINLENGTHDOTS 24
+
+#else
+// Allow 0 now for continuous roll too, as the Esc iUw command generated from this can affect AirPrint.
+// However, if this is 0, then the Esc id command will send 0 too. And, the printer may not eject the page
+// enough at the end. So, I am introducing the MIN_PAGEFEEDDOTS definition now, so that if current marginLengthDots
+// is LESS than MIN_PAGEFEEDDOTS, we will send Esc id command using the MIN_PAGEFEEDDOTS value instead.
+// Otherwise, the Esc id command will use the marginLengthDots value as it has in the past.
+//
+// NOTE: If this occurs, the final paper length after tear off will be up to 1/4" longer than the
+// specified paperLengthDots, because the print data will be (up to) the entire paper length, and then the
+// PAGEFEEDDOTS will be added to the final paper length. If you need a specific paperlength, then make sure
+// that marginLengthDots is >= MIN_PAGEFEEDDOTS.
+
+#define RJ3050Ai_MIN_MARGINLENGTHDOTS 0
+// v2.3.0 UPDATE: Instead of forcing this MIN_PAGEFEEDDOTS value on EVERY page, which essentially PREVENTS a "no gap"
+// solution if the FW actually supports it, now we only force it on the LAST page, allowing a 0-margin between pages
+// in case the FW allows it. But, we will force this on the LAST page, to assure the FW will eject the page to tear off
+// in case it doesn't automatically behave that way.
+#define RJ3050Ai_MIN_PAGEFEEDDOTS_LASTPAGE 24
+
+#endif
+
+#define RJ3050Ai_MAX_MARGINLENGTHDOTS 1015
+// Arbitrarily restrict extraFeed to 11" at 203 dpi. There is no reason to be larger.
+#define RJ3050Ai_MAX_EXTRAFEEDDOTS (11*RJ3050Ai_RESOLUTION_VERT)
+
+//*** IMPORTANT ***
+// SDK Users:
+// You should NEVER instantiate an object of the GenericMobileLabelModelPrintSettings class.
+// Instead, you should instantiate one of the model-specific subclasses (i.e. RJ3050AiPrintSettings).
+//
+// For a list of important properties in the settings that your application needs to set,
+// refer to the GenericMobileLabelModelPrintSettings superclass.
+
+// SDK Designers:
+// The GenericMobileLabelModelPrintSettings class handles all the important work.
+// This subclass only needs to provide the model-specific data to the generic class.
+
+//*** ADDITIONAL PROPERTIES not handled by GenericMobileLabelModelPrintSettings
+@property (nonatomic, assign) BOOL invert180degrees;
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ3050AiPrintSettingsViewController.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ3050AiPrintSettingsViewController.h
new file mode 100755
index 0000000..bf9f35a
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ3050AiPrintSettingsViewController.h
@@ -0,0 +1,42 @@
+//
+// RJ3050AiPrintSettingsViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 1/30/13.
+// Copyright (c) 2013 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettingsViewController.h"
+#import "RJ3050AiPrintSettings.h"
+
+// This is the DEFAULT popup contentSize for RJ3050AiPrintSettingsViewController.
+//
+// You can override this by setting the "popoverSize" property (defined in the
+// PrintSettingsViewController superclass) to something different
+// before showing the ViewController.
+//
+// The popoverSize setting will be propagated to all of the "child" ViewControllers
+// of the main ViewController so all of the detail views will be the SAME size as each other.
+//
+// NOTE: iPad1 and iPad2 size = 1024 x 768, iPad3 = 2048 x 1536
+//#define RJ3050AiPOPUPCONTENTSIZE CGSizeMake(400,480)
+#define RJ3050AiPOPUPCONTENTSIZE CGSizeMake(400,548)
+#define RJ3050AiPOPUPCONTENTSIZE_IOS7 CGSizeMake(400,588)
+
+
+/*
+ This class is a subclass of GenericMobileLabelModelPrintSettingsViewController,
+ which implements all the major functionality.
+
+ *** SDK Users:
+ DO NOT INSTANTIATE an instance of GenericMobileLabelModelPrintSettingsViewController.
+ Always instantiate a model-specific class, e.g. RJ3050AiPrintSettingsViewController
+ */
+
+@interface RJ3050AiPrintSettingsViewController : GenericMobileLabelModelPrintSettingsViewController
+{
+}
+
+@end
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ3050PrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ3050PrintSettings.h
new file mode 100755
index 0000000..e8fbaf4
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ3050PrintSettings.h
@@ -0,0 +1,81 @@
+//
+// RJ3050PrintSettings.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/12/12.
+// Copyright (c) 2012 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettings.h"
+
+
+@interface RJ3050PrintSettings : GenericMobileLabelModelPrintSettings
+
+// These definitions are provided for information only. DO NOT MODIFY!
+// spec section 4.3.1 Resolution
+#define RJ3050_RESOLUTION_HORZ 203
+#define RJ3050_RESOLUTION_VERT 203
+// spec section 4.3.6 Raster Line
+#define RJ3050_HEADSIZEDOTS 576
+// spec section "Select compression mode" command
+// NOTE: This should be same as HEADSIZEDOTS/8. And, it should be same as the # of decompressed bytes.
+#define RJ3050_MAX_COMPRESS_LENGTH 72
+
+// NOT in spec. *** Used Windows Printer Driver as reference ***
+// NOTE: MAXPAPERWIDTH DOES exceed HEADSIZEDOTS!!
+#define RJ3050_MIN_PAPERWIDTHDOTS (0.47F * RJ3050_RESOLUTION_HORZ) // 95
+#define RJ3050_MAX_PAPERWIDTHDOTS (3.15F * RJ3050_RESOLUTION_HORZ) // 639.
+// spec section 4.3.4 Maximum and Minimum Lengths
+#define RJ3050_MIN_PAPERLENGTHDOTS 96
+#define RJ3050_MAX_PAPERLENGTHDOTS 7992
+// spec section 4.3.3 Feed Amount
+#ifdef OLD
+// IMPORTANT NOTE: For LABEL papertype ONLY, we allow the MIN marginlengthdots to be set to 0.
+// That is, this MIN value here is ignored when papertype = label is specified.
+// Consider the case of a 1.0x0.5" label. A min margin of 0.12" will take up half of the printable length!!
+// This is why we will allow the margin to be set to 0 in this case.
+// Beware that some labels might clip the top if this is set to 0. But, other settings can be tweaked to
+// make it work (such as by setting a larger paperlength and setting the top margin to non-zero.)
+#define RJ3050_MIN_MARGINLENGTHDOTS 24
+
+#else
+// Allow 0 now for continuous roll too, as the Esc iUw command generated from this can affect AirPrint.
+// However, if this is 0, then the Esc id command will send 0 too. And, the printer may not eject the page
+// enough at the end. So, I am introducing the MIN_PAGEFEEDDOTS definition now, so that if current marginLengthDots
+// is LESS than MIN_PAGEFEEDDOTS, we will send Esc id command using the MIN_PAGEFEEDDOTS value instead.
+// Otherwise, the Esc id command will use the marginLengthDots value as it has in the past.
+//
+// NOTE: If this occurs, the final paper length after tear off will be up to 1/4" longer than the
+// specified paperLengthDots, because the print data will be (up to) the entire paper length, and then the
+// PAGEFEEDDOTS will be added to the final paper length. If you need a specific paperlength, then make sure
+// that marginLengthDots is >= MIN_PAGEFEEDDOTS.
+
+#define RJ3050_MIN_MARGINLENGTHDOTS 0
+// v2.3.0 UPDATE: Instead of forcing this MIN_PAGEFEEDDOTS value on EVERY page, which essentially PREVENTS a "no gap"
+// solution if the FW actually supports it, now we only force it on the LAST page, allowing a 0-margin between pages
+// in case the FW allows it. But, we will force this on the LAST page, to assure the FW will eject the page to tear off
+// in case it doesn't automatically behave that way.
+#define RJ3050_MIN_PAGEFEEDDOTS_LASTPAGE 24
+
+#endif
+
+#define RJ3050_MAX_MARGINLENGTHDOTS 1015
+// Arbitrarily restrict extraFeed to 11" at 203 dpi. There is no reason to be larger.
+#define RJ3050_MAX_EXTRAFEEDDOTS (11*RJ3050_RESOLUTION_VERT)
+
+//*** IMPORTANT ***
+// SDK Users:
+// You should NEVER instantiate an object of the GenericMobileLabelModelPrintSettings class.
+// Instead, you should instantiate one of the model-specific subclasses (i.e. RJ3050PrintSettings).
+//
+// For a list of important properties in the settings that your application needs to set,
+// refer to the GenericMobileLabelModelPrintSettings superclass.
+
+// SDK Designers:
+// The GenericMobileLabelModelPrintSettings class handles all the important work.
+// This subclass only needs to provide the model-specific data to the generic class.
+
+//*** ADDITIONAL PROPERTIES not handled by GenericMobileLabelModelPrintSettings
+@property (nonatomic, assign) BOOL invert180degrees;
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ3050PrintSettingsViewController.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ3050PrintSettingsViewController.h
new file mode 100755
index 0000000..03b69fb
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ3050PrintSettingsViewController.h
@@ -0,0 +1,42 @@
+//
+// RJ3050PrintSettingsViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 1/30/13.
+// Copyright (c) 2013 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettingsViewController.h"
+#import "RJ3050PrintSettings.h"
+
+// This is the DEFAULT popup contentSize for RJ3050PrintSettingsViewController.
+//
+// You can override this by setting the "popoverSize" property (defined in the
+// PrintSettingsViewController superclass) to something different
+// before showing the ViewController.
+//
+// The popoverSize setting will be propagated to all of the "child" ViewControllers
+// of the main ViewController so all of the detail views will be the SAME size as each other.
+//
+// NOTE: iPad1 and iPad2 size = 1024 x 768, iPad3 = 2048 x 1536
+//#define RJ3050POPUPCONTENTSIZE CGSizeMake(400,480)
+#define RJ3050POPUPCONTENTSIZE CGSizeMake(400,548)
+#define RJ3050POPUPCONTENTSIZE_IOS7 CGSizeMake(400,588)
+
+
+/*
+ This class is a subclass of GenericMobileLabelModelPrintSettingsViewController,
+ which implements all the major functionality.
+
+ *** SDK Users:
+ DO NOT INSTANTIATE an instance of GenericMobileLabelModelPrintSettingsViewController.
+ Always instantiate a model-specific class, e.g. RJ3050PrintSettingsViewController
+ */
+
+@interface RJ3050PrintSettingsViewController : GenericMobileLabelModelPrintSettingsViewController
+{
+}
+
+@end
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ3150AiPrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ3150AiPrintSettings.h
new file mode 100755
index 0000000..9fb1a8a
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ3150AiPrintSettings.h
@@ -0,0 +1,82 @@
+//
+// RJ3150AiPrintSettings.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/12/12.
+// Copyright (c) 2012 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettings.h"
+
+
+@interface RJ3150AiPrintSettings : GenericMobileLabelModelPrintSettings
+
+// These definitions are provided for information only. DO NOT MODIFY!
+// spec section 4.3.1 Resolution
+#define RJ3150Ai_RESOLUTION_HORZ 203
+#define RJ3150Ai_RESOLUTION_VERT 203
+// spec section 4.3.6 Raster Line
+#define RJ3150Ai_HEADSIZEDOTS 576
+// spec section "Select compression mode" command
+// NOTE: This should be same as HEADSIZEDOTS/8. And, it should be same as the # of decompressed bytes.
+#define RJ3150Ai_MAX_COMPRESS_LENGTH 72
+
+// NOT in spec. *** Used Windows Printer Driver as reference ***
+// NOTE: MAXPAPERWIDTH DOES exceed HEADSIZEDOTS!!
+#define RJ3150Ai_MIN_PAPERWIDTHDOTS (0.47F * RJ3150Ai_RESOLUTION_HORZ) // 95
+#define RJ3150Ai_MAX_PAPERWIDTHDOTS (3.15F * RJ3150Ai_RESOLUTION_HORZ) // 639.
+// spec section 4.3.4 Maximum and Minimum Lengths
+#define RJ3150Ai_MIN_PAPERLENGTHDOTS 96
+#define RJ3150Ai_MAX_PAPERLENGTHDOTS 7992
+// spec section 4.3.3 Feed Amount
+#ifdef OLD
+// IMPORTANT NOTE: For LABEL papertype ONLY, we allow the MIN marginlengthdots to be set to 0.
+// That is, this MIN value here is ignored when papertype = label is specified.
+// Consider the case of a 1.0x0.5" label. A min margin of 0.12" will take up half of the printable length!!
+// This is why we will allow the margin to be set to 0 in this case.
+// Beware that some labels might clip the top if this is set to 0. But, other settings can be tweaked to
+// make it work (such as by setting a larger paperlength and setting the top margin to non-zero.)
+#define RJ3150Ai_MIN_MARGINLENGTHDOTS 24
+
+#else
+// Allow 0 now for continuous roll too, as the Esc iUw command generated from this can affect AirPrint.
+// However, if this is 0, then the Esc id command will send 0 too. And, the printer may not eject the page
+// enough at the end. So, I am introducing the MIN_PAGEFEEDDOTS definition now, so that if current marginLengthDots
+// is LESS than MIN_PAGEFEEDDOTS, we will send Esc id command using the MIN_PAGEFEEDDOTS value instead.
+// Otherwise, the Esc id command will use the marginLengthDots value as it has in the past.
+//
+// NOTE: If this occurs, the final paper length after tear off will be up to 1/4" longer than the
+// specified paperLengthDots, because the print data will be (up to) the entire paper length, and then the
+// PAGEFEEDDOTS will be added to the final paper length. If you need a specific paperlength, then make sure
+// that marginLengthDots is >= MIN_PAGEFEEDDOTS.
+
+#define RJ3150Ai_MIN_MARGINLENGTHDOTS 0
+// v2.3.0 UPDATE: Instead of forcing this MIN_PAGEFEEDDOTS value on EVERY page, which essentially PREVENTS a "no gap"
+// solution if the FW actually supports it, now we only force it on the LAST page, allowing a 0-margin between pages
+// in case the FW allows it. But, we will force this on the LAST page, to assure the FW will eject the page to tear off
+// in case it doesn't automatically behave that way.
+#define RJ3150Ai_MIN_PAGEFEEDDOTS_LASTPAGE 24
+
+#endif
+
+#define RJ3150Ai_MAX_MARGINLENGTHDOTS 1015
+// Arbitrarily restrict extraFeed to 11" at 203 dpi. There is no reason to be larger.
+#define RJ3150Ai_MAX_EXTRAFEEDDOTS (11*RJ3150Ai_RESOLUTION_VERT)
+
+//*** IMPORTANT ***
+// SDK Users:
+// You should NEVER instantiate an object of the GenericMobileLabelModelPrintSettings class.
+// Instead, you should instantiate one of the model-specific subclasses (i.e. RJ3150AiPrintSettings).
+//
+// For a list of important properties in the settings that your application needs to set,
+// refer to the GenericMobileLabelModelPrintSettings superclass.
+
+// SDK Designers:
+// The GenericMobileLabelModelPrintSettings class handles all the important work.
+// This subclass only needs to provide the model-specific data to the generic class.
+
+//*** ADDITIONAL PROPERTIES not handled by GenericMobileLabelModelPrintSettings
+@property (nonatomic, assign) BOOL peelerEnabled;
+@property (nonatomic, assign) BOOL invert180degrees;
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ3150AiPrintSettingsViewController.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ3150AiPrintSettingsViewController.h
new file mode 100755
index 0000000..b74f14e
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ3150AiPrintSettingsViewController.h
@@ -0,0 +1,42 @@
+//
+// RJ3150AiPrintSettingsViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 1/30/13.
+// Copyright (c) 2013 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettingsViewController.h"
+#import "RJ3150AiPrintSettings.h"
+
+// This is the DEFAULT popup contentSize for RJ3150AiPrintSettingsViewController.
+//
+// You can override this by setting the "popoverSize" property (defined in the
+// PrintSettingsViewController superclass) to something different
+// before showing the ViewController.
+//
+// The popoverSize setting will be propagated to all of the "child" ViewControllers
+// of the main ViewController so all of the detail views will be the SAME size as each other.
+//
+// NOTE: iPad1 and iPad2 size = 1024 x 768, iPad3 = 2048 x 1536
+//#define RJ3150AiPOPUPCONTENTSIZE CGSizeMake(400,480)
+#define RJ3150AiPOPUPCONTENTSIZE CGSizeMake(400,548)
+#define RJ3150AiPOPUPCONTENTSIZE_IOS7 CGSizeMake(400,588)
+
+
+/*
+ This class is a subclass of GenericMobileLabelModelPrintSettingsViewController,
+ which implements all the major functionality.
+
+ *** SDK Users:
+ DO NOT INSTANTIATE an instance of GenericMobileLabelModelPrintSettingsViewController.
+ Always instantiate a model-specific class, e.g. RJ3150AiPrintSettingsViewController
+ */
+
+@interface RJ3150AiPrintSettingsViewController : GenericMobileLabelModelPrintSettingsViewController
+{
+}
+
+@end
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ3150PrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ3150PrintSettings.h
new file mode 100755
index 0000000..561e7c0
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ3150PrintSettings.h
@@ -0,0 +1,82 @@
+//
+// RJ3150PrintSettings.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/12/12.
+// Copyright (c) 2012 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettings.h"
+
+
+@interface RJ3150PrintSettings : GenericMobileLabelModelPrintSettings
+
+// These definitions are provided for information only. DO NOT MODIFY!
+// spec section 4.3.1 Resolution
+#define RJ3150_RESOLUTION_HORZ 203
+#define RJ3150_RESOLUTION_VERT 203
+// spec section 4.3.6 Raster Line
+#define RJ3150_HEADSIZEDOTS 576
+// spec section "Select compression mode" command
+// NOTE: This should be same as HEADSIZEDOTS/8. And, it should be same as the # of decompressed bytes.
+#define RJ3150_MAX_COMPRESS_LENGTH 72
+
+// NOT in spec. *** Used Windows Printer Driver as reference ***
+// NOTE: MAXPAPERWIDTH DOES exceed HEADSIZEDOTS!!
+#define RJ3150_MIN_PAPERWIDTHDOTS (0.47F * RJ3150_RESOLUTION_HORZ) // 95
+#define RJ3150_MAX_PAPERWIDTHDOTS (3.15F * RJ3150_RESOLUTION_HORZ) // 639.
+// spec section 4.3.4 Maximum and Minimum Lengths
+#define RJ3150_MIN_PAPERLENGTHDOTS 96
+#define RJ3150_MAX_PAPERLENGTHDOTS 7992
+// spec section 4.3.3 Feed Amount
+#ifdef OLD
+// IMPORTANT NOTE: For LABEL papertype ONLY, we allow the MIN marginlengthdots to be set to 0.
+// That is, this MIN value here is ignored when papertype = label is specified.
+// Consider the case of a 1.0x0.5" label. A min margin of 0.12" will take up half of the printable length!!
+// This is why we will allow the margin to be set to 0 in this case.
+// Beware that some labels might clip the top if this is set to 0. But, other settings can be tweaked to
+// make it work (such as by setting a larger paperlength and setting the top margin to non-zero.)
+#define RJ3150_MIN_MARGINLENGTHDOTS 24
+
+#else
+// Allow 0 now for continuous roll too, as the Esc iUw command generated from this can affect AirPrint.
+// However, if this is 0, then the Esc id command will send 0 too. And, the printer may not eject the page
+// enough at the end. So, I am introducing the MIN_PAGEFEEDDOTS definition now, so that if current marginLengthDots
+// is LESS than MIN_PAGEFEEDDOTS, we will send Esc id command using the MIN_PAGEFEEDDOTS value instead.
+// Otherwise, the Esc id command will use the marginLengthDots value as it has in the past.
+//
+// NOTE: If this occurs, the final paper length after tear off will be up to 1/4" longer than the
+// specified paperLengthDots, because the print data will be (up to) the entire paper length, and then the
+// PAGEFEEDDOTS will be added to the final paper length. If you need a specific paperlength, then make sure
+// that marginLengthDots is >= MIN_PAGEFEEDDOTS.
+
+#define RJ3150_MIN_MARGINLENGTHDOTS 0
+// v2.3.0 UPDATE: Instead of forcing this MIN_PAGEFEEDDOTS value on EVERY page, which essentially PREVENTS a "no gap"
+// solution if the FW actually supports it, now we only force it on the LAST page, allowing a 0-margin between pages
+// in case the FW allows it. But, we will force this on the LAST page, to assure the FW will eject the page to tear off
+// in case it doesn't automatically behave that way.
+#define RJ3150_MIN_PAGEFEEDDOTS_LASTPAGE 24
+
+#endif
+
+#define RJ3150_MAX_MARGINLENGTHDOTS 1015
+// Arbitrarily restrict extraFeed to 11" at 203 dpi. There is no reason to be larger.
+#define RJ3150_MAX_EXTRAFEEDDOTS (11*RJ3150_RESOLUTION_VERT)
+
+//*** IMPORTANT ***
+// SDK Users:
+// You should NEVER instantiate an object of the GenericMobileLabelModelPrintSettings class.
+// Instead, you should instantiate one of the model-specific subclasses (i.e. RJ3150PrintSettings).
+//
+// For a list of important properties in the settings that your application needs to set,
+// refer to the GenericMobileLabelModelPrintSettings superclass.
+
+// SDK Designers:
+// The GenericMobileLabelModelPrintSettings class handles all the important work.
+// This subclass only needs to provide the model-specific data to the generic class.
+
+//*** ADDITIONAL PROPERTIES not handled by GenericMobileLabelModelPrintSettings
+@property (nonatomic, assign) BOOL peelerEnabled;
+@property (nonatomic, assign) BOOL invert180degrees;
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ3150PrintSettingsViewController.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ3150PrintSettingsViewController.h
new file mode 100755
index 0000000..5790717
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ3150PrintSettingsViewController.h
@@ -0,0 +1,42 @@
+//
+// RJ3150PrintSettingsViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 1/30/13.
+// Copyright (c) 2013 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettingsViewController.h"
+#import "RJ3150PrintSettings.h"
+
+// This is the DEFAULT popup contentSize for RJ3150PrintSettingsViewController.
+//
+// You can override this by setting the "popoverSize" property (defined in the
+// PrintSettingsViewController superclass) to something different
+// before showing the ViewController.
+//
+// The popoverSize setting will be propagated to all of the "child" ViewControllers
+// of the main ViewController so all of the detail views will be the SAME size as each other.
+//
+// NOTE: iPad1 and iPad2 size = 1024 x 768, iPad3 = 2048 x 1536
+//#define RJ3150POPUPCONTENTSIZE CGSizeMake(400,480)
+#define RJ3150POPUPCONTENTSIZE CGSizeMake(400,548)
+#define RJ3150POPUPCONTENTSIZE_IOS7 CGSizeMake(400,588)
+
+
+/*
+ This class is a subclass of GenericMobileLabelModelPrintSettingsViewController,
+ which implements all the major functionality.
+
+ *** SDK Users:
+ DO NOT INSTANTIATE an instance of GenericMobileLabelModelPrintSettingsViewController.
+ Always instantiate a model-specific class, e.g. RJ3150PrintSettingsViewController
+ */
+
+@interface RJ3150PrintSettingsViewController : GenericMobileLabelModelPrintSettingsViewController
+{
+}
+
+@end
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ4030AiPrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ4030AiPrintSettings.h
new file mode 100755
index 0000000..2000e01
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ4030AiPrintSettings.h
@@ -0,0 +1,103 @@
+//
+// RJ4030AiPrintSettings.h
+// BMSPrinterKit
+//
+// Created by BMS on 2/9/16.
+// Copyright (c) 2012 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettings.h"
+
+
+@interface RJ4030AiPrintSettings : GenericMobileLabelModelPrintSettings
+
+// These definitions are provided for information only. DO NOT MODIFY!
+// spec section 2.3.1 Resolution
+#define RJ4030Ai_RESOLUTION_HORZ 203
+#define RJ4030Ai_RESOLUTION_VERT 203
+// spec section 2.3.5 Raster Line
+#define RJ4030Ai_HEADSIZEDOTS 832
+// spec section "Select compression mode" command
+// NOTE: This should be same as HEADSIZEDOTS/8. And, it should be same as the # of decompressed bytes.
+// NOTE: Previously, this was 162. But, it appears to be an error in the English Command Ref Guide.
+#define RJ4030Ai_MAX_COMPRESS_LENGTH 104
+
+//////////////////////////////////////////////
+// MIN/MAX PAPERWIDTH values are not in spec.
+// Used Windows Printer Driver as reference (which allows 0.47" min and 4.09" max).
+//
+// v1.1.1 UPDATE: According to Ann, MAX_PAPERWIDTH can actually be 4.64" instead of 4.09".
+// However, the printable width can not exceed 832 dots, so setting the paperWidthDots larger than 4.09"
+// will result in the marginWidthDots being increased automatically, but subsequently reducing paperWidthDots
+// will not automatically result in marginWidthDots being decreased back to its previous value.
+// This can be demonstrated using the PrintSettingsViewController.
+//
+// If someone actually has paper that is 4.64" wide, the printed result will NOT BE ANY DIFFERENT whether
+// we allow 4.09" or 4.64" here, because in either case we can't use more than 832 dots, and this will be
+// centered automatically on the wider paper. So, there is no reason to allow 4.64" wide here, since doing so
+// potentially introduces the issue related to marginWidthDots mentioned above.
+// So, let's leave MAX_PAPERWIDTHDOTS at 832 rather than change to (4.64F * RJ4030Ai_RESOLUTION_HORZ)
+//
+// UPDATE2: According to Ann, MIN_PAPERWIDTH is actually 2.00" rather than 0.47".
+// However, in case for some reason someone actually has narrower paper, let's not force this 2" restriction.
+// So, we will keep this value the same as before as well.
+//
+// NOTE: MAXPAPERWIDTH does NOT exceed HEADSIZEDOTS!! (refer to v1.1.1 UPDATE discussion above. This comment
+// here is only relevant in comparison to RJ3 and TD2 models, which are still allowing paper width to EXCEED
+// the headsize, though perhaps we shouldn't allow this for the other models either.)
+#define RJ4030Ai_MIN_PAPERWIDTHDOTS (0.47F * RJ4030Ai_RESOLUTION_HORZ) // 95, was using 203 in 0.9 SDK
+#define RJ4030Ai_MAX_PAPERWIDTHDOTS 832 // NOTE: WinDriver allows 4.09", which is ~832.
+//////////////////////////////////////////////
+
+// spec section 2.3.4 Maximum and Minimum Lengths
+#define RJ4030Ai_MIN_PAPERLENGTHDOTS 203 // NOTE: spec says 204 dots, but 203 seems OK.
+#define RJ4030Ai_MAX_PAPERLENGTHDOTS 24094
+// spec section 2.3.3 Feed Amount
+#ifdef OLD
+// IMPORTANT NOTE: For LABEL papertype ONLY, we allow the MIN marginlengthdots to be set to 0.
+// That is, this MIN value here is ignored when papertype = label is specified.
+// Consider the case of a 1.0x0.5" label. A min margin of 0.12" will take up half of the printable length!!
+// This is why we will allow the margin to be set to 0 in this case.
+// Beware that some labels might clip the top if this is set to 0. But, other settings can be tweaked to
+// make it work (such as by setting a larger paperlength and setting the top margin to non-zero.)
+#define RJ4030Ai_MIN_MARGINLENGTHDOTS 24
+
+#else
+// Allow 0 now for continuous roll too, as the Esc iUw command generated from this can affect AirPrint.
+// (Of course, AirPrint is N/A for the Bluetooth model. But, I am changing this so it behaves consistently.)
+// However, if this is 0, then the Esc id command will send 0 too. And, the printer may not eject the page
+// enough at the end. So, I am introducing the MIN_PAGEFEEDDOTS definition now, so that if current marginLengthDots
+// is LESS than MIN_PAGEFEEDDOTS, we will send Esc id command using the MIN_PAGEFEEDDOTS value instead.
+// Otherwise, the Esc id command will use the marginLengthDots value as it has in the past.
+//
+// NOTE: If this occurs, the final paper length after tear off will be up to 1/4" longer than the
+// specified paperLengthDots, because the print data will be (up to) the entire paper length, and then the
+// PAGEFEEDDOTS will be added to the final paper length. If you need a specific paperlength, then make sure
+// that marginLengthDots is >= MIN_PAGEFEEDDOTS.
+
+#define RJ4030Ai_MIN_MARGINLENGTHDOTS 0
+// v2.3.0 UPDATE: Instead of forcing this MIN_PAGEFEEDDOTS value on EVERY page, which essentially PREVENTS a "no gap"
+// solution if the FW actually supports it, now we only force it on the LAST page, allowing a 0-margin between pages
+// in case the FW allows it. But, we will force this on the LAST page, to assure the FW will eject the page to tear off
+// in case it doesn't automatically behave that way.
+#define RJ4030Ai_MIN_PAGEFEEDDOTS_LASTPAGE 24
+
+#endif
+
+#define RJ4030Ai_MAX_MARGINLENGTHDOTS 1020 // NOTE: was using 1015 in 0.9 SDK
+// Arbitrarily restrict extraFeed to 11" at 203 dpi. There is no reason to be larger.
+#define RJ4030Ai_MAX_EXTRAFEEDDOTS (11*RJ4030Ai_RESOLUTION_VERT)
+
+//*** IMPORTANT ***
+// SDK Users:
+// You should NEVER instantiate an object of the GenericMobileLabelModelPrintSettings class.
+// Instead, you should instantiate one of the model-specific subclasses (i.e. RJ4030AiPrintSettings).
+//
+// For a list of important properties in the settings that your application needs to set,
+// refer to the GenericMobileLabelModelPrintSettings superclass.
+
+// SDK Designers:
+// The GenericMobileLabelModelPrintSettings class handles all the important work.
+// This subclass only needs to provide the model-specific data to the generic class.
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ4030AiPrintSettingsViewController.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ4030AiPrintSettingsViewController.h
new file mode 100755
index 0000000..fa96e72
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ4030AiPrintSettingsViewController.h
@@ -0,0 +1,41 @@
+//
+// RJ4030AiPrintSettingsViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 2/9/16.
+// Copyright (c) 2013 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettingsViewController.h"
+#import "RJ4030AiPrintSettings.h"
+
+// This is the DEFAULT popup contentSize for RJ4030AiPrintSettingsViewController.
+//
+// You can override this by setting the "popoverSize" property (defined in the
+// PrintSettingsViewController superclass) to something different
+// before showing the ViewController.
+//
+// The popoverSize setting will be propagated to all of the "child" ViewControllers
+// of the main ViewController so all of the detail views will be the SAME size as each other.
+//
+// NOTE: iPad1 and iPad2 size = 1024 x 768, iPad3 = 2048 x 1536
+#define RJ4030AiPOPUPCONTENTSIZE CGSizeMake(400,480)
+#define RJ4030AiPOPUPCONTENTSIZE_IOS7 CGSizeMake(400,588)
+
+
+/*
+ This class is a subclass of GenericMobileLabelModelPrintSettingsViewController,
+ which implements all the major functionality.
+
+ *** SDK Users:
+ DO NOT INSTANTIATE an instance of GenericMobileLabelModelPrintSettingsViewController.
+ Always instantiate a model-specific class, e.g. RJ4030AiPrintSettingsViewController
+ */
+
+@interface RJ4030AiPrintSettingsViewController : GenericMobileLabelModelPrintSettingsViewController
+{
+}
+
+@end
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ4040PrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ4040PrintSettings.h
new file mode 100755
index 0000000..05339cb
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ4040PrintSettings.h
@@ -0,0 +1,102 @@
+//
+// RJ4040PrintSettings.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/12/12.
+// Copyright (c) 2012 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettings.h"
+
+
+@interface RJ4040PrintSettings : GenericMobileLabelModelPrintSettings
+
+// These definitions are provided for information only. DO NOT MODIFY!
+// spec section 2.3.1 Resolution
+#define RJ4040_RESOLUTION_HORZ 203
+#define RJ4040_RESOLUTION_VERT 203
+// spec section 2.3.5 Raster Line
+#define RJ4040_HEADSIZEDOTS 832
+// spec section "Select compression mode" command
+// NOTE: This should be same as HEADSIZEDOTS/8. And, it should be same as the # of decompressed bytes.
+// NOTE: Previously, this was 162. But, it appears to be an error in the English Command Ref Guide.
+#define RJ4040_MAX_COMPRESS_LENGTH 104
+
+//////////////////////////////////////////////
+// MIN/MAX PAPERWIDTH values are not in spec.
+// Used Windows Printer Driver as reference (which allows 0.47" min and 4.09" max).
+//
+// v1.1.1 UPDATE: According to Ann, MAX_PAPERWIDTH can actually be 4.64" instead of 4.09".
+// However, the printable width can not exceed 832 dots, so setting the paperWidthDots larger than 4.09"
+// will result in the marginWidthDots being increased automatically, but subsequently reducing paperWidthDots
+// will not automatically result in marginWidthDots being decreased back to its previous value.
+// This can be demonstrated using the PrintSettingsViewController.
+//
+// If someone actually has paper that is 4.64" wide, the printed result will NOT BE ANY DIFFERENT whether
+// we allow 4.09" or 4.64" here, because in either case we can't use more than 832 dots, and this will be
+// centered automatically on the wider paper. So, there is no reason to allow 4.64" wide here, since doing so
+// potentially introduces the issue related to marginWidthDots mentioned above.
+// So, let's leave MAX_PAPERWIDTHDOTS at 832 rather than change to (4.64F * RJ4040_RESOLUTION_HORZ)
+//
+// UPDATE2: According to Ann, MIN_PAPERWIDTH is actually 2.00" rather than 0.47".
+// However, in case for some reason someone actually has narrower paper, let's not force this 2" restriction.
+// So, we will keep this value the same as before as well.
+//
+// NOTE: MAXPAPERWIDTH does NOT exceed HEADSIZEDOTS!! (refer to v1.1.1 UPDATE discussion above. This comment
+// here is only relevant in comparison to RJ3 and TD2 models, which are still allowing paper width to EXCEED
+// the headsize, though perhaps we shouldn't allow this for the other models either.)
+#define RJ4040_MIN_PAPERWIDTHDOTS (0.47F * RJ4040_RESOLUTION_HORZ) // 95, was using 203 in 0.9 SDK
+#define RJ4040_MAX_PAPERWIDTHDOTS 832 // NOTE: WinDriver allows 4.09", which is ~832.
+//////////////////////////////////////////////
+
+// spec section 2.3.4 Maximum and Minimum Lengths
+#define RJ4040_MIN_PAPERLENGTHDOTS 203 // NOTE: spec says 204 dots, but 203 seems OK.
+#define RJ4040_MAX_PAPERLENGTHDOTS 24094
+// spec section 2.3.3 Feed Amount
+#ifdef OLD
+// IMPORTANT NOTE: For LABEL papertype ONLY, we allow the MIN marginlengthdots to be set to 0.
+// That is, this MIN value here is ignored when papertype = label is specified.
+// Consider the case of a 1.0x0.5" label. A min margin of 0.12" will take up half of the printable length!!
+// This is why we will allow the margin to be set to 0 in this case.
+// Beware that some labels might clip the top if this is set to 0. But, other settings can be tweaked to
+// make it work (such as by setting a larger paperlength and setting the top margin to non-zero.)
+#define RJ4040_MIN_MARGINLENGTHDOTS 24
+
+#else
+// Allow 0 now for continuous roll too, as the Esc iUw command generated from this can affect AirPrint.
+// However, if this is 0, then the Esc id command will send 0 too. And, the printer may not eject the page
+// enough at the end. So, I am introducing the MIN_PAGEFEEDDOTS definition now, so that if current marginLengthDots
+// is LESS than MIN_PAGEFEEDDOTS, we will send Esc id command using the MIN_PAGEFEEDDOTS value instead.
+// Otherwise, the Esc id command will use the marginLengthDots value as it has in the past.
+//
+// NOTE: If this occurs, the final paper length after tear off will be up to 1/4" longer than the
+// specified paperLengthDots, because the print data will be (up to) the entire paper length, and then the
+// PAGEFEEDDOTS will be added to the final paper length. If you need a specific paperlength, then make sure
+// that marginLengthDots is >= MIN_PAGEFEEDDOTS.
+
+#define RJ4040_MIN_MARGINLENGTHDOTS 0
+// v2.3.0 UPDATE: Instead of forcing this MIN_PAGEFEEDDOTS value on EVERY page, which essentially PREVENTS a "no gap"
+// solution if the FW actually supports it, now we only force it on the LAST page, allowing a 0-margin between pages
+// in case the FW allows it. But, we will force this on the LAST page, to assure the FW will eject the page to tear off
+// in case it doesn't automatically behave that way.
+#define RJ4040_MIN_PAGEFEEDDOTS_LASTPAGE 24
+
+#endif
+
+#define RJ4040_MAX_MARGINLENGTHDOTS 1020 // NOTE: was using 1015 in 0.9 SDK
+// Arbitrarily restrict extraFeed to 11" at 203 dpi. There is no reason to be larger.
+#define RJ4040_MAX_EXTRAFEEDDOTS (11*RJ4040_RESOLUTION_VERT)
+
+//*** IMPORTANT ***
+// SDK Users:
+// You should NEVER instantiate an object of the GenericMobileLabelModelPrintSettings class.
+// Instead, you should instantiate one of the model-specific subclasses (i.e. RJ4040PrintSettings).
+//
+// For a list of important properties in the settings that your application needs to set,
+// refer to the GenericMobileLabelModelPrintSettings superclass.
+
+// SDK Designers:
+// The GenericMobileLabelModelPrintSettings class handles all the important work.
+// This subclass only needs to provide the model-specific data to the generic class.
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ4040PrintSettingsViewController.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ4040PrintSettingsViewController.h
new file mode 100755
index 0000000..9a828bd
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ4040PrintSettingsViewController.h
@@ -0,0 +1,41 @@
+//
+// RJ4040PrintSettingsViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 1/30/13.
+// Copyright (c) 2013 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettingsViewController.h"
+#import "RJ4040PrintSettings.h"
+
+// This is the DEFAULT popup contentSize for RJ4040PrintSettingsViewController.
+//
+// You can override this by setting the "popoverSize" property (defined in the
+// PrintSettingsViewController superclass) to something different
+// before showing the ViewController.
+//
+// The popoverSize setting will be propagated to all of the "child" ViewControllers
+// of the main ViewController so all of the detail views will be the SAME size as each other.
+//
+// NOTE: iPad1 and iPad2 size = 1024 x 768, iPad3 = 2048 x 1536
+#define RJ4040POPUPCONTENTSIZE CGSizeMake(400,480)
+#define RJ4040POPUPCONTENTSIZE_IOS7 CGSizeMake(400,588)
+
+
+/*
+ This class is a subclass of GenericMobileLabelModelPrintSettingsViewController,
+ which implements all the major functionality.
+
+ *** SDK Users:
+ DO NOT INSTANTIATE an instance of GenericMobileLabelModelPrintSettingsViewController.
+ Always instantiate a model-specific class, e.g. RJ4040PrintSettingsViewController
+ */
+
+@interface RJ4040PrintSettingsViewController : GenericMobileLabelModelPrintSettingsViewController
+{
+}
+
+@end
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ4230BPrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ4230BPrintSettings.h
new file mode 100755
index 0000000..503bd44
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ4230BPrintSettings.h
@@ -0,0 +1,107 @@
+//
+// RJ4230BPrintSettings.h
+// BMSPrinterKit
+//
+// Created by BMS on 1/19/18.
+// Copyright (c) 2018 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettings.h"
+
+
+@interface RJ4230BPrintSettings : GenericMobileLabelModelPrintSettings
+
+// These definitions are provided for information only. DO NOT MODIFY!
+// spec section 2.3.1 Resolution
+#define RJ4230B_RESOLUTION_HORZ 203
+#define RJ4230B_RESOLUTION_VERT 203
+// spec section 2.3.5 Raster Line
+#define RJ4230B_HEADSIZEDOTS 832
+// spec section "Select compression mode" command
+// NOTE: This should be same as HEADSIZEDOTS/8. And, it should be same as the # of decompressed bytes.
+// NOTE: Previously, this was 162. But, it appears to be an error in the English Command Ref Guide.
+#define RJ4230B_MAX_COMPRESS_LENGTH 104
+
+//////////////////////////////////////////////
+// MIN/MAX PAPERWIDTH values are not in spec.
+// Used Windows Printer Driver as reference (which allows 0.47" min and 4.09" max).
+//
+// v1.1.1 UPDATE: According to Ann, MAX_PAPERWIDTH can actually be 4.64" instead of 4.09".
+// However, the printable width can not exceed 832 dots, so setting the paperWidthDots larger than 4.09"
+// will result in the marginWidthDots being increased automatically, but subsequently reducing paperWidthDots
+// will not automatically result in marginWidthDots being decreased back to its previous value.
+// This can be demonstrated using the PrintSettingsViewController.
+//
+// If someone actually has paper that is 4.64" wide, the printed result will NOT BE ANY DIFFERENT whether
+// we allow 4.09" or 4.64" here, because in either case we can't use more than 832 dots, and this will be
+// centered automatically on the wider paper. So, there is no reason to allow 4.64" wide here, since doing so
+// potentially introduces the issue related to marginWidthDots mentioned above.
+// So, let's leave MAX_PAPERWIDTHDOTS at 832 rather than change to (4.64F * RJ4230B_RESOLUTION_HORZ)
+//
+// UPDATE2: According to Ann, MIN_PAPERWIDTH is actually 2.00" rather than 0.47".
+// However, in case for some reason someone actually has narrower paper, let's not force this 2" restriction.
+// So, we will keep this value the same as before as well.
+//
+// NOTE: MAXPAPERWIDTH does NOT exceed HEADSIZEDOTS!! (refer to v1.1.1 UPDATE discussion above. This comment
+// here is only relevant in comparison to RJ3 and TD2 models, which are still allowing paper width to EXCEED
+// the headsize, though perhaps we shouldn't allow this for the other models either.)
+#define RJ4230B_MIN_PAPERWIDTHDOTS (0.47F * RJ4230B_RESOLUTION_HORZ) // 95, was using 203 in 0.9 SDK
+#define RJ4230B_MAX_PAPERWIDTHDOTS 912 // NOTE: WinDriver allows 4.49", which is ~912.
+//////////////////////////////////////////////
+
+// spec section 2.3.4 Maximum and Minimum Lengths
+#define RJ4230B_MIN_PAPERLENGTHDOTS 203 // NOTE: spec says 204 dots, but 203 seems OK.
+#define RJ4230B_MAX_PAPERLENGTHDOTS 24094 // NOTE: slightly over 3 meters. TODO:verify this value.
+
+// spec section 2.3.3 Feed Amount
+#ifdef OLD
+// IMPORTANT NOTE: For LABEL papertype ONLY, we allow the MIN marginlengthdots to be set to 0.
+// That is, this MIN value here is ignored when papertype = label is specified.
+// Consider the case of a 1.0x0.5" label. A min margin of 0.12" will take up half of the printable length!!
+// This is why we will allow the margin to be set to 0 in this case.
+// Beware that some labels might clip the top if this is set to 0. But, other settings can be tweaked to
+// make it work (such as by setting a larger paperlength and setting the top margin to non-zero.)
+#define RJ4230B_MIN_MARGINLENGTHDOTS 24
+
+#else
+// Allow 0 now for continuous roll too, as the Esc iUw command generated from this can affect AirPrint.
+// (Of course, AirPrint is N/A for the Bluetooth model. But, I am changing this so it behaves consistently.)
+// However, if this is 0, then the Esc id command will send 0 too. And, the printer may not eject the page
+// enough at the end. So, I am introducing the MIN_PAGEFEEDDOTS definition now, so that if current marginLengthDots
+// is LESS than MIN_PAGEFEEDDOTS, we will send Esc id command using the MIN_PAGEFEEDDOTS value instead.
+// Otherwise, the Esc id command will use the marginLengthDots value as it has in the past.
+//
+// NOTE: If this occurs, the final paper length after tear off will be up to 1/4" longer than the
+// specified paperLengthDots, because the print data will be (up to) the entire paper length, and then the
+// PAGEFEEDDOTS will be added to the final paper length. If you need a specific paperlength, then make sure
+// that marginLengthDots is >= MIN_PAGEFEEDDOTS.
+
+#define RJ4230B_MIN_MARGINLENGTHDOTS 0
+// v2.3.0 UPDATE: Instead of forcing this MIN_PAGEFEEDDOTS value on EVERY page, which essentially PREVENTS a "no gap"
+// solution if the FW actually supports it, now we only force it on the LAST page, allowing a 0-margin between pages
+// in case the FW allows it. But, we will force this on the LAST page, to assure the FW will eject the page to tear off
+// in case it doesn't automatically behave that way.
+#define RJ4230B_MIN_PAGEFEEDDOTS_LASTPAGE 24
+
+#endif
+
+#define RJ4230B_MAX_MARGINLENGTHDOTS 1020
+// Arbitrarily restrict extraFeed to 11" at 203 dpi. There is no reason to be larger.
+#define RJ4230B_MAX_EXTRAFEEDDOTS (11*RJ4230B_RESOLUTION_VERT)
+
+//*** IMPORTANT ***
+// SDK Users:
+// You should NEVER instantiate an object of the GenericMobileLabelModelPrintSettings class.
+// Instead, you should instantiate one of the model-specific subclasses (i.e. RJ4230BPrintSettings).
+//
+// For a list of important properties in the settings that your application needs to set,
+// refer to the GenericMobileLabelModelPrintSettings superclass.
+
+// SDK Designers:
+// The GenericMobileLabelModelPrintSettings class handles all the important work.
+// This subclass only needs to provide the model-specific data to the generic class.
+
+//*** ADDITIONAL PROPERTIES not handled by GenericMobileLabelModelPrintSettings
+@property (nonatomic, assign) BOOL invert180degrees;
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ4230BPrintSettingsViewController.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ4230BPrintSettingsViewController.h
new file mode 100755
index 0000000..aca5a1e
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ4230BPrintSettingsViewController.h
@@ -0,0 +1,42 @@
+//
+// RJ4230BPrintSettingsViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 1/19/18.
+// Copyright (c) 2018 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettingsViewController.h"
+#import "RJ4230BPrintSettings.h"
+#import "PrintSettingTableViewController.h"
+
+// This is the DEFAULT popup contentSize for RJ4230BPrintSettingsViewController.
+//
+// You can override this by setting the "popoverSize" property (defined in the
+// PrintSettingsViewController superclass) to something different
+// before showing the ViewController.
+//
+// The popoverSize setting will be propagated to all of the "child" ViewControllers
+// of the main ViewController so all of the detail views will be the SAME size as each other.
+//
+// NOTE: iPad1 and iPad2 size = 1024 x 768, iPad3 = 2048 x 1536
+//#define RJ3050AiPOPUPCONTENTSIZE CGSizeMake(400,480)
+#define RJ4230BPOPUPCONTENTSIZE CGSizeMake(400,548)
+#define RJ4230BPOPUPCONTENTSIZE_IOS7 CGSizeMake(400,588)
+
+
+/*
+ This class is a subclass of GenericMobileLabelModelPrintSettingsViewController,
+ which implements all the major functionality.
+
+ *** SDK Users:
+ DO NOT INSTANTIATE an instance of GenericMobileLabelModelPrintSettingsViewController.
+ Always instantiate a model-specific class, e.g. RJ4230BPrintSettingsViewController
+ */
+@interface RJ4230BPrintSettingsViewController : GenericMobileLabelModelPrintSettingsViewController
+{
+}
+
+@end
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ4250WBPrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ4250WBPrintSettings.h
new file mode 100755
index 0000000..2bea9d8
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ4250WBPrintSettings.h
@@ -0,0 +1,108 @@
+//
+// RJ4250WBPrintSettings.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/19/18.
+// Copyright (c) 2018 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettings.h"
+
+
+@interface RJ4250WBPrintSettings : GenericMobileLabelModelPrintSettings
+
+// These definitions are provided for information only. DO NOT MODIFY!
+// spec section 2.3.1 Resolution
+#define RJ4250WB_RESOLUTION_HORZ 203
+#define RJ4250WB_RESOLUTION_VERT 203
+// spec section 2.3.5 Raster Line
+#define RJ4250WB_HEADSIZEDOTS 832
+// spec section "Select compression mode" command
+// NOTE: This should be same as HEADSIZEDOTS/8. And, it should be same as the # of decompressed bytes.
+// NOTE: Previously, this was 162. But, it appears to be an error in the English Command Ref Guide.
+#define RJ4250WB_MAX_COMPRESS_LENGTH 104
+
+//////////////////////////////////////////////
+// MIN/MAX PAPERWIDTH values are not in spec.
+// Used Windows Printer Driver as reference (which allows 0.47" min and 4.09" max).
+//
+// v1.1.1 UPDATE: According to Ann, MAX_PAPERWIDTH can actually be 4.64" instead of 4.09".
+// However, the printable width can not exceed 832 dots, so setting the paperWidthDots larger than 4.09"
+// will result in the marginWidthDots being increased automatically, but subsequently reducing paperWidthDots
+// will not automatically result in marginWidthDots being decreased back to its previous value.
+// This can be demonstrated using the PrintSettingsViewController.
+//
+// If someone actually has paper that is 4.64" wide, the printed result will NOT BE ANY DIFFERENT whether
+// we allow 4.09" or 4.64" here, because in either case we can't use more than 832 dots, and this will be
+// centered automatically on the wider paper. So, there is no reason to allow 4.64" wide here, since doing so
+// potentially introduces the issue related to marginWidthDots mentioned above.
+// So, let's leave MAX_PAPERWIDTHDOTS at 832 rather than change to (4.64F * RJ4250WB_RESOLUTION_HORZ)
+//
+// UPDATE2: According to Ann, MIN_PAPERWIDTH is actually 2.00" rather than 0.47".
+// However, in case for some reason someone actually has narrower paper, let's not force this 2" restriction.
+// So, we will keep this value the same as before as well.
+//
+// NOTE: MAXPAPERWIDTH does NOT exceed HEADSIZEDOTS!! (refer to v1.1.1 UPDATE discussion above. This comment
+// here is only relevant in comparison to RJ3 and TD2 models, which are still allowing paper width to EXCEED
+// the headsize, though perhaps we shouldn't allow this for the other models either.)
+#define RJ4250WB_MIN_PAPERWIDTHDOTS (0.47F * RJ4250WB_RESOLUTION_HORZ) // 95, was using 203 in 0.9 SDK
+#define RJ4250WB_MAX_PAPERWIDTHDOTS 912 // NOTE: WinDriver allows 4.49", which is ~912.
+//////////////////////////////////////////////
+
+// spec section 2.3.4 Maximum and Minimum Lengths
+#define RJ4250WB_MIN_PAPERLENGTHDOTS 203 // NOTE: spec says 204 dots, but 203 seems OK.
+#define RJ4250WB_MAX_PAPERLENGTHDOTS 24094 // NOTE: slightly over 3 meters. TODO:verify this value.
+
+// spec section 2.3.3 Feed Amount
+#ifdef OLD
+// IMPORTANT NOTE: For LABEL papertype ONLY, we allow the MIN marginlengthdots to be set to 0.
+// That is, this MIN value here is ignored when papertype = label is specified.
+// Consider the case of a 1.0x0.5" label. A min margin of 0.12" will take up half of the printable length!!
+// This is why we will allow the margin to be set to 0 in this case.
+// Beware that some labels might clip the top if this is set to 0. But, other settings can be tweaked to
+// make it work (such as by setting a larger paperlength and setting the top margin to non-zero.)
+#define RJ4250WB_MIN_MARGINLENGTHDOTS 24
+
+#else
+// Allow 0 now for continuous roll too, as the Esc iUw command generated from this can affect AirPrint.
+// (Of course, AirPrint is N/A for the Bluetooth model. But, I am changing this so it behaves consistently.)
+// However, if this is 0, then the Esc id command will send 0 too. And, the printer may not eject the page
+// enough at the end. So, I am introducing the MIN_PAGEFEEDDOTS definition now, so that if current marginLengthDots
+// is LESS than MIN_PAGEFEEDDOTS, we will send Esc id command using the MIN_PAGEFEEDDOTS value instead.
+// Otherwise, the Esc id command will use the marginLengthDots value as it has in the past.
+//
+// NOTE: If this occurs, the final paper length after tear off will be up to 1/4" longer than the
+// specified paperLengthDots, because the print data will be (up to) the entire paper length, and then the
+// PAGEFEEDDOTS will be added to the final paper length. If you need a specific paperlength, then make sure
+// that marginLengthDots is >= MIN_PAGEFEEDDOTS.
+
+#define RJ4250WB_MIN_MARGINLENGTHDOTS 0
+// v2.3.0 UPDATE: Instead of forcing this MIN_PAGEFEEDDOTS value on EVERY page, which essentially PREVENTS a "no gap"
+// solution if the FW actually supports it, now we only force it on the LAST page, allowing a 0-margin between pages
+// in case the FW allows it. But, we will force this on the LAST page, to assure the FW will eject the page to tear off
+// in case it doesn't automatically behave that way.
+#define RJ4250WB_MIN_PAGEFEEDDOTS_LASTPAGE 24
+
+#endif
+
+#define RJ4250WB_MAX_MARGINLENGTHDOTS 1020
+// Arbitrarily restrict extraFeed to 11" at 203 dpi. There is no reason to be larger.
+#define RJ4250WB_MAX_EXTRAFEEDDOTS (11*RJ4250WB_RESOLUTION_VERT)
+
+//*** IMPORTANT ***
+// SDK Users:
+// You should NEVER instantiate an object of the GenericMobileLabelModelPrintSettings class.
+// Instead, you should instantiate one of the model-specific subclasses (i.e. RJ4250WBPrintSettings).
+//
+// For a list of important properties in the settings that your application needs to set,
+// refer to the GenericMobileLabelModelPrintSettings superclass.
+
+// SDK Designers:
+// The GenericMobileLabelModelPrintSettings class handles all the important work.
+// This subclass only needs to provide the model-specific data to the generic class.
+
+//*** ADDITIONAL PROPERTIES not handled by GenericMobileLabelModelPrintSettings
+@property (nonatomic, assign) BOOL invert180degrees;
+
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ4250WBPrintSettingsViewController.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ4250WBPrintSettingsViewController.h
new file mode 100755
index 0000000..6f58e2b
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/RJ4250WBPrintSettingsViewController.h
@@ -0,0 +1,42 @@
+//
+// RJ4250WBPrintSettingsViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/19/18.
+// Copyright (c) 2018 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettingsViewController.h"
+#import "RJ4250WBPrintSettings.h"
+#import "PrintSettingTableViewController.h"
+
+// This is the DEFAULT popup contentSize for RJ4250WBPrintSettingsViewController.
+//
+// You can override this by setting the "popoverSize" property (defined in the
+// PrintSettingsViewController superclass) to something different
+// before showing the ViewController.
+//
+// The popoverSize setting will be propagated to all of the "child" ViewControllers
+// of the main ViewController so all of the detail views will be the SAME size as each other.
+//
+// NOTE: iPad1 and iPad2 size = 1024 x 768, iPad3 = 2048 x 1536
+//#define RJ3050AiPOPUPCONTENTSIZE CGSizeMake(400,480)
+#define RJ4250WBPOPUPCONTENTSIZE CGSizeMake(400,548)
+#define RJ4250WBPOPUPCONTENTSIZE_IOS7 CGSizeMake(400,588)
+
+
+/*
+ This class is a subclass of GenericMobileLabelModelPrintSettingsViewController,
+ which implements all the major functionality.
+
+ *** SDK Users:
+ DO NOT INSTANTIATE an instance of GenericMobileLabelModelPrintSettingsViewController.
+ Always instantiate a model-specific class, e.g. RJ4250WBPrintSettingsViewController
+ */
+@interface RJ4250WBPrintSettingsViewController : GenericMobileLabelModelPrintSettingsViewController
+{
+}
+
+@end
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/TD2120NPrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/TD2120NPrintSettings.h
new file mode 100755
index 0000000..028c312
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/TD2120NPrintSettings.h
@@ -0,0 +1,83 @@
+//
+// TD2120NPrintSettings.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/18/13.
+// Copyright (c) 2013 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettings.h"
+
+
+@interface TD2120NPrintSettings : GenericMobileLabelModelPrintSettings
+
+// These definitions are provided for information only. DO NOT MODIFY!
+#define TD2120N_RESOLUTION_HORZ 203
+#define TD2120N_RESOLUTION_VERT 203
+// spec section 2.3.5 Raster Line
+#define TD2120N_HEADSIZEDOTS 448
+// spec section "Select compression mode" command
+// NOTE: This should be same as HEADSIZEDOTS/8. And, it should be same as the # of decompressed bytes.
+#define TD2120N_MAX_COMPRESS_LENGTH 56
+
+// not in spec. Used Windows Printer Driver as reference.
+// NOTE: MAXPAPERWIDTH can exceed HEADSIZEDOTS!!
+#define TD2120N_MIN_PAPERWIDTHDOTS (0.47F * TD2120N_RESOLUTION_HORZ) // 95
+#define TD2120N_MAX_PAPERWIDTHDOTS (2.48F * TD2120N_RESOLUTION_VERT) // 503
+// spec section 2.3.4 Maximum and Minimum Lengths
+#define TD2120N_MIN_PAPERLENGTHDOTS 96
+#define TD2120N_MAX_PAPERLENGTHDOTS 7992
+// spec section 2.3.3 Feed Amount
+#ifdef OLD
+// IMPORTANT NOTE: For LABEL papertype ONLY, we allow the MIN marginlengthdots to be set to 0.
+// That is, this MIN value here is ignored when papertype = label is specified.
+// Consider the case of a 1.0x0.5" label. A min margin of 0.12" will take up half of the printable length!!
+// This is why we will allow the margin to be set to 0 in this case.
+// Beware that some labels might clip the top if this is set to 0. But, other settings can be tweaked to
+// make it work (such as by setting a larger paperlength and setting the top margin to non-zero.)
+#define TD2120N_MIN_MARGINLENGTHDOTS 24
+
+#else
+
+// Allow 0 now for continuous roll too, as the Esc iUw command generated from this can affect AirPrint.
+// However, if this is 0, then the Esc id command will send 0 too. And, the printer may not eject the page
+// enough at the end. So, I am introducing the MIN_PAGEFEEDDOTS definition now, so that if current marginLengthDots
+// is LESS than MIN_PAGEFEEDDOTS, we will send Esc id command using the MIN_PAGEFEEDDOTS value instead.
+// Otherwise, the Esc id command will use the marginLengthDots value as it has in the past.
+//
+// NOTE: If this occurs, the final paper length after tear off will be up to 1/4" longer than the
+// specified paperLengthDots, because the print data will be (up to) the entire paper length, and then the
+// PAGEFEEDDOTS will be added to the final paper length. If you need a specific paperlength, then make sure
+// that marginLengthDots is >= MIN_PAGEFEEDDOTS.
+
+#define TD2120N_MIN_MARGINLENGTHDOTS 0
+// v2.3.0 UPDATE: Instead of forcing this MIN_PAGEFEEDDOTS value on EVERY page, which essentially PREVENTS a "no gap"
+// solution if the FW actually supports it, now we only force it on the LAST page, allowing a 0-margin between pages
+// in case the FW allows it. But, we will force this on the LAST page, to assure the FW will eject the page to tear off
+// in case it doesn't automatically behave that way.
+#define TD2120N_MIN_PAGEFEEDDOTS_LASTPAGE 24
+
+#endif
+
+#define TD2120N_MAX_MARGINLENGTHDOTS 1015
+// Arbitrarily restrict extraFeed to 11" at 203 dpi. There is no reason to be larger.
+#define TD2120N_MAX_EXTRAFEEDDOTS (11*TD2120N_RESOLUTION_VERT)
+
+//*** IMPORTANT ***
+// SDK Users:
+// You should NEVER instantiate an object of the GenericMobileLabelModelPrintSettings superclass.
+// Instead, you should instantiate one of the model-specific subclasses (i.e. TD2120NPrintSettings).
+//
+// For a list of important properties in the settings that your application needs to set,
+// refer to the GenericMobileLabelModelPrintSettings superclass.
+
+// SDK Designers:
+// The GenericMobileLabelModelPrintSettings superclass handles all the important work.
+// This subclass only needs to provide the model-specific data to the generic class(es).
+
+//*** ADDITIONAL PROPERTIES not handled by GenericMobileLabelModelPrintSettings
+@property (nonatomic, assign) BOOL peelerEnabled;
+@property (nonatomic, assign) BOOL invert180degrees;
+
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/TD2120NPrintSettingsViewController.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/TD2120NPrintSettingsViewController.h
new file mode 100755
index 0000000..ab40884
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/TD2120NPrintSettingsViewController.h
@@ -0,0 +1,42 @@
+//
+// TD2120NPrintSettingsViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/27/13.
+// Copyright (c) 2013 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettingsViewController.h"
+#import "TD2120NPrintSettings.h"
+
+// This is the DEFAULT popup contentSize for TD2120NPrintSettingsViewController.
+//
+// You can override this by setting the "popoverSize" property (defined in the
+// PrintSettingsViewController superclass) to something different
+// before showing the ViewController.
+//
+// The popoverSize setting will be propagated to all of the "child" ViewControllers
+// of the main ViewController so all of the detail views will be the SAME size as each other.
+//
+// NOTE: iPad1 and iPad2 size = 1024 x 768, iPad3 = 2048 x 1536
+//#define TD2120NPOPUPCONTENTSIZE CGSizeMake(400,480)
+#define TD2120NPOPUPCONTENTSIZE CGSizeMake(400,548)
+#define TD2120NPOPUPCONTENTSIZE_IOS7 CGSizeMake(400,588)
+
+
+/*
+ This class is a subclass of GenericMobileLabelModelPrintSettingsViewController,
+ which implements all the major functionality.
+
+ *** SDK Users:
+ DO NOT INSTANTIATE an instance of GenericMobileLabelModelPrintSettingsViewController.
+ Always instantiate a model-specific class, e.g. TD2120NPrintSettingsViewController
+ */
+
+@interface TD2120NPrintSettingsViewController : GenericMobileLabelModelPrintSettingsViewController
+{
+}
+
+@end
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/TD2130NPrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/TD2130NPrintSettings.h
new file mode 100755
index 0000000..a095e94
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/TD2130NPrintSettings.h
@@ -0,0 +1,82 @@
+//
+// TD2130NPrintSettings.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/18/13.
+// Copyright (c) 2013 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettings.h"
+
+
+@interface TD2130NPrintSettings : GenericMobileLabelModelPrintSettings
+
+// These definitions are provided for information only. DO NOT MODIFY!
+// spec section 2.3.1 Resolution
+#define TD2130N_RESOLUTION_HORZ 300
+#define TD2130N_RESOLUTION_VERT 300
+// spec section 2.3.5 Raster Line
+#define TD2130N_HEADSIZEDOTS 672
+// spec section "Select compression mode" command
+// NOTE: This should be same as HEADSIZEDOTS/8. And, it should be same as the # of decompressed bytes.
+#define TD2130N_MAX_COMPRESS_LENGTH 84
+
+// not in spec. Used Windows Printer Driver as reference.
+// NOTE: MAXPAPERWIDTH can exceed HEADSIZEDOTS!!
+#define TD2130N_MIN_PAPERWIDTHDOTS (0.47F * TD2130N_RESOLUTION_HORZ) // 141
+#define TD2130N_MAX_PAPERWIDTHDOTS (2.48F * TD2130N_RESOLUTION_VERT) // 744
+// spec section 2.3.4 Maximum and Minimum Lengths
+#define TD2130N_MIN_PAPERLENGTHDOTS 142
+#define TD2130N_MAX_PAPERLENGTHDOTS 11811
+// spec section 2.3.3 Feed Amount
+#ifdef OLD
+// IMPORTANT NOTE: For LABEL papertype ONLY, we allow the MIN marginlengthdots to be set to 0.
+// That is, this MIN value here is ignored when papertype = label is specified.
+// Consider the case of a 1.0x0.5" label. A min margin of 0.12" will take up half of the printable length!!
+// This is why we will allow the margin to be set to 0 in this case.
+// Beware that some labels might clip the top if this is set to 0. But, other settings can be tweaked to
+// make it work (such as by setting a larger paperlength and setting the top margin to non-zero.)
+#define TD2130N_MIN_MARGINLENGTHDOTS 35
+
+#else
+// Allow 0 now for continuous roll too, as the Esc iUw command generated from this can affect AirPrint.
+// However, if this is 0, then the Esc id command will send 0 too. And, the printer may not eject the page
+// enough at the end. So, I am introducing the MIN_PAGEFEEDDOTS definition now, so that if current marginLengthDots
+// is LESS than MIN_PAGEFEEDDOTS, we will send Esc id command using the MIN_PAGEFEEDDOTS value instead.
+// Otherwise, the Esc id command will use the marginLengthDots value as it has in the past.
+//
+// NOTE: If this occurs, the final paper length after tear off will be up to 1/4" longer than the
+// specified paperLengthDots, because the print data will be (up to) the entire paper length, and then the
+// PAGEFEEDDOTS will be added to the final paper length. If you need a specific paperlength, then make sure
+// that marginLengthDots is >= MIN_PAGEFEEDDOTS.
+
+#define TD2130N_MIN_MARGINLENGTHDOTS 0
+// v2.3.0 UPDATE: Instead of forcing this MIN_PAGEFEEDDOTS value on EVERY page, which essentially PREVENTS a "no gap"
+// solution if the FW actually supports it, now we only force it on the LAST page, allowing a 0-margin between pages
+// in case the FW allows it. But, we will force this on the LAST page, to assure the FW will eject the page to tear off
+// in case it doesn't automatically behave that way.
+#define TD2130N_MIN_PAGEFEEDDOTS_LASTPAGE 35
+
+#endif
+
+#define TD2130N_MAX_MARGINLENGTHDOTS 1500
+// Arbitrarily restrict extraFeed to 11" at 203 dpi. There is no reason to be larger.
+#define TD2130N_MAX_EXTRAFEEDDOTS (11*TD2130N_RESOLUTION_VERT)
+
+//*** IMPORTANT ***
+// SDK Users:
+// You should NEVER instantiate an object of the GenericMobileLabelModelPrintSettings superclass.
+// Instead, you should instantiate one of the model-specific subclasses (i.e. TD2130NPrintSettings).
+//
+// For a list of important properties in the settings that your application needs to set,
+// refer to the GenericMobileLabelModelPrintSettings superclass.
+
+// SDK Designers:
+// The GenericMobileLabelModelPrintSettings superclass handles all the important work.
+// This subclass only needs to provide the model-specific data to the generic class(es).
+
+//*** ADDITIONAL PROPERTIES not handled by GenericMobileLabelModelPrintSettings
+@property (nonatomic, assign) BOOL peelerEnabled;
+@property (nonatomic, assign) BOOL invert180degrees;
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/TD2130NPrintSettingsViewController.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/TD2130NPrintSettingsViewController.h
new file mode 100755
index 0000000..ded2089
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/TD2130NPrintSettingsViewController.h
@@ -0,0 +1,42 @@
+//
+// TD2130NPrintSettingsViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/27/13.
+// Copyright (c) 2013 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettingsViewController.h"
+#import "TD2130NPrintSettings.h"
+
+// This is the DEFAULT popup contentSize for TD2130NPrintSettingsViewController.
+//
+// You can override this by setting the "popoverSize" property (defined in the
+// PrintSettingsViewController superclass) to something different
+// before showing the ViewController.
+//
+// The popoverSize setting will be propagated to all of the "child" ViewControllers
+// of the main ViewController so all of the detail views will be the SAME size as each other.
+//
+// NOTE: iPad1 and iPad2 size = 1024 x 768, iPad3 = 2048 x 1536
+//#define TD2130NPOPUPCONTENTSIZE CGSizeMake(400,480)
+#define TD2130NPOPUPCONTENTSIZE CGSizeMake(400,548)
+#define TD2130NPOPUPCONTENTSIZE_IOS7 CGSizeMake(400,588)
+
+
+/*
+ This class is a subclass of GenericMobileLabelModelPrintSettingsViewController,
+ which implements all the major functionality.
+
+ *** SDK Users:
+ DO NOT INSTANTIATE an instance of GenericMobileLabelModelPrintSettingsViewController.
+ Always instantiate a model-specific class, e.g. TD2130NPrintSettingsViewController
+ */
+
+@interface TD2130NPrintSettingsViewController : GenericMobileLabelModelPrintSettingsViewController
+{
+}
+
+@end
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/TD4550DNWBPrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/TD4550DNWBPrintSettings.h
new file mode 100755
index 0000000..5a5f47f
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/TD4550DNWBPrintSettings.h
@@ -0,0 +1,76 @@
+//
+// TD4550DNWBPrintSettings.h
+// BMSPrinterKit
+//
+// Created by BMS on 5/16/19.
+// Copyright (c) 2019 Brother Mobile Solutions. All rights reserved.
+
+//
+
+#import "GenericMobileLabelModelPrintSettings.h"
+
+
+@interface TD4550DNWBPrintSettings : GenericMobileLabelModelPrintSettings
+
+// These definitions are provided for information only. DO NOT MODIFY!
+// spec section 4.3.1 Resolution
+#define TD4550DNWB_RESOLUTION_HORZ 300
+#define TD4550DNWB_RESOLUTION_VERT 300
+// spec section 4.3.5 Raster Line
+#define TD4550DNWB_HEADSIZEDOTS 1280 // 4.2666" at 300 dpi
+// spec section "Select compression mode" command
+// NOTE: This should be same as HEADSIZEDOTS/8. And, it should be same as the # of decompressed bytes.
+#define TD4550DNWB_MAX_COMPRESS_LENGTH 160
+
+//////////////////////////////////////////////
+// MIN/MAX PAPERWIDTH values are ** NOT ** in spec.
+// Used Windows Printer Driver as reference (which allows 0.75" min and 4.65" max).
+//
+#define TD4550DNWB_MIN_PAPERWIDTHDOTS (0.75F * TD4550DNWB_RESOLUTION_HORZ)
+#define TD4550DNWB_MAX_PAPERWIDTHDOTS (4.65F * TD4550DNWB_RESOLUTION_HORZ)
+//////////////////////////////////////////////
+
+//*** spec section 4.3.4 Maximum and Minimum Lengths
+#define TD4550DNWB_MIN_PAPERLENGTHDOTS 142
+#define TD4550DNWB_MAX_PAPERLENGTHDOTS 35433
+
+//*** spec section 4.3.3 Feed Amount
+//
+// Instead of forcing MIN_PAGEFEEDDOTS value on EVERY page, which essentially PREVENTS a "no gap"
+// solution if the FW actually supports it, now we only force it on the LAST page, allowing a 0-margin between pages
+// in case the FW allows it. But, we will force this on the LAST page, to assure the FW will eject the page to tear off
+// in case it doesn't automatically behave that way.
+#define TD4550DNWB_MIN_MARGINLENGTHDOTS 0
+#define TD4550DNWB_MIN_PAGEFEEDDOTS_LASTPAGE 35
+
+#define TD4550DNWB_MAX_MARGINLENGTHDOTS 1500 // 5" at 300 dpi
+// Arbitrarily restrict extraFeed to 11" at 203 dpi. There is no reason to be larger.
+#define TD4550DNWB_MAX_EXTRAFEEDDOTS (11*TD4550DNWB_RESOLUTION_VERT)
+
+#define TD4550DNWB_MAX_AUTOCUT_NUMLABELS 255 // NOTE: Windows driver uses 99 here, spec says 255.
+
+
+
+//*** IMPORTANT ***
+// SDK Users:
+// You should NEVER instantiate an object of the GenericMobileLabelModelPrintSettings class.
+// Instead, you should instantiate one of the model-specific subclasses (i.e. TD4550DNWBPrintSettings).
+//
+// For a list of important properties in the settings that your application needs to set,
+// refer to the GenericMobileLabelModelPrintSettings superclass.
+
+// SDK Designers:
+// The GenericMobileLabelModelPrintSettings class handles all the important work.
+// This subclass only needs to provide the model-specific data to the generic class.
+
+//*** ADDITIONAL PROPERTIES not handled by GenericMobileLabelModelPrintSettings
+@property (nonatomic, assign) BOOL peelerEnabled;
+@property (nonatomic, assign) BOOL invert180degrees;
+
+// The following are used with the cutter
+@property (nonatomic, assign) BOOL cutAtEndOfJobEnabled; // true: cuts at end of last page of job
+@property (nonatomic, assign) BOOL autoCutEnabled; // true: automatically cuts every N labels, as specified by autoCutEveryNLabels
+@property (nonatomic, assign) unsigned int autoCutEveryNLabels; // default is 1 -> autocut each label. Set value to print N labels before cutting. Allowed Range is 1 to TD4550DNWB_MAX_AUTOCUT_NUMLABELS.
+
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/TD4550DNWBPrintSettingsViewController.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/TD4550DNWBPrintSettingsViewController.h
new file mode 100755
index 0000000..b63641d
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Headers/TD4550DNWBPrintSettingsViewController.h
@@ -0,0 +1,42 @@
+//
+// TD4550DNWBPrintSettingsViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 5/16/19.
+// Copyright (c) 2019 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettingsViewController.h"
+#import "TD4550DNWBPrintSettings.h"
+#import "PrintSettingTableViewController.h"
+
+// This is the DEFAULT popup contentSize for TD4550DNWBPrintSettingsViewController.
+//
+// You can override this by setting the "popoverSize" property (defined in the
+// PrintSettingsViewController superclass) to something different
+// before showing the ViewController.
+//
+// The popoverSize setting will be propagated to all of the "child" ViewControllers
+// of the main ViewController so all of the detail views will be the SAME size as each other.
+//
+// NOTE: iPad1 and iPad2 size = 1024 x 768, iPad3 = 2048 x 1536
+//#define RJ3050AiPOPUPCONTENTSIZE CGSizeMake(400,480)
+#define TD4550DNWBPOPUPCONTENTSIZE CGSizeMake(400,548)
+#define TD4550DNWBPOPUPCONTENTSIZE_IOS7 CGSizeMake(400,588)
+
+
+/*
+ This class is a subclass of GenericMobileLabelModelPrintSettingsViewController,
+ which implements all the major functionality.
+
+ *** SDK Users:
+ DO NOT INSTANTIATE an instance of GenericMobileLabelModelPrintSettingsViewController.
+ Always instantiate a model-specific class, e.g. TD4550DNWBPrintSettingsViewController
+ */
+@interface TD4550DNWBPrintSettingsViewController : GenericMobileLabelModelPrintSettingsViewController
+{
+}
+
+@end
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/IPAddressHelp.pdf b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/IPAddressHelp.pdf
new file mode 100644
index 0000000..063c7a7
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/IPAddressHelp.pdf differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/IPAddressViewController.nib b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/IPAddressViewController.nib
new file mode 100644
index 0000000..2fb4141
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/IPAddressViewController.nib differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Info.plist b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Info.plist
new file mode 100644
index 0000000..c257c2e
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/Info.plist differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/MarginViewController.nib b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/MarginViewController.nib
new file mode 100644
index 0000000..b84a569
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/MarginViewController.nib differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/PJCustomPaperViewController.nib b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/PJCustomPaperViewController.nib
new file mode 100644
index 0000000..54cf307
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/PJCustomPaperViewController.nib differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/PrintProgressViewControllerWithFilename_BMSSDK~ipad.nib b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/PrintProgressViewControllerWithFilename_BMSSDK~ipad.nib
new file mode 100644
index 0000000..26926b9
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/PrintProgressViewControllerWithFilename_BMSSDK~ipad.nib differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/PrintProgressViewControllerWithFilename_BMSSDK~iphone.nib b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/PrintProgressViewControllerWithFilename_BMSSDK~iphone.nib
new file mode 100644
index 0000000..fbaa358
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/PrintProgressViewControllerWithFilename_BMSSDK~iphone.nib differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/PrintProgressViewController_BMSSDK~ipad.nib b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/PrintProgressViewController_BMSSDK~ipad.nib
new file mode 100644
index 0000000..667a2ba
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/PrintProgressViewController_BMSSDK~ipad.nib differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/PrintProgressViewController_BMSSDK~iphone.nib b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/PrintProgressViewController_BMSSDK~iphone.nib
new file mode 100644
index 0000000..928ccaf
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/PrintProgressViewController_BMSSDK~iphone.nib differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/PrinterList.plist b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/PrinterList.plist
new file mode 100644
index 0000000..93ea3ff
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/PrinterList.plist differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/ThresholdViewController.nib b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/ThresholdViewController.nib
new file mode 100644
index 0000000..4bbb881
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/ThresholdViewController.nib differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bsj673ad.ptd b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bsj673ad.ptd
new file mode 100755
index 0000000..3b275e1
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bsj673ad.ptd differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bspe55ad.ptd b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bspe55ad.ptd
new file mode 100755
index 0000000..595bdf0
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bspe55ad.ptd differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bspp75ad.ptd b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bspp75ad.ptd
new file mode 100755
index 0000000..14aa119
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bspp75ad.ptd differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bsq71wad.ptd b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bsq71wad.ptd
new file mode 100755
index 0000000..49d1632
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bsq71wad.ptd differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bsq72wad.ptd b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bsq72wad.ptd
new file mode 100755
index 0000000..124f2b4
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bsq72wad.ptd differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bsr305ad.ptd b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bsr305ad.ptd
new file mode 100755
index 0000000..bfb0685
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bsr305ad.ptd differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bsr315ad.ptd b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bsr315ad.ptd
new file mode 100755
index 0000000..ec2eef3
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bsr315ad.ptd differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bsr403ad.txt b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bsr403ad.txt
new file mode 100755
index 0000000..51b9216
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bsr403ad.txt
@@ -0,0 +1,91 @@
+;******************************************************
+;
+; Brother RJ-4030 PTD Source File
+;
+; Copyright (C) 2011 Brother Industries, Ltd.
+;
+;
+;******************************************************
+[Version]
+FormatVersion=1.02.00.00
+ModelVersion=1.00.00.00
+OutputFileName="bsr403ad.ptd"
+0
+
+[Model]
+bySeriesCode = 0x37
+byModelCode = 0x31
+dmDeviceName = "Brother RJ-4030"
+dwHeadPinNum = 832
+dwDeviceAbility01 = 0
+dwDeviceAbility02 = 0
+wMinCopies = 1
+wMaxCopies = 9999
+wMinCutEveryNum = 1
+wMaxCutEveryNum = 99
+nDefaultPaperSize = 420
+nDefaultPaperLength = 1524
+nDefaultPaperLengthRes = 1218
+wResolutionNum = 1
+wResolutions = 203,203
+0
+
+[Paper00]
+szPaperName_mm = "RD 102mm x 152mm"
+szPaperName_Inch = "RD 4" x 6""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = "6.00""
+nType = 0x4b
+nPaperSize = 420
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 812
+nImageAreaWidthRes = 788
+nPaperLength = 1524
+nImageAreaLength = 1405
+nPaperLengthRes = 1218
+nImageAreaLengthRes = 1123
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 48
+wPinOffsetLeft = 22
+wPinOffsetRight = 22
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00000480
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 6
+byRollWidMm = 106
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 420
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 152mm"
+szSizeIN = "4" x 6""
+MediaAtrInfo = 0
+lblPitchDot = 1270
+markNoChkValu = 0
+reserved_12_ = 48,0,0,0,0,0,1,0,0,0,0,0
+0
+
+
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bsr403aiad.txt b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bsr403aiad.txt
new file mode 100755
index 0000000..cf62c07
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bsr403aiad.txt
@@ -0,0 +1,91 @@
+;******************************************************
+;
+; Brother RJ-4030 PTD Source File
+;
+; Copyright (C) 2011 Brother Industries, Ltd.
+;
+;
+;******************************************************
+[Version]
+FormatVersion=1.02.00.00
+ModelVersion=1.00.00.00
+OutputFileName="bsr403aiad.ptd"
+0
+
+[Model]
+bySeriesCode = 0x37
+byModelCode = 0x35
+dmDeviceName = "Brother RJ-4030Ai"
+dwHeadPinNum = 832
+dwDeviceAbility01 = 0
+dwDeviceAbility02 = 0
+wMinCopies = 1
+wMaxCopies = 9999
+wMinCutEveryNum = 1
+wMaxCutEveryNum = 99
+nDefaultPaperSize = 420
+nDefaultPaperLength = 1524
+nDefaultPaperLengthRes = 1218
+wResolutionNum = 1
+wResolutions = 203,203
+0
+
+[Paper00]
+szPaperName_mm = "RD 102mm x 152mm"
+szPaperName_Inch = "RD 4" x 6""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = "6.00""
+nType = 0x4b
+nPaperSize = 420
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 812
+nImageAreaWidthRes = 788
+nPaperLength = 1524
+nImageAreaLength = 1405
+nPaperLengthRes = 1218
+nImageAreaLengthRes = 1123
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 48
+wPinOffsetLeft = 22
+wPinOffsetRight = 22
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00000480
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 6
+byRollWidMm = 106
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 420
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 152mm"
+szSizeIN = "4" x 6""
+MediaAtrInfo = 0
+lblPitchDot = 1270
+markNoChkValu = 0
+reserved_12_ = 48,0,0,0,0,0,1,0,0,0,0,0
+0
+
+
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bsr404ad.ptd b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bsr404ad.ptd
new file mode 100755
index 0000000..73e51f1
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bsr404ad.ptd differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bsr404ad.txt b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bsr404ad.txt
new file mode 100755
index 0000000..26109fa
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bsr404ad.txt
@@ -0,0 +1,91 @@
+;******************************************************
+;
+; Brother RJ-4040 PTD Source File
+;
+; Copyright (C) 2011 Brother Industries, Ltd.
+;
+;
+;******************************************************
+[Version]
+FormatVersion=1.02.00.00
+ModelVersion=1.00.00.00
+OutputFileName="bsr404ad.ptd"
+0
+
+[Model]
+bySeriesCode = 0x37
+byModelCode = 0x32
+dmDeviceName = "Brother RJ-4040"
+dwHeadPinNum = 832
+dwDeviceAbility01 = 0
+dwDeviceAbility02 = 0
+wMinCopies = 1
+wMaxCopies = 9999
+wMinCutEveryNum = 1
+wMaxCutEveryNum = 99
+nDefaultPaperSize = 420
+nDefaultPaperLength = 1524
+nDefaultPaperLengthRes = 1218
+wResolutionNum = 1
+wResolutions = 203,203
+0
+
+[Paper00]
+szPaperName_mm = "RD 102mm x 152mm"
+szPaperName_Inch = "RD 4" x 6""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = "6.00""
+nType = 0x4b
+nPaperSize = 420
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 812
+nImageAreaWidthRes = 788
+nPaperLength = 1524
+nImageAreaLength = 1405
+nPaperLengthRes = 1218
+nImageAreaLengthRes = 1123
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 48
+wPinOffsetLeft = 22
+wPinOffsetRight = 22
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00000480
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 6
+byRollWidMm = 106
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 420
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 152mm"
+szSizeIN = "4" x 6""
+MediaAtrInfo = 0
+lblPitchDot = 1270
+markNoChkValu = 0
+reserved_12_ = 48,0,0,0,0,0,1,0,0,0,0,0
+0
+
+
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bsr423ad.txt b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bsr423ad.txt
new file mode 100755
index 0000000..00f7e63
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bsr423ad.txt
@@ -0,0 +1,666 @@
+;******************************************************
+;
+; Brother RJ-4230B PTD Source File
+;
+;
+;******************************************************
+[Version]
+FormatVersion=1.03.00.00
+ModelVersion=1.00.00.00
+OutputFileName="bsr423ad.ptd"
+0
+
+[Model]
+bySeriesCode=0x37
+byModelCode=0x43
+dmDeviceName="Brother RJ-4230B"
+dwHeadPinNum=832
+dwDeviceAbility01=0x00060031
+dwDeviceAbility02=0x00000009
+wMinCopies=1
+wMaxCopies=9999
+wMinCutEveryNum=1
+wMaxCutEveryNum=1
+nDefaultPaperSize=415
+nDefaultPaperLength=5080
+nDefaultPaperLengthRes=4060
+wResolutionNum=1
+wResolutions=203,203
+nDefaultResolution=0
+nPTPaperResolution=0
+nDefaultPaperMargin=30
+nDefaultPaperMarginRes=24
+nDefaultLandscape=1
+dwOptionAbility01=0x0000C2C0
+dwOptionAbility02=0x00000000
+dwDefaultEnabledOptionAbility01=0x00000080
+dwDefaultEnabledOptionAbility02=0x00000000
+dwCommandAbility01=0x006106F6
+dwCommandAbility02=0x00000000
+nMinPaperLength=120
+nMaxPaperLength=30000
+nMinMargin=0
+nMaxMargin=1270
+dwBufferFullLine=-1
+dwBufferFullSize=-1
+0
+
+[Paper00]
+szPaperName_mm = "RD 58mm"
+szPaperName_Inch = "RD 2.2""
+szPaperWidthString_Inch = "2.20""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 426
+nPaperWidth = 580
+nImageAreaWidth = 551
+nPaperWidthRes = 464
+nImageAreaWidthRes = 440
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 196
+wPinOffsetRight = 196
+nMaxFeed = 1015
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 4
+byRollWidMm = 58
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 426
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "58mm"
+szSizeIN = "2.2""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,0,24,0,0,0,0
+0
+
+[Paper01]
+szPaperName_mm = "RD 80mm"
+szPaperName_Inch = "RD 3.15""
+szPaperWidthString_Inch = "3.15""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 441
+nPaperWidth = 800
+nImageAreaWidth = 721
+nPaperWidthRes = 640
+nImageAreaWidthRes = 576
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 32
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 128
+wPinOffsetRight = 128
+nMaxFeed = 1015
+nMaxLength = 10000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 4
+byRollWidMm = 80
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 441
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "80mm"
+szSizeIN = "3.15""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,0,24,0,0,0,0
+0
+
+[Paper02]
+szPaperName_mm = "RD 102mm"
+szPaperName_Inch = "RD 4""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 415
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 812
+nImageAreaWidthRes = 788
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 22
+wPinOffsetRight = 22
+nMaxFeed = 1015
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 4
+byRollWidMm = 102
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 415
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm"
+szSizeIN = "4""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,0,24,0,0,0,0
+0
+
+
+[Paper03]
+szPaperName_mm = "RD 50mm x 85mm"
+szPaperName_Inch = "RD 1.9" x 3.3""
+szPaperWidthString_Inch = "1.90""
+szPaperLengthString_Inch = "3.30""
+nType = 0x4b
+nPaperSize = 427
+nPaperWidth = 500
+nImageAreaWidth = 470
+nPaperWidthRes = 400
+nImageAreaWidthRes = 376
+nPaperLength = 850
+nImageAreaLength = 791
+nPaperLengthRes = 679
+nImageAreaLengthRes = 632
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 228
+wPinOffsetRight = 228
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 7
+byRollWidMm = 54
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 427
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "50mm x 85mm"
+szSizeIN = "1.9" x 3.3""
+MediaAtrInfo = 0
+lblPitchDot = 709
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,1,24,0,0,0,0
+0
+
+
+[Paper04]
+szPaperName_mm = "RD 60mm x 92mm"
+szPaperName_Inch = "RD 2.3" x 3.6""
+szPaperWidthString_Inch = "2.30""
+szPaperLengthString_Inch = "3.60""
+nType = 0x4b
+nPaperSize = 428
+nPaperWidth = 600
+nImageAreaWidth = 571
+nPaperWidthRes = 480
+nImageAreaWidthRes = 456
+nPaperLength = 920
+nImageAreaLength = 861
+nPaperLengthRes = 735
+nImageAreaLengthRes = 688
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 188
+wPinOffsetRight = 188
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 7
+byRollWidMm = 64
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 428
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "60mm x 92mm"
+szSizeIN = "2.3" x 3.6""
+MediaAtrInfo = 0
+lblPitchDot = 779
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,1,24,0,0,0,0
+0
+
+
+[Paper05]
+szPaperName_mm = "RD 80mm x 115mm"
+szPaperName_Inch = "RD 3.1" x 4.5""
+szPaperWidthString_Inch = "3.10""
+szPaperLengthString_Inch = "4.50""
+nType = 0x4b
+nPaperSize = 429
+nPaperWidth = 800
+nImageAreaWidth = 771
+nPaperWidthRes = 639
+nImageAreaWidthRes = 616
+nPaperLength = 1150
+nImageAreaLength = 1081
+nPaperLengthRes = 919
+nImageAreaLengthRes = 864
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 28
+wPinOffsetLeft = 108
+wPinOffsetRight = 108
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 7
+byRollWidMm = 84
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 429
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "80mm x 115mm"
+szSizeIN = "3.1" x 4.5""
+MediaAtrInfo = 0
+lblPitchDot = 948
+markNoChkValu = 0
+reserved_12_ = 28,0,0,0,0,0,1,28,0,0,0,0
+0
+
+[Paper06]
+szPaperName_mm = "RD 102mm x 26mm"
+szPaperName_Inch = "RD 4" x 1""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = "1.00""
+nType = 0x4b
+nPaperSize = 423
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 812
+nImageAreaWidthRes = 788
+nPaperLength = 256
+nImageAreaLength = 195
+nPaperLengthRes = 205
+nImageAreaLengthRes = 156
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 22
+wPinOffsetRight = 22
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 7
+byRollWidMm = 106
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 423
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 26mm"
+szSizeIN = "4" x 1""
+MediaAtrInfo = 0
+lblPitchDot = 229
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,1,0,0,0,0,0
+0
+
+[Paper07]
+szPaperName_mm = "RD 102mm x 50mm"
+szPaperName_Inch = "RD 4" x 2""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = "2.00""
+nType = 0x4b
+nPaperSize = 419
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 812
+nImageAreaWidthRes = 788
+nPaperLength = 499
+nImageAreaLength = 439
+nPaperLengthRes = 399
+nImageAreaLengthRes = 351
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 22
+wPinOffsetRight = 22
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 7
+byRollWidMm = 106
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 419
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 50mm"
+szSizeIN = "4" x 2""
+MediaAtrInfo = 0
+lblPitchDot = 423
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,1,24,0,0,0,0
+0
+
+
+[Paper08]
+szPaperName_mm = "RD 102mm x 76mm"
+szPaperName_Inch = "RD 4" x 3""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = "3.00""
+nType = 0x4b
+nPaperSize = 424
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 812
+nImageAreaWidthRes = 788
+nPaperLength = 762
+nImageAreaLength = 702
+nPaperLengthRes = 609
+nImageAreaLengthRes = 561
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 22
+wPinOffsetRight = 22
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 7
+byRollWidMm = 106
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 424
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 76mm"
+szSizeIN = "4" x 3""
+MediaAtrInfo = 0
+lblPitchDot = 635
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,1,24,0,0,0,0
+0
+
+[Paper09]
+szPaperName_mm = "RD 102mm x 102mm"
+szPaperName_Inch = "RD 4" x 4""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = "4.00""
+nType = 0x4b
+nPaperSize = 425
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 812
+nImageAreaWidthRes = 788
+nPaperLength = 1016
+nImageAreaLength = 956
+nPaperLengthRes = 812
+nImageAreaLengthRes = 764
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 22
+wPinOffsetRight = 22
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 7
+byRollWidMm = 106
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 425
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 102mm"
+szSizeIN = "4" x 4""
+MediaAtrInfo = 0
+lblPitchDot = 847
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,1,24,0,0,0,0
+0
+
+[Paper10]
+szPaperName_mm = "RD 102mm x 152mm"
+szPaperName_Inch = "RD 4" x 6""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = "6.00""
+nType = 0x4b
+nPaperSize = 420
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 812
+nImageAreaWidthRes = 788
+nPaperLength = 1524
+nImageAreaLength = 1405
+nPaperLengthRes = 1218
+nImageAreaLengthRes = 1123
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 48
+wPinOffsetLeft = 22
+wPinOffsetRight = 22
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 7
+byRollWidMm = 106
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 420
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 152mm"
+szSizeIN = "4" x 6""
+MediaAtrInfo = 0
+lblPitchDot = 1270
+markNoChkValu = 0
+reserved_12_ = 48,0,0,0,0,0,1,48,0,0,0,0
+0
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bsr425ad.txt b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bsr425ad.txt
new file mode 100755
index 0000000..e9dd7b0
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bsr425ad.txt
@@ -0,0 +1,610 @@
+;******************************************************
+;
+; Brother RJ-4250WB PTD Source File
+;
+;
+;******************************************************
+[Version]
+FormatVersion=1.03.00.00
+ModelVersion=1.00.00.00
+OutputFileName="bsr425ad.ptd"
+0
+
+[Model]
+bySeriesCode=0x37
+byModelCode=0x44
+dmDeviceName="Brother RJ-4250WB"
+dwHeadPinNum=832
+dwDeviceAbility01=0x00160031
+dwDeviceAbility02=0x00000009
+wMinCopies=1
+wMaxCopies=9999
+wMinCutEveryNum=1
+wMaxCutEveryNum=1
+nDefaultPaperSize=420
+nDefaultPaperLength=1524
+nDefaultPaperLengthRes=1218
+wResolutionNum=1
+wResolutions=203,203
+nDefaultResolution=0
+nPTPaperResolution=0
+nDefaultPaperMargin=30
+nDefaultPaperMarginRes=24
+nDefaultLandscape=1
+dwOptionAbility01=0x0000C2C0
+dwOptionAbility02=0x00000000
+dwDefaultEnabledOptionAbility01=0x00000080
+dwDefaultEnabledOptionAbility02=0x00000000
+dwCommandAbility01=0x006106F6
+dwCommandAbility02=0x00000000
+nMinPaperLength=120
+nMaxPaperLength=30000
+nMinMargin=0
+nMaxMargin=1270
+dwBufferFullLine=-1
+dwBufferFullSize=-1
+0
+
+[Paper00]
+szPaperName_mm = "RD 58mm"
+szPaperName_Inch = "RD 2.2""
+szPaperWidthString_Inch = "2.20""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 426
+nPaperWidth = 580
+nImageAreaWidth = 551
+nPaperWidthRes = 464
+nImageAreaWidthRes = 440
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 196
+wPinOffsetRight = 196
+nMaxFeed = 1015
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 4
+byRollWidMm = 58
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 426
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "58mm"
+szSizeIN = "2.2""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,0,24,0,0,0,0
+0
+
+[Paper01]
+szPaperName_mm = "RD 102mm"
+szPaperName_Inch = "RD 4""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 415
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 812
+nImageAreaWidthRes = 788
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 22
+wPinOffsetRight = 22
+nMaxFeed = 1015
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 4
+byRollWidMm = 102
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 415
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm"
+szSizeIN = "4""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,0,24,0,0,0,0
+0
+
+
+[Paper02]
+szPaperName_mm = "RD 50mm x 85mm"
+szPaperName_Inch = "RD 1.9" x 3.3""
+szPaperWidthString_Inch = "1.90""
+szPaperLengthString_Inch = "3.30""
+nType = 0x4b
+nPaperSize = 427
+nPaperWidth = 500
+nImageAreaWidth = 470
+nPaperWidthRes = 400
+nImageAreaWidthRes = 376
+nPaperLength = 850
+nImageAreaLength = 791
+nPaperLengthRes = 679
+nImageAreaLengthRes = 632
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 228
+wPinOffsetRight = 228
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 7
+byRollWidMm = 54
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 427
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "50mm x 85mm"
+szSizeIN = "1.9" x 3.3""
+MediaAtrInfo = 0
+lblPitchDot = 709
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,1,24,0,0,0,0
+0
+
+
+[Paper03]
+szPaperName_mm = "RD 60mm x 92mm"
+szPaperName_Inch = "RD 2.3" x 3.6""
+szPaperWidthString_Inch = "2.30""
+szPaperLengthString_Inch = "3.60""
+nType = 0x4b
+nPaperSize = 428
+nPaperWidth = 600
+nImageAreaWidth = 571
+nPaperWidthRes = 480
+nImageAreaWidthRes = 456
+nPaperLength = 920
+nImageAreaLength = 861
+nPaperLengthRes = 735
+nImageAreaLengthRes = 688
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 188
+wPinOffsetRight = 188
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 7
+byRollWidMm = 64
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 428
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "60mm x 92mm"
+szSizeIN = "2.3" x 3.6""
+MediaAtrInfo = 0
+lblPitchDot = 779
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,1,24,0,0,0,0
+0
+
+
+[Paper04]
+szPaperName_mm = "RD 80mm x 115mm"
+szPaperName_Inch = "RD 3.1" x 4.5""
+szPaperWidthString_Inch = "3.10""
+szPaperLengthString_Inch = "4.50""
+nType = 0x4b
+nPaperSize = 429
+nPaperWidth = 800
+nImageAreaWidth = 771
+nPaperWidthRes = 639
+nImageAreaWidthRes = 616
+nPaperLength = 1150
+nImageAreaLength = 1081
+nPaperLengthRes = 919
+nImageAreaLengthRes = 864
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 28
+wPinOffsetLeft = 108
+wPinOffsetRight = 108
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 7
+byRollWidMm = 84
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 429
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "80mm x 115mm"
+szSizeIN = "3.1" x 4.5""
+MediaAtrInfo = 0
+lblPitchDot = 948
+markNoChkValu = 0
+reserved_12_ = 28,0,0,0,0,0,1,28,0,0,0,0
+0
+
+[Paper05]
+szPaperName_mm = "RD 102mm x 26mm"
+szPaperName_Inch = "RD 4" x 1""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = "1.00""
+nType = 0x4b
+nPaperSize = 423
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 812
+nImageAreaWidthRes = 788
+nPaperLength = 256
+nImageAreaLength = 195
+nPaperLengthRes = 205
+nImageAreaLengthRes = 156
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 22
+wPinOffsetRight = 22
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 7
+byRollWidMm = 106
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 423
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 26mm"
+szSizeIN = "4" x 1""
+MediaAtrInfo = 0
+lblPitchDot = 229
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,1,0,0,0,0,0
+0
+
+[Paper06]
+szPaperName_mm = "RD 102mm x 50mm"
+szPaperName_Inch = "RD 4" x 2""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = "2.00""
+nType = 0x4b
+nPaperSize = 419
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 812
+nImageAreaWidthRes = 788
+nPaperLength = 499
+nImageAreaLength = 439
+nPaperLengthRes = 399
+nImageAreaLengthRes = 351
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 22
+wPinOffsetRight = 22
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 7
+byRollWidMm = 106
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 419
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 50mm"
+szSizeIN = "4" x 2""
+MediaAtrInfo = 0
+lblPitchDot = 423
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,1,24,0,0,0,0
+0
+
+
+[Paper07]
+szPaperName_mm = "RD 102mm x 76mm"
+szPaperName_Inch = "RD 4" x 3""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = "3.00""
+nType = 0x4b
+nPaperSize = 424
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 812
+nImageAreaWidthRes = 788
+nPaperLength = 762
+nImageAreaLength = 702
+nPaperLengthRes = 609
+nImageAreaLengthRes = 561
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 22
+wPinOffsetRight = 22
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 7
+byRollWidMm = 106
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 424
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 76mm"
+szSizeIN = "4" x 3""
+MediaAtrInfo = 0
+lblPitchDot = 635
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,1,24,0,0,0,0
+0
+
+[Paper08]
+szPaperName_mm = "RD 102mm x 102mm"
+szPaperName_Inch = "RD 4" x 4""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = "4.00""
+nType = 0x4b
+nPaperSize = 425
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 812
+nImageAreaWidthRes = 788
+nPaperLength = 1016
+nImageAreaLength = 956
+nPaperLengthRes = 812
+nImageAreaLengthRes = 764
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 22
+wPinOffsetRight = 22
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 7
+byRollWidMm = 106
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 425
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 102mm"
+szSizeIN = "4" x 4""
+MediaAtrInfo = 0
+lblPitchDot = 847
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,1,24,0,0,0,0
+0
+
+[Paper09]
+szPaperName_mm = "RD 102mm x 152mm"
+szPaperName_Inch = "RD 4" x 6""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = "6.00""
+nType = 0x4b
+nPaperSize = 420
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 812
+nImageAreaWidthRes = 788
+nPaperLength = 1524
+nImageAreaLength = 1405
+nPaperLengthRes = 1218
+nImageAreaLengthRes = 1123
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 48
+wPinOffsetLeft = 22
+wPinOffsetRight = 22
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 7
+byRollWidMm = 106
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 420
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 152mm"
+szSizeIN = "4" x 6""
+MediaAtrInfo = 0
+lblPitchDot = 1270
+markNoChkValu = 0
+reserved_12_ = 48,0,0,0,0,0,1,48,0,0,0,0
+0
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bst212ad.ptd b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bst212ad.ptd
new file mode 100755
index 0000000..e37f078
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bst212ad.ptd differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bst213ad.ptd b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bst213ad.ptd
new file mode 100755
index 0000000..c4fa4a8
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bst213ad.ptd differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bst40ad.txt b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bst40ad.txt
new file mode 100755
index 0000000..461bcb2
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bst40ad.txt
@@ -0,0 +1,482 @@
+;******************************************************
+; Brother TD-4000 PTD Source File
+;
+; Copyright (C) 2009 Brother Industries, Ltd.
+;
+;
+;******************************************************
+[Version]
+FormatVersion=1.02.00.00
+ModelVersion=1.00.00.00
+OutputFileName="bst40ad.ptd"
+0
+
+[Model]
+bySeriesCode = 0x35
+byModelCode = 0x31
+dmDeviceName = "Brother TD-4000"
+dwHeadPinNum = 1296
+dwDeviceAbility01 = 0
+dwDeviceAbility02 = 0
+wMinCopies = 1
+wMaxCopies = 9999
+wMinCutEveryNum = 1
+wMaxCutEveryNum = 99
+nDefaultPaperSize = 421
+nDefaultPaperLength = 256
+nDefaultPaperLengthRes = 302
+wResolutionNum = 1
+wResolutions = 300,300
+0
+
+[Paper00]
+szPaperName_mm = "RD 76mm x 26mm"
+szPaperName_Inch = "RD 3" x 1""
+szPaperWidthString_Inch = "3""
+szPaperLengthString_Inch = "1""
+nType = 0x4b
+nPaperSize = 421
+nPaperWidth = 762
+nImageAreaWidth = 732
+nPaperWidthRes = 900
+nImageAreaWidthRes = 864
+nPaperLength = 256
+nImageAreaLength = 196
+nPaperLengthRes = 302
+nImageAreaLengthRes = 232
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 376
+wPinOffsetRight = 56
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 254
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00000080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 2
+byRollWidMm = 80
+byHeadDivide = 0x0A
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 421
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "76mm x 26mm"
+szSizeIN = "3" x 1""
+MediaAtrInfo = 0
+lblPitchDot = 337
+markNoChkValu = 210
+reserved_12_ = 35,0,0,0,0,0,0,0,0,0,0,0
+0
+
+[Paper01]
+szPaperName_mm = "RD 51mm x 26mm"
+szPaperName_Inch = "RD 2" x 1""
+szPaperWidthString_Inch = "2""
+szPaperLengthString_Inch = "1""
+nType = 0x4b
+nPaperSize = 422
+nPaperWidth = 508
+nImageAreaWidth = 478
+nPaperWidthRes = 600
+nImageAreaWidthRes = 564
+nPaperLength = 256
+nImageAreaLength = 196
+nPaperLengthRes = 302
+nImageAreaLengthRes = 232
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 676
+wPinOffsetRight = 56
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 254
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00000080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 2
+byRollWidMm = 55
+byHeadDivide = 0x06
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 422
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "51mm x 26mm"
+szSizeIN = "2" x 1""
+MediaAtrInfo = 0
+lblPitchDot = 337
+markNoChkValu = 210
+reserved_12_ = 35,0,0,0,0,0,0,0,0,0,0,0
+0
+
+[Paper02]
+szPaperName_mm = "RD 102mm x 50mm"
+szPaperName_Inch = "RD 4" x 2""
+szPaperWidthString_Inch = "4""
+szPaperLengthString_Inch = "2""
+nType = 0x4b
+nPaperSize = 419
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 1200
+nImageAreaWidthRes = 1164
+nPaperLength = 499
+nImageAreaLength = 439
+nPaperLengthRes = 589
+nImageAreaLengthRes = 519
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 76
+wPinOffsetRight = 56
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 254
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00000080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 2
+byRollWidMm = 106
+byHeadDivide = 0x0A
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 419
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 50mm"
+szSizeIN = "4" x 2""
+MediaAtrInfo = 0
+lblPitchDot = 625
+markNoChkValu = 210
+reserved_12_ = 35,0,0,0,0,0,0,0,0,0,0,0
+0
+
+[Paper03]
+szPaperName_mm = "RD 102mm x 152mm"
+szPaperName_Inch = "RD 4" x 6""
+szPaperWidthString_Inch = "4""
+szPaperLengthString_Inch = "2""
+nType = 0x4b
+nPaperSize = 420
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 1200
+nImageAreaWidthRes = 1164
+nPaperLength = 1524
+nImageAreaLength = 1463
+nPaperLengthRes = 1800
+nImageAreaLengthRes = 1728
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 36
+wPinOffsetLeft = 76
+wPinOffsetRight = 56
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 254
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00000080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 2
+byRollWidMm = 106
+byHeadDivide = 0x0A
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 420
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 152mm"
+szSizeIN = "4" x 6""
+MediaAtrInfo = 0
+lblPitchDot = 1874
+markNoChkValu = 210
+reserved_12_ = 36,0,0,0,0,0,0,0,0,0,0,0
+0
+
+
+[Paper04]
+szPaperName_mm = "RD 58mm"
+szPaperName_Inch = "RD 2.28""
+szPaperWidthString_Inch = "2.28""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 426
+nPaperWidth = 580
+nImageAreaWidth = 549
+nPaperWidthRes = 685
+nImageAreaWidthRes = 649
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 615
+wPinOffsetRight = 32
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 254
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00000081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 2
+byRollWidMm = 58
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 426
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "58mm"
+szSizeIN = "2.28""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 35,0,0,0,0,0,0,0,0,0,0,0
+0
+
+
+[Paper05]
+szPaperName_mm = "RD 76mm"
+szPaperName_Inch = "RD 2.9""
+szPaperWidthString_Inch = "2.9""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 439
+nPaperWidth = 760
+nImageAreaWidth = 729
+nPaperWidthRes = 897
+nImageAreaWidthRes = 861
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 379
+wPinOffsetRight = 56
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 254
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00000081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 2
+byRollWidMm = 80
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 439
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "76mm"
+szSizeIN = "2.9""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 35,0,0,0,0,0,0,0,0,0,0,0
+0
+
+
+[Paper06]
+szPaperName_mm = "RD 90mm"
+szPaperName_Inch = "RD 3.5""
+szPaperWidthString_Inch = "3.5""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 440
+nPaperWidth = 900
+nImageAreaWidth = 870
+nPaperWidthRes = 1063
+nImageAreaWidthRes = 1027
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 213
+wPinOffsetRight = 56
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 254
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00000081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 2
+byRollWidMm = 94
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 440
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "90mm"
+szSizeIN = "3.5""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 35,0,0,0,0,0,0,0,0,0,0,0
+0
+
+
+[Paper07]
+szPaperName_mm = "RD 102mm"
+szPaperName_Inch = "RD 4""
+szPaperWidthString_Inch = "4""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 415
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 1200
+nImageAreaWidthRes = 1164
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 76
+wPinOffsetRight = 56
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 254
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00000081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 2
+byRollWidMm = 106
+byHeadDivide = 0x0A
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 415
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm"
+szSizeIN = "4""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 35,0,0,0,0,0,0,0,0,0,0,0
+0
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bst41nad.txt b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bst41nad.txt
new file mode 100755
index 0000000..4a20415
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bst41nad.txt
@@ -0,0 +1,310 @@
+;******************************************************
+; Brother TD-4100N PTD Source File
+;
+; Copyright (C) 2009 Brother Industries, Ltd.
+;
+;
+;******************************************************
+[Version]
+FormatVersion=1.02.00.00
+ModelVersion=1.00.00.00
+OutputFileName="bst41nad.ptd"
+0
+
+[Model]
+bySeriesCode = 0x35
+byModelCode = 0x32
+dmDeviceName = "Brother TD-4100N"
+dwHeadPinNum = 1296
+dwDeviceAbility01 = 0
+dwDeviceAbility02 = 0
+wMinCopies = 1
+wMaxCopies = 9999
+wMinCutEveryNum = 1
+wMaxCutEveryNum = 99
+nDefaultPaperSize = 421
+nDefaultPaperLength = 256
+nDefaultPaperLengthRes = 302
+wResolutionNum = 1
+wResolutions = 300,300
+0
+
+[Paper00]
+szPaperName_mm = "RD 76mm x 26mm"
+szPaperName_Inch = "RD 3" x 1""
+szPaperWidthString_Inch = "3""
+szPaperLengthString_Inch = "1""
+nType = 0x4b
+nPaperSize = 421
+nPaperWidth = 762
+nImageAreaWidth = 732
+nPaperWidthRes = 900
+nImageAreaWidthRes = 864
+nPaperLength = 256
+nImageAreaLength = 196
+nPaperLengthRes = 302
+nImageAreaLengthRes = 232
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 376
+wPinOffsetRight = 56
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 254
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00000080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 2
+byRollWidMm = 80
+byHeadDivide = 0x0A
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 421
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "76mm x 26mm"
+szSizeIN = "3" x 1""
+MediaAtrInfo = 0
+lblPitchDot = 337
+markNoChkValu = 210
+reserved_12_ = 35,0,0,0,0,0,0,0,0,0,0,0
+0
+
+[Paper01]
+szPaperName_mm = "RD 51mm x 26mm"
+szPaperName_Inch = "RD 2" x 1""
+szPaperWidthString_Inch = "2""
+szPaperLengthString_Inch = "1""
+nType = 0x4b
+nPaperSize = 422
+nPaperWidth = 508
+nImageAreaWidth = 478
+nPaperWidthRes = 600
+nImageAreaWidthRes = 564
+nPaperLength = 256
+nImageAreaLength = 196
+nPaperLengthRes = 302
+nImageAreaLengthRes = 232
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 676
+wPinOffsetRight = 56
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 254
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00000080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 2
+byRollWidMm = 55
+byHeadDivide = 0x06
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 422
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "51mm x 26mm"
+szSizeIN = "2" x 1""
+MediaAtrInfo = 0
+lblPitchDot = 337
+markNoChkValu = 210
+reserved_12_ = 35,0,0,0,0,0,0,0,0,0,0,0
+0
+
+[Paper02]
+szPaperName_mm = "RD 102mm x 50mm"
+szPaperName_Inch = "RD 4" x 2""
+szPaperWidthString_Inch = "4""
+szPaperLengthString_Inch = "2""
+nType = 0x4b
+nPaperSize = 419
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 1200
+nImageAreaWidthRes = 1164
+nPaperLength = 499
+nImageAreaLength = 439
+nPaperLengthRes = 589
+nImageAreaLengthRes = 519
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 76
+wPinOffsetRight = 56
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 254
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00000080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 2
+byRollWidMm = 106
+byHeadDivide = 0x0A
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 419
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 50mm"
+szSizeIN = "4" x 2""
+MediaAtrInfo = 0
+lblPitchDot = 625
+markNoChkValu = 210
+reserved_12_ = 35,0,0,0,0,0,0,0,0,0,0,0
+0
+
+[Paper03]
+szPaperName_mm = "RD 102mm x 152mm"
+szPaperName_Inch = "RD 4" x 6""
+szPaperWidthString_Inch = "4""
+szPaperLengthString_Inch = "2""
+nType = 0x4b
+nPaperSize = 420
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 1200
+nImageAreaWidthRes = 1164
+nPaperLength = 1524
+nImageAreaLength = 1463
+nPaperLengthRes = 1800
+nImageAreaLengthRes = 1728
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 36
+wPinOffsetLeft = 76
+wPinOffsetRight = 56
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 254
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00000080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 2
+byRollWidMm = 106
+byHeadDivide = 0x0A
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 420
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 152mm"
+szSizeIN = "4" x 6""
+MediaAtrInfo = 0
+lblPitchDot = 1874
+markNoChkValu = 210
+reserved_12_ = 36,0,0,0,0,0,0,0,0,0,0,0
+0
+
+[Paper04]
+szPaperName_mm = "RD 102mm"
+szPaperName_Inch = "RD 4""
+szPaperWidthString_Inch = "4""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 415
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 1200
+nImageAreaWidthRes = 1164
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 76
+wPinOffsetRight = 56
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 254
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00000081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 2
+byRollWidMm = 106
+byHeadDivide = 0x0A
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 415
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm"
+szSizeIN = "4""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 35,0,0,0,0,0,0,0,0,0,0,0
+0
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bst441ad.txt b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bst441ad.txt
new file mode 100755
index 0000000..fe09688
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bst441ad.txt
@@ -0,0 +1,495 @@
+;******************************************************
+;
+; Brother TD-4410D PTD Source File
+;
+;
+;******************************************************
+[Version]
+FormatVersion=1.03.00.00
+ModelVersion=1.00.00.00
+OutputFileName="bst441ad.ptd"
+0
+
+[Model]
+bySeriesCode=0x35
+byModelCode=0x37
+dmDeviceName="Brother TD-4410D"
+dwHeadPinNum=832
+dwDeviceAbility01=0x10040032
+dwDeviceAbility02=0x00000009
+wMinCopies=1
+wMaxCopies=9999
+wMinCutEveryNum=1
+wMaxCutEveryNum=1
+nDefaultPaperSize=420
+nDefaultPaperLength=1524
+nDefaultPaperLengthRes=1218
+wResolutionNum=1
+wResolutions=203,203
+nDefaultResolution=0
+nPTPaperResolution=0
+nDefaultPaperMargin=30
+nDefaultPaperMarginRes=24
+nDefaultLandscape=1
+dwOptionAbility01=0x0004C6E2
+dwOptionAbility02=0x00000000
+dwDefaultEnabledOptionAbility01=0x00000080
+dwDefaultEnabledOptionAbility02=0x00000000
+dwCommandAbility01=0x006006F6
+dwCommandAbility02=0x00000000
+nMinPaperLength=120
+nMaxPaperLength=30000
+nMinMargin=0
+nMaxMargin=1270
+dwBufferFullLine=-1
+dwBufferFullSize=-1
+0
+
+[Paper00]
+szPaperName_mm = "RD 102mm x 152mm"
+szPaperName_Inch = "RD 4" x 6""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = "6.00""
+nType = 0x4b
+nPaperSize = 420
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 812
+nImageAreaWidthRes = 788
+nPaperLength = 1524
+nImageAreaLength = 1405
+nPaperLengthRes = 1218
+nImageAreaLengthRes = 1123
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 22
+wPinOffsetRight = 22
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 15
+byRollWidMm = 106
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 420
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 152mm"
+szSizeIN = "4" x 6""
+MediaAtrInfo = 0
+lblPitchDot = 1270
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,1,24,0,0,0,0
+0
+
+[Paper01]
+szPaperName_mm = "RD 102mm x 50mm"
+szPaperName_Inch = "RD 4" x 2""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = "2.00""
+nType = 0x4b
+nPaperSize = 419
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 812
+nImageAreaWidthRes = 788
+nPaperLength = 499
+nImageAreaLength = 439
+nPaperLengthRes = 399
+nImageAreaLengthRes = 351
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 22
+wPinOffsetRight = 22
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 15
+byRollWidMm = 106
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 419
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 50mm"
+szSizeIN = "4" x 2""
+MediaAtrInfo = 0
+lblPitchDot = 423
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,1,24,0,0,0,0
+0
+
+[Paper02]
+szPaperName_mm = "RD 76mm x 26mm"
+szPaperName_Inch = "RD 3" x 1""
+szPaperWidthString_Inch = "3""
+szPaperLengthString_Inch = "1""
+nType = 0x4b
+nPaperSize = 421
+nPaperWidth = 762
+nImageAreaWidth = 732
+nPaperWidthRes = 609
+nImageAreaWidthRes = 585
+nPaperLength = 256
+nImageAreaLength = 196
+nPaperLengthRes = 204
+nImageAreaLengthRes = 156
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 124
+wPinOffsetRight = 123
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 254
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 15
+byRollWidMm = 80
+byHeadDivide = 0x0A
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 421
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "76mm x 26mm"
+szSizeIN = "3" x 1""
+MediaAtrInfo = 0
+lblPitchDot = 337
+markNoChkValu = 210
+reserved_12_ = 24,0,0,0,0,0,1,24,0,0,0,0
+0
+
+
+[Paper03]
+szPaperName_mm = "RD 51mm x 26mm"
+szPaperName_Inch = "RD 2" x 1""
+szPaperWidthString_Inch = "2""
+szPaperLengthString_Inch = "1""
+nType = 0x4b
+nPaperSize = 422
+nPaperWidth = 508
+nImageAreaWidth = 478
+nPaperWidthRes = 406
+nImageAreaWidthRes = 382
+nPaperLength = 256
+nImageAreaLength = 196
+nPaperLengthRes = 204
+nImageAreaLengthRes = 156
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 225
+wPinOffsetRight = 225
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 254
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 15
+byRollWidMm = 55
+byHeadDivide = 0x06
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 422
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "51mm x 26mm"
+szSizeIN = "2" x 1""
+MediaAtrInfo = 0
+lblPitchDot = 337
+markNoChkValu = 210
+reserved_12_ = 24,0,0,0,0,0,1,24,0,0,0,0
+0
+
+[Paper04]
+szPaperName_mm = "RD 102mm"
+szPaperName_Inch = "RD 4""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 415
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 812
+nImageAreaWidthRes = 788
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 22
+wPinOffsetRight = 22
+nMaxFeed = 1015
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 4
+byRollWidMm = 102
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 415
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm"
+szSizeIN = "4""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,0,0,0,0,0,0
+0
+
+[Paper05]
+szPaperName_mm = "RD 90mm"
+szPaperName_Inch = "RD 3.5""
+szPaperWidthString_Inch = "3.5""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 440
+nPaperWidth = 900
+nImageAreaWidth = 870
+nPaperWidthRes = 719
+nImageAreaWidthRes = 695
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 69
+wPinOffsetRight = 68
+nMaxFeed = 1015
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 15
+byRollWidMm = 94
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 440
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "90mm"
+szSizeIN = "3.5""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,0,0,0,0,0,0
+0
+
+[Paper06]
+szPaperName_mm = "RD 76mm"
+szPaperName_Inch = "RD 2.9""
+szPaperWidthString_Inch = "2.9""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 439
+nPaperWidth = 760
+nImageAreaWidth = 729
+nPaperWidthRes = 607
+nImageAreaWidthRes = 583
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 125
+wPinOffsetRight = 124
+nMaxFeed = 1015
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 15
+byRollWidMm = 80
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 439
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "76mm"
+szSizeIN = "2.9""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,0,0,0,0,0,0
+0
+
+[Paper07]
+szPaperName_mm = "RD 58mm"
+szPaperName_Inch = "RD 2.2""
+szPaperWidthString_Inch = "2.20""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 426
+nPaperWidth = 580
+nImageAreaWidth = 551
+nPaperWidthRes = 464
+nImageAreaWidthRes = 440
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 196
+wPinOffsetRight = 196
+nMaxFeed = 1015
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 13
+byRollWidMm = 58
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 426
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "58mm"
+szSizeIN = "2.2""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,0,0,0,0,0,0
+0
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bst442ad.txt b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bst442ad.txt
new file mode 100755
index 0000000..7cff8ef
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bst442ad.txt
@@ -0,0 +1,495 @@
+;******************************************************
+;
+; Brother TD-4420DN PTD Source File
+;
+;
+;******************************************************
+[Version]
+FormatVersion=1.03.00.00
+ModelVersion=1.00.00.00
+OutputFileName="bst442ad.ptd"
+0
+
+[Model]
+bySeriesCode=0x35
+byModelCode=0x38
+dmDeviceName="Brother TD-4420DN"
+dwHeadPinNum=832
+dwDeviceAbility01=0x100C0032
+dwDeviceAbility02=0x00000009
+wMinCopies=1
+wMaxCopies=9999
+wMinCutEveryNum=1
+wMaxCutEveryNum=1
+nDefaultPaperSize=420
+nDefaultPaperLength=1524
+nDefaultPaperLengthRes=1218
+wResolutionNum=1
+wResolutions=203,203
+nDefaultResolution=0
+nPTPaperResolution=0
+nDefaultPaperMargin=30
+nDefaultPaperMarginRes=24
+nDefaultLandscape=1
+dwOptionAbility01=0x0004C6E2
+dwOptionAbility02=0x00000000
+dwDefaultEnabledOptionAbility01=0x00000080
+dwDefaultEnabledOptionAbility02=0x00000000
+dwCommandAbility01=0x006006F6
+dwCommandAbility02=0x00000000
+nMinPaperLength=120
+nMaxPaperLength=30000
+nMinMargin=0
+nMaxMargin=1270
+dwBufferFullLine=-1
+dwBufferFullSize=-1
+0
+
+[Paper00]
+szPaperName_mm = "RD 102mm x 152mm"
+szPaperName_Inch = "RD 4" x 6""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = "6.00""
+nType = 0x4b
+nPaperSize = 420
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 812
+nImageAreaWidthRes = 788
+nPaperLength = 1524
+nImageAreaLength = 1405
+nPaperLengthRes = 1218
+nImageAreaLengthRes = 1123
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 22
+wPinOffsetRight = 22
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 15
+byRollWidMm = 106
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 420
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 152mm"
+szSizeIN = "4" x 6""
+MediaAtrInfo = 0
+lblPitchDot = 1270
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,1,24,0,0,0,0
+0
+
+[Paper01]
+szPaperName_mm = "RD 102mm x 50mm"
+szPaperName_Inch = "RD 4" x 2""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = "2.00""
+nType = 0x4b
+nPaperSize = 419
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 812
+nImageAreaWidthRes = 788
+nPaperLength = 499
+nImageAreaLength = 439
+nPaperLengthRes = 399
+nImageAreaLengthRes = 351
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 22
+wPinOffsetRight = 22
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 15
+byRollWidMm = 106
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 419
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 50mm"
+szSizeIN = "4" x 2""
+MediaAtrInfo = 0
+lblPitchDot = 423
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,1,24,0,0,0,0
+0
+
+[Paper02]
+szPaperName_mm = "RD 76mm x 26mm"
+szPaperName_Inch = "RD 3" x 1""
+szPaperWidthString_Inch = "3""
+szPaperLengthString_Inch = "1""
+nType = 0x4b
+nPaperSize = 421
+nPaperWidth = 762
+nImageAreaWidth = 732
+nPaperWidthRes = 609
+nImageAreaWidthRes = 585
+nPaperLength = 256
+nImageAreaLength = 196
+nPaperLengthRes = 204
+nImageAreaLengthRes = 156
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 124
+wPinOffsetRight = 123
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 254
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 15
+byRollWidMm = 80
+byHeadDivide = 0x0A
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 421
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "76mm x 26mm"
+szSizeIN = "3" x 1""
+MediaAtrInfo = 0
+lblPitchDot = 337
+markNoChkValu = 210
+reserved_12_ = 24,0,0,0,0,0,1,24,0,0,0,0
+0
+
+
+[Paper03]
+szPaperName_mm = "RD 51mm x 26mm"
+szPaperName_Inch = "RD 2" x 1""
+szPaperWidthString_Inch = "2""
+szPaperLengthString_Inch = "1""
+nType = 0x4b
+nPaperSize = 422
+nPaperWidth = 508
+nImageAreaWidth = 478
+nPaperWidthRes = 406
+nImageAreaWidthRes = 382
+nPaperLength = 256
+nImageAreaLength = 196
+nPaperLengthRes = 204
+nImageAreaLengthRes = 156
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 225
+wPinOffsetRight = 225
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 254
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 15
+byRollWidMm = 55
+byHeadDivide = 0x06
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 422
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "51mm x 26mm"
+szSizeIN = "2" x 1""
+MediaAtrInfo = 0
+lblPitchDot = 337
+markNoChkValu = 210
+reserved_12_ = 24,0,0,0,0,0,1,24,0,0,0,0
+0
+
+[Paper04]
+szPaperName_mm = "RD 102mm"
+szPaperName_Inch = "RD 4""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 415
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 812
+nImageAreaWidthRes = 788
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 22
+wPinOffsetRight = 22
+nMaxFeed = 1015
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 4
+byRollWidMm = 102
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 415
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm"
+szSizeIN = "4""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,0,0,0,0,0,0
+0
+
+[Paper05]
+szPaperName_mm = "RD 90mm"
+szPaperName_Inch = "RD 3.5""
+szPaperWidthString_Inch = "3.5""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 440
+nPaperWidth = 900
+nImageAreaWidth = 870
+nPaperWidthRes = 719
+nImageAreaWidthRes = 695
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 69
+wPinOffsetRight = 68
+nMaxFeed = 1015
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 15
+byRollWidMm = 94
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 440
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "90mm"
+szSizeIN = "3.5""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,0,0,0,0,0,0
+0
+
+[Paper06]
+szPaperName_mm = "RD 76mm"
+szPaperName_Inch = "RD 2.9""
+szPaperWidthString_Inch = "2.9""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 439
+nPaperWidth = 760
+nImageAreaWidth = 729
+nPaperWidthRes = 607
+nImageAreaWidthRes = 583
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 125
+wPinOffsetRight = 124
+nMaxFeed = 1015
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 15
+byRollWidMm = 80
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 439
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "76mm"
+szSizeIN = "2.9""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,0,0,0,0,0,0
+0
+
+[Paper07]
+szPaperName_mm = "RD 58mm"
+szPaperName_Inch = "RD 2.2""
+szPaperWidthString_Inch = "2.20""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 426
+nPaperWidth = 580
+nImageAreaWidth = 551
+nPaperWidthRes = 464
+nImageAreaWidthRes = 440
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 196
+wPinOffsetRight = 196
+nMaxFeed = 1015
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 13
+byRollWidMm = 58
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 426
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "58mm"
+szSizeIN = "2.2""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,0,0,0,0,0,0
+0
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bst451ad.txt b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bst451ad.txt
new file mode 100755
index 0000000..07eba39
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bst451ad.txt
@@ -0,0 +1,495 @@
+;******************************************************
+;
+; Brother TD-4510D PTD Source File
+;
+;
+;******************************************************
+[Version]
+FormatVersion=1.03.00.00
+ModelVersion=1.00.00.00
+OutputFileName="bst451ad.ptd"
+0
+
+[Model]
+bySeriesCode=0x35
+byModelCode=0x39
+dmDeviceName="Brother TD-4510D"
+dwHeadPinNum=1280
+dwDeviceAbility01=0x10040032
+dwDeviceAbility02=0x00000009
+wMinCopies=1
+wMaxCopies=9999
+wMinCutEveryNum=1
+wMaxCutEveryNum=1
+nDefaultPaperSize=415
+nDefaultPaperLength=0
+nDefaultPaperLengthRes=0
+wResolutionNum=1
+wResolutions=300,300
+nDefaultResolution=0
+nPTPaperResolution=0
+nDefaultPaperMargin=30
+nDefaultPaperMarginRes=35
+nDefaultLandscape=1
+dwOptionAbility01=0x0004C6E2
+dwOptionAbility02=0x00000000
+dwDefaultEnabledOptionAbility01=0x00000080
+dwDefaultEnabledOptionAbility02=0x00000000
+dwCommandAbility01=0x006006F6
+dwCommandAbility02=0x00000000
+nMinPaperLength=120
+nMaxPaperLength=30000
+nMinMargin=0
+nMaxMargin=1270
+dwBufferFullLine=-1
+dwBufferFullSize=-1
+0
+
+[Paper00]
+szPaperName_mm = "RD 102mm x 152mm"
+szPaperName_Inch = "RD 4" x 6""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = "6.00""
+nType = 0x4b
+nPaperSize = 420
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 1200
+nImageAreaWidthRes = 1164
+nPaperLength = 1524
+nImageAreaLength = 1405
+nPaperLengthRes = 1800
+nImageAreaLengthRes = 1728
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 36
+wPinOffsetLeft = 58
+wPinOffsetRight = 58
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 10
+byRollWidMm = 106
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 420
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 152mm"
+szSizeIN = "4" x 6""
+MediaAtrInfo = 0
+lblPitchDot = 1270
+markNoChkValu = 0
+reserved_12_ = 36,0,0,0,0,0,1,36,0,0,0,0
+0
+
+[Paper01]
+szPaperName_mm = "RD 102mm x 50mm"
+szPaperName_Inch = "RD 4" x 2""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = "2.00""
+nType = 0x4b
+nPaperSize = 419
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 1200
+nImageAreaWidthRes = 1164
+nPaperLength = 499
+nImageAreaLength = 439
+nPaperLengthRes = 589
+nImageAreaLengthRes = 519
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 58
+wPinOffsetRight = 58
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 10
+byRollWidMm = 106
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 419
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 50mm"
+szSizeIN = "4" x 2""
+MediaAtrInfo = 0
+lblPitchDot = 423
+markNoChkValu = 0
+reserved_12_ = 35,0,0,0,0,0,1,35,0,0,0,0
+0
+
+[Paper02]
+szPaperName_mm = "RD 76mm x 26mm"
+szPaperName_Inch = "RD 3" x 1""
+szPaperWidthString_Inch = "3""
+szPaperLengthString_Inch = "1""
+nType = 0x4b
+nPaperSize = 421
+nPaperWidth = 762
+nImageAreaWidth = 732
+nPaperWidthRes = 900
+nImageAreaWidthRes = 864
+nPaperLength = 256
+nImageAreaLength = 196
+nPaperLengthRes = 302
+nImageAreaLengthRes = 232
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 208
+wPinOffsetRight = 208
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 254
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 10
+byRollWidMm = 80
+byHeadDivide = 0x0A
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 421
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "76mm x 26mm"
+szSizeIN = "3" x 1""
+MediaAtrInfo = 0
+lblPitchDot = 337
+markNoChkValu = 210
+reserved_12_ = 35,0,0,0,0,0,1,35,0,0,0,0
+0
+
+
+[Paper03]
+szPaperName_mm = "RD 51mm x 26mm"
+szPaperName_Inch = "RD 2" x 1""
+szPaperWidthString_Inch = "2""
+szPaperLengthString_Inch = "1""
+nType = 0x4b
+nPaperSize = 422
+nPaperWidth = 508
+nImageAreaWidth = 478
+nPaperWidthRes = 600
+nImageAreaWidthRes = 564
+nPaperLength = 256
+nImageAreaLength = 196
+nPaperLengthRes = 302
+nImageAreaLengthRes = 232
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 358
+wPinOffsetRight = 358
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 254
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 10
+byRollWidMm = 55
+byHeadDivide = 0x06
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 422
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "51mm x 26mm"
+szSizeIN = "2" x 1""
+MediaAtrInfo = 0
+lblPitchDot = 337
+markNoChkValu = 210
+reserved_12_ = 35,0,0,0,0,0,1,35,0,0,0,0
+0
+
+[Paper04]
+szPaperName_mm = "RD 102mm"
+szPaperName_Inch = "RD 4""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 415
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 1200
+nImageAreaWidthRes = 1164
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 58
+wPinOffsetRight = 58
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 10
+byRollWidMm = 102
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 415
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm"
+szSizeIN = "4""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 35,0,0,0,0,0,0,0,0,0,0,0
+0
+
+[Paper05]
+szPaperName_mm = "RD 90mm"
+szPaperName_Inch = "RD 3.5""
+szPaperWidthString_Inch = "3.5""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 440
+nPaperWidth = 900
+nImageAreaWidth = 870
+nPaperWidthRes = 1063
+nImageAreaWidthRes = 1027
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 127
+wPinOffsetRight = 126
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 10
+byRollWidMm = 94
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 440
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "90mm"
+szSizeIN = "3.5""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 35,0,0,0,0,0,0,0,0,0,0,0
+0
+
+[Paper06]
+szPaperName_mm = "RD 76mm"
+szPaperName_Inch = "RD 2.9""
+szPaperWidthString_Inch = "2.9""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 439
+nPaperWidth = 760
+nImageAreaWidth = 729
+nPaperWidthRes = 897
+nImageAreaWidthRes = 861
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 210
+wPinOffsetRight = 209
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 10
+byRollWidMm = 80
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 439
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "76mm"
+szSizeIN = "2.9""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 35,0,0,0,0,0,0,0,0,0,0,0
+0
+
+[Paper07]
+szPaperName_mm = "RD 58mm"
+szPaperName_Inch = "RD 2.2""
+szPaperWidthString_Inch = "2.20""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 426
+nPaperWidth = 580
+nImageAreaWidth = 551
+nPaperWidthRes = 685
+nImageAreaWidthRes = 649
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 316
+wPinOffsetRight = 315
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 8
+byRollWidMm = 58
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 426
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "58mm"
+szSizeIN = "2.2""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 35,0,0,0,0,0,0,0,0,0,0,0
+0
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bst452ad.txt b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bst452ad.txt
new file mode 100755
index 0000000..a2f01b2
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bst452ad.txt
@@ -0,0 +1,495 @@
+;******************************************************
+;
+; Brother TD-4520DN PTD Source File
+;
+;
+;******************************************************
+[Version]
+FormatVersion=1.03.00.00
+ModelVersion=1.00.00.00
+OutputFileName="bst452ad.ptd"
+0
+
+[Model]
+bySeriesCode=0x35
+byModelCode=0x41
+dmDeviceName="Brother TD-4520DN"
+dwHeadPinNum=1280
+dwDeviceAbility01=0x100C0032
+dwDeviceAbility02=0x00000009
+wMinCopies=1
+wMaxCopies=9999
+wMinCutEveryNum=1
+wMaxCutEveryNum=1
+nDefaultPaperSize=415
+nDefaultPaperLength=0
+nDefaultPaperLengthRes=0
+wResolutionNum=1
+wResolutions=300,300
+nDefaultResolution=0
+nPTPaperResolution=0
+nDefaultPaperMargin=30
+nDefaultPaperMarginRes=35
+nDefaultLandscape=1
+dwOptionAbility01=0x0004C6E2
+dwOptionAbility02=0x00000000
+dwDefaultEnabledOptionAbility01=0x00000080
+dwDefaultEnabledOptionAbility02=0x00000000
+dwCommandAbility01=0x006006F6
+dwCommandAbility02=0x00000000
+nMinPaperLength=120
+nMaxPaperLength=30000
+nMinMargin=0
+nMaxMargin=1270
+dwBufferFullLine=-1
+dwBufferFullSize=-1
+0
+
+[Paper00]
+szPaperName_mm = "RD 102mm x 152mm"
+szPaperName_Inch = "RD 4" x 6""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = "6.00""
+nType = 0x4b
+nPaperSize = 420
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 1200
+nImageAreaWidthRes = 1164
+nPaperLength = 1524
+nImageAreaLength = 1405
+nPaperLengthRes = 1800
+nImageAreaLengthRes = 1728
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 36
+wPinOffsetLeft = 58
+wPinOffsetRight = 58
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 10
+byRollWidMm = 106
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 420
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 152mm"
+szSizeIN = "4" x 6""
+MediaAtrInfo = 0
+lblPitchDot = 1270
+markNoChkValu = 0
+reserved_12_ = 36,0,0,0,0,0,1,36,0,0,0,0
+0
+
+[Paper01]
+szPaperName_mm = "RD 102mm x 50mm"
+szPaperName_Inch = "RD 4" x 2""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = "2.00""
+nType = 0x4b
+nPaperSize = 419
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 1200
+nImageAreaWidthRes = 1164
+nPaperLength = 499
+nImageAreaLength = 439
+nPaperLengthRes = 589
+nImageAreaLengthRes = 519
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 58
+wPinOffsetRight = 58
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 10
+byRollWidMm = 106
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 419
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 50mm"
+szSizeIN = "4" x 2""
+MediaAtrInfo = 0
+lblPitchDot = 423
+markNoChkValu = 0
+reserved_12_ = 35,0,0,0,0,0,1,35,0,0,0,0
+0
+
+[Paper02]
+szPaperName_mm = "RD 76mm x 26mm"
+szPaperName_Inch = "RD 3" x 1""
+szPaperWidthString_Inch = "3""
+szPaperLengthString_Inch = "1""
+nType = 0x4b
+nPaperSize = 421
+nPaperWidth = 762
+nImageAreaWidth = 732
+nPaperWidthRes = 900
+nImageAreaWidthRes = 864
+nPaperLength = 256
+nImageAreaLength = 196
+nPaperLengthRes = 302
+nImageAreaLengthRes = 232
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 208
+wPinOffsetRight = 208
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 254
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 10
+byRollWidMm = 80
+byHeadDivide = 0x0A
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 421
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "76mm x 26mm"
+szSizeIN = "3" x 1""
+MediaAtrInfo = 0
+lblPitchDot = 337
+markNoChkValu = 210
+reserved_12_ = 35,0,0,0,0,0,1,35,0,0,0,0
+0
+
+
+[Paper03]
+szPaperName_mm = "RD 51mm x 26mm"
+szPaperName_Inch = "RD 2" x 1""
+szPaperWidthString_Inch = "2""
+szPaperLengthString_Inch = "1""
+nType = 0x4b
+nPaperSize = 422
+nPaperWidth = 508
+nImageAreaWidth = 478
+nPaperWidthRes = 600
+nImageAreaWidthRes = 564
+nPaperLength = 256
+nImageAreaLength = 196
+nPaperLengthRes = 302
+nImageAreaLengthRes = 232
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 358
+wPinOffsetRight = 358
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 254
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 10
+byRollWidMm = 55
+byHeadDivide = 0x06
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 422
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "51mm x 26mm"
+szSizeIN = "2" x 1""
+MediaAtrInfo = 0
+lblPitchDot = 337
+markNoChkValu = 210
+reserved_12_ = 35,0,0,0,0,0,1,35,0,0,0,0
+0
+
+[Paper04]
+szPaperName_mm = "RD 102mm"
+szPaperName_Inch = "RD 4""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 415
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 1200
+nImageAreaWidthRes = 1164
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 58
+wPinOffsetRight = 58
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 10
+byRollWidMm = 102
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 415
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm"
+szSizeIN = "4""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 35,0,0,0,0,0,0,0,0,0,0,0
+0
+
+[Paper05]
+szPaperName_mm = "RD 90mm"
+szPaperName_Inch = "RD 3.5""
+szPaperWidthString_Inch = "3.5""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 440
+nPaperWidth = 900
+nImageAreaWidth = 870
+nPaperWidthRes = 1063
+nImageAreaWidthRes = 1027
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 127
+wPinOffsetRight = 126
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 10
+byRollWidMm = 94
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 440
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "90mm"
+szSizeIN = "3.5""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 35,0,0,0,0,0,0,0,0,0,0,0
+0
+
+[Paper06]
+szPaperName_mm = "RD 76mm"
+szPaperName_Inch = "RD 2.9""
+szPaperWidthString_Inch = "2.9""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 439
+nPaperWidth = 760
+nImageAreaWidth = 729
+nPaperWidthRes = 897
+nImageAreaWidthRes = 861
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 210
+wPinOffsetRight = 209
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 10
+byRollWidMm = 80
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 439
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "76mm"
+szSizeIN = "2.9""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 35,0,0,0,0,0,0,0,0,0,0,0
+0
+
+[Paper07]
+szPaperName_mm = "RD 58mm"
+szPaperName_Inch = "RD 2.2""
+szPaperWidthString_Inch = "2.20""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 426
+nPaperWidth = 580
+nImageAreaWidth = 551
+nPaperWidthRes = 685
+nImageAreaWidthRes = 649
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 316
+wPinOffsetRight = 315
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 8
+byRollWidMm = 58
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 426
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "58mm"
+szSizeIN = "2.2""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 35,0,0,0,0,0,0,0,0,0,0,0
+0
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bst455ad.txt b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bst455ad.txt
new file mode 100755
index 0000000..b3f5ea0
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/bst455ad.txt
@@ -0,0 +1,495 @@
+;******************************************************
+;
+; Brother TD-4550DNWB PTD Source File
+;
+;
+;******************************************************
+[Version]
+FormatVersion=1.03.00.00
+ModelVersion=1.00.00.00
+OutputFileName="bst455ad.ptd"
+0
+
+[Model]
+bySeriesCode=0x35
+byModelCode=0x42
+dmDeviceName="Brother TD-4550DNWB"
+dwHeadPinNum=1280
+dwDeviceAbility01=0x101E0032
+dwDeviceAbility02=0x00000009
+wMinCopies=1
+wMaxCopies=9999
+wMinCutEveryNum=1
+wMaxCutEveryNum=1
+nDefaultPaperSize=415
+nDefaultPaperLength=0
+nDefaultPaperLengthRes=0
+wResolutionNum=1
+wResolutions=300,300
+nDefaultResolution=0
+nPTPaperResolution=0
+nDefaultPaperMargin=30
+nDefaultPaperMarginRes=35
+nDefaultLandscape=1
+dwOptionAbility01=0x0004C6E2
+dwOptionAbility02=0x00000000
+dwDefaultEnabledOptionAbility01=0x00000080
+dwDefaultEnabledOptionAbility02=0x00000000
+dwCommandAbility01=0x006006F6
+dwCommandAbility02=0x00000000
+nMinPaperLength=120
+nMaxPaperLength=30000
+nMinMargin=0
+nMaxMargin=1270
+dwBufferFullLine=-1
+dwBufferFullSize=-1
+0
+
+[Paper00]
+szPaperName_mm = "RD 102mm x 152mm"
+szPaperName_Inch = "RD 4" x 6""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = "6.00""
+nType = 0x4b
+nPaperSize = 420
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 1200
+nImageAreaWidthRes = 1164
+nPaperLength = 1524
+nImageAreaLength = 1405
+nPaperLengthRes = 1800
+nImageAreaLengthRes = 1728
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 36
+wPinOffsetLeft = 58
+wPinOffsetRight = 58
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 10
+byRollWidMm = 106
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 420
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 152mm"
+szSizeIN = "4" x 6""
+MediaAtrInfo = 0
+lblPitchDot = 1270
+markNoChkValu = 0
+reserved_12_ = 36,0,0,0,0,0,1,36,0,0,0,0
+0
+
+[Paper01]
+szPaperName_mm = "RD 102mm x 50mm"
+szPaperName_Inch = "RD 4" x 2""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = "2.00""
+nType = 0x4b
+nPaperSize = 419
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 1200
+nImageAreaWidthRes = 1164
+nPaperLength = 499
+nImageAreaLength = 439
+nPaperLengthRes = 589
+nImageAreaLengthRes = 519
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 58
+wPinOffsetRight = 58
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 10
+byRollWidMm = 106
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 419
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 50mm"
+szSizeIN = "4" x 2""
+MediaAtrInfo = 0
+lblPitchDot = 423
+markNoChkValu = 0
+reserved_12_ = 35,0,0,0,0,0,1,35,0,0,0,0
+0
+
+[Paper02]
+szPaperName_mm = "RD 76mm x 26mm"
+szPaperName_Inch = "RD 3" x 1""
+szPaperWidthString_Inch = "3""
+szPaperLengthString_Inch = "1""
+nType = 0x4b
+nPaperSize = 421
+nPaperWidth = 762
+nImageAreaWidth = 732
+nPaperWidthRes = 900
+nImageAreaWidthRes = 864
+nPaperLength = 256
+nImageAreaLength = 196
+nPaperLengthRes = 302
+nImageAreaLengthRes = 232
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 208
+wPinOffsetRight = 208
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 254
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 10
+byRollWidMm = 80
+byHeadDivide = 0x0A
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 421
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "76mm x 26mm"
+szSizeIN = "3" x 1""
+MediaAtrInfo = 0
+lblPitchDot = 337
+markNoChkValu = 210
+reserved_12_ = 35,0,0,0,0,0,1,35,0,0,0,0
+0
+
+
+[Paper03]
+szPaperName_mm = "RD 51mm x 26mm"
+szPaperName_Inch = "RD 2" x 1""
+szPaperWidthString_Inch = "2""
+szPaperLengthString_Inch = "1""
+nType = 0x4b
+nPaperSize = 422
+nPaperWidth = 508
+nImageAreaWidth = 478
+nPaperWidthRes = 600
+nImageAreaWidthRes = 564
+nPaperLength = 256
+nImageAreaLength = 196
+nPaperLengthRes = 302
+nImageAreaLengthRes = 232
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 358
+wPinOffsetRight = 358
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 254
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 10
+byRollWidMm = 55
+byHeadDivide = 0x06
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 422
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "51mm x 26mm"
+szSizeIN = "2" x 1""
+MediaAtrInfo = 0
+lblPitchDot = 337
+markNoChkValu = 210
+reserved_12_ = 35,0,0,0,0,0,1,35,0,0,0,0
+0
+
+[Paper04]
+szPaperName_mm = "RD 102mm"
+szPaperName_Inch = "RD 4""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 415
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 1200
+nImageAreaWidthRes = 1164
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 58
+wPinOffsetRight = 58
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 10
+byRollWidMm = 102
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 415
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm"
+szSizeIN = "4""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 35,0,0,0,0,0,0,0,0,0,0,0
+0
+
+[Paper05]
+szPaperName_mm = "RD 90mm"
+szPaperName_Inch = "RD 3.5""
+szPaperWidthString_Inch = "3.5""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 440
+nPaperWidth = 900
+nImageAreaWidth = 870
+nPaperWidthRes = 1063
+nImageAreaWidthRes = 1027
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 127
+wPinOffsetRight = 126
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 10
+byRollWidMm = 94
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 440
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "90mm"
+szSizeIN = "3.5""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 35,0,0,0,0,0,0,0,0,0,0,0
+0
+
+[Paper06]
+szPaperName_mm = "RD 76mm"
+szPaperName_Inch = "RD 2.9""
+szPaperWidthString_Inch = "2.9""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 439
+nPaperWidth = 760
+nImageAreaWidth = 729
+nPaperWidthRes = 897
+nImageAreaWidthRes = 861
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 210
+wPinOffsetRight = 209
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 10
+byRollWidMm = 80
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 439
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "76mm"
+szSizeIN = "2.9""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 35,0,0,0,0,0,0,0,0,0,0,0
+0
+
+[Paper07]
+szPaperName_mm = "RD 58mm"
+szPaperName_Inch = "RD 2.2""
+szPaperWidthString_Inch = "2.20""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 426
+nPaperWidth = 580
+nImageAreaWidth = 551
+nPaperWidthRes = 685
+nImageAreaWidthRes = 649
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 316
+wPinOffsetRight = 315
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 8
+byRollWidMm = 58
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 426
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "58mm"
+szSizeIN = "2.2""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 35,0,0,0,0,0,0,0,0,0,0,0
+0
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/checkbox_checked.png b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/checkbox_checked.png
new file mode 100644
index 0000000..ae99888
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/checkbox_checked.png differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/checkbox_unchecked.png b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/checkbox_unchecked.png
new file mode 100644
index 0000000..aeec54c
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/checkbox_unchecked.png differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/en.lproj/InfoPlist.strings b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/en.lproj/InfoPlist.strings
new file mode 100644
index 0000000..3967e06
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_armv7/BRLMPrinterKit.framework/en.lproj/InfoPlist.strings differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/BRLMPrinterKit b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/BRLMPrinterKit
new file mode 100755
index 0000000..8549102
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/BRLMPrinterKit differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/BluetoothViewController.nib b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/BluetoothViewController.nib
new file mode 100644
index 0000000..b0278da
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/BluetoothViewController.nib differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/CutterViewController.nib b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/CutterViewController.nib
new file mode 100644
index 0000000..547b49e
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/CutterViewController.nib differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/ExtraFeedViewController.nib b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/ExtraFeedViewController.nib
new file mode 100644
index 0000000..2ece443
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/ExtraFeedViewController.nib differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/GenericMobileLabelModelPaperSizeViewController.nib b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/GenericMobileLabelModelPaperSizeViewController.nib
new file mode 100644
index 0000000..cac03dc
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/GenericMobileLabelModelPaperSizeViewController.nib differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BMSPrinterDriver.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BMSPrinterDriver.h
new file mode 100755
index 0000000..d4eede7
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BMSPrinterDriver.h
@@ -0,0 +1,727 @@
+//
+// BMSPrinterDriver.h
+// BMSPrinterKit
+//
+// Created by BMS on 10/2/12.
+// Copyright (c) 2012 Brother Mobile Solutions, Inc. All rights reserved.
+//
+
+#import
+#import
+#import // for UIViewController definition
+
+#ifndef REMOVE_BRPTOUCH_SDK
+// NOTE: This is now preprocessor definition in the RemoveBRPtouchSDK version of the project.
+
+// NOTE: We can NOT use the following "framework" syntax here (i.e. )
+// However, we CAN use the "BRPtouchPrinterKit.h" syntax, since we have added the BIL SDK .h
+// files to our project.
+//#import
+#import "BRPtouchPrinterKit.h"
+
+#endif
+
+#import "PrintSettings.h"
+
+//*** NOTIFICATIONS
+// Register for these if you wish to receive notifications for the following messages.
+// Typically, you will only want to register for these if you are creating your own Custom Progress View.
+
+// *************************************************************************************
+// 1. Use this notification instead of sendData return value if you are making a Progress ViewController.
+// With PJ7 printers, especially PJ-763MFi, "sendDataToChannel" may not return immediately on the final band,
+// because it needs to check printer status to wait for the page to be printed before more data can be sent.
+// This notification will be sent as soon as the data has been sent, allowing you to update your Progress GUI quicker.
+// NOTE: KEY_BYTESWRITTEN is used when processing the SENDDATA notification.
+// NOTE: If you are creating a ProgressView, this notification will work with ALL print APIs, even "simple" ones.
+// So, it's recommended to use this instead of the return value of "sendDataToChannel". Refer to CustomProgress in SDK Sample.
+#define NOTIFICATION_SENDDATA @"SendDataNotification"
+#define NOTIFICATION_SENDDATA_KEY_BYTESWRITTEN @"Bytes Written"
+// *************************************************************************************
+
+// *************************************************************************************
+// 2. MFi Bluetooth models MUST process STATUS RESPONSES for each page BEFORE sending data for the next page.
+// This is being done to fix problems related to data handshake that cause Apple to disconnect the MFi device.
+// The status response will not come until the page has been printed, which may take some time.
+//
+// This notification lets you know when this event occurs, in case you are creating a custom progress and want
+// to inform the user. Even though you probably already know this will happen, the sendDataToChannel API will not return
+// until the status response has been received. So, this notification allows you to update your Progress GUI
+// at the moment this event occurs.
+//
+// * NOTE: SDK 2.1 decided NOT to send this notification for RJ-4030Ai (and other new RJ models). So, it is only being sent for PJ-763MFi.
+//
+// The main reason why is that RJ4 pages typically send AND print much faster than PJ pages because they are shorter,
+// particularly if you are printing labels. So, if you are printing a large batch of labels, then the progress GUI
+// (at least the one built-in to the SDK) looks strange when processing this message, because it spends most of its
+// time showing this message, instead of some potentially more valuable messages for the user.
+
+// Also, RJ models will always be using Roll Paper (continuous or labels), so it is not necessary (typically) to remind user to insert paper
+// for each page, like it is for PJ users who use Cutsheet paper.
+//
+// So, a better approach for RJ4 may be to add other notifications instead of this one, as we read them.
+// This could allow sending notifications if various errors occur DURING printing, such as "Cover Open",
+// "No Paper", "Printer Overheat", "Low Battery", etc.
+//
+// TODO: Add these new notifications. These could be applicable with PJ763Mfi too, but only if we enable the
+// unsolicited status responses.
+//
+#define NOTIFICATION_WAITING_FOR_STATUSRESPONSE @"WaitStatusResponseNotification"
+// *************************************************************************************
+
+// *************************************************************************************
+// 3. Use NOTIFICATION_PRINTER_STATUS to receive notifications about printer status issues while printing,
+// such as "cooling on/off", "coverOpen", "paperOut", etc.
+// Refer to CustomProgressView in SDK Sample App for example of how to process this notification.
+// The "userInfo" will contain Dictionary with 1 key/value pair.
+// * Use KEY_STATUSNUMBER (NSNumber object) to process the notification.
+//
+// *** IMPORTANT NOTE: For now, this notification is ONLY supported for the BLUETOOTH channel, since it's the only channel
+// that can read printer status for the "unsolicited" responses. In the future, this might be applicable for WIFI.
+#define NOTIFICATION_PRINTER_STATUS @"PrinterStatusNotification"
+#define NOTIFICATION_PRINTER_STATUS_KEY_STATUSNUMBER @"Status Number"
+
+//*** Possible values returned for KEY_STATUSNUMBER
+// These values are sent to Apps that register for NOTIFICATION_PRINTER_STATUS notifications.
+// These values are defined arbitrarily and have no correspondence to the values returned in PTSTATUSINFO.
+// NOTE: Not all status responses will generate a notification. And, not all are supported for each printer and channel.
+// And, you are not required to handle all or any of them.
+
+#define NOTIFICATION_PRINTER_STATUSNUMBER_COOLING_BEGIN 2001
+#define NOTIFICATION_PRINTER_STATUSNUMBER_COOLING_END 2002
+#define NOTIFICATION_PRINTER_STATUSNUMBER_MEDIAEMPTY_BEGIN 2003
+#define NOTIFICATION_PRINTER_STATUSNUMBER_COVEROPEN_BEGIN 2004
+#define NOTIFICATION_PRINTER_STATUSNUMBER_WAITINGFORPEELER_BEGIN 2005 // only sent for printers with peeler available and enabled.
+
+// NOTE: MEDIAEMPTY, COVEROPEN, and WAITINGFORPEELER do NOT have a corresponding "_END" notification.
+// The main reason is that the printers don't generate an "unsolicited" status response notification for these "end" conditions.
+// These conditions can be detected internally, but it's not useful for an app because it requires sending another page(s) of data.
+//
+// --------------------------------
+// With MEDIAEMPTY and COVEROPEN:
+// --------------------------------
+// In a multi-page job, the RJ/TD printers continue to receive data and send status responses indicating that printing is successful.
+// Only on the LAST page of a job does the printer WAIT to send "printing completed" status.
+// So, as long as the job doesn't overflow the internal buffer, the printer can receive all the data for the job before
+// you insert paper or close the cover. Then, if cover is closed or media inserted, printing should complete NORMALLY!!
+// This is why they are NOT being treated as "fatal errors". And, for this reason, you may not even need to handle these notifications.
+//
+// The concerns are:
+// a) a statusResponseTimeout error could occur before media is changed after the final page of data has been sent.
+// So, the print API return code will indicate error.
+// But, everything should print OK anyway after you close the cover or insert more paper.
+// b) If too many pages are sent after the error occurs, the printer's internal buffer may fill up which could cause a "fatal" error.
+//
+// If you wish o prevent these concerns, you will have to use the "Manual APIs".
+//
+// Here is an algorithm that may be useful:
+// 1. When you receive the notification, set a flag indicating mediaEmpty or coverOpen.
+// 2. If flag is set, STOP sending data at the BEGINNING of a page
+// 3."Poll" the printer status manually using "getPTStatus", and check the appropriate bits in the status response
+// to determine when the condition goes away.
+// 4. Allow user to cancel, in case there's a problem with the "polling".
+//
+// Refer to the Custom Progress View in SDK Sample App for an example.
+//
+// --------------------------------
+// With WAITINGFORPEELER:
+// --------------------------------
+// There is no reason to check for the "end" notification anyway, because "sendDataToChannel" will not return
+// until after the label is peeled (or a timeout occurs). But, you can use the "begin" notification to post
+// a notice to users as a reminder they need to peel.
+//
+// *************************************************************************************
+
+
+//*** Used to assure that the CGBitmap is 32-pixel aligned
+// NOTE: Need to cast the division result to (int) in case a float type
+// is passed in for x so we get the expected truncation.
+#define ALIGN32(x) ((int)((x+31)/32) * 32)
+
+// *************************************************************************************
+//*** API Function Possible Return Codes ***
+
+#ifndef REMOVE_BRPTOUCH_SDK
+// NOTE: This is now a preprocessor definition in the RemoveBRPtouchSDK version of the project.
+
+// NOTE: Some API functions will return values defined in BRPtouchPrinter.h,
+// such as RET_TRUE, RET_FALSE, ERROR_TIMEOUT, etc.
+// For clarity, the return codes defined in this module will begin at -1000.
+
+#else
+// When BRPtouch SDK is removed, we need to define these constants.
+
+#define RET_FALSE 0
+#define RET_TRUE 1
+#define ERROR_TIMEOUT -3
+
+#endif
+
+#define RET_PARAMETER_ERROR -1000
+#define RET_FILEPATHURL_ERROR -1001
+#define RET_PDFPAGE_ERROR -1002
+#define RET_PRINTSETTINGS_ERROR -1003
+#define RET_PARENTVIEW_ERROR -1004
+#define RET_DATABUFFER_ERROR -1005
+#define RET_PRINTERMODEL_ERROR -1006
+
+// Channel related errors
+// These are generic for EACH channel (WIFI, BT, FILE)
+#define RET_CHANNEL_NOTOPEN_ERROR -1007 // if use Manual APIs on channel that has not been opened successfully
+#define RET_CHANNEL_CREATE_ERROR -1008 // if error creating WIFI/FILE streams or BluetoothSessionController. Memory related.
+#define RET_CHANNEL_WRITE_ERROR -1009 // error occurred while writing data, such as if channel disconnected
+#define RET_CHANNEL_READ_ERROR -1010 // error occurred while reading data, such as if channel disconnected
+
+// This is used only by WIFI and FILE channel.
+// In previous SDKs, RET_CHANNEL_CREATEERROR was used instead, but now we differentiate between these cases.
+// NOTE: With WIFI channel especially, this can occur when user tries to start a job too quickly after a failure.
+// Generally, using "isPrinterReady" API before calling openChannel can avoid this.
+#define RET_CHANNEL_STREAMSTATUS_ERROR -1011
+
+// These are used only for BT channel
+#define RET_BLUETOOTHCHANNEL_NOCONNECTEDPRINTERS_ERROR -1012 // No BT printers are connected
+#define RET_BLUETOOTHCHANNEL_CHANNELDISCONNECTED_ERROR -1013 // BT Session disconnected while sending data
+#define RET_BLUETOOTHCHANNEL_OPENSESSION_ERROR -1014 // unable to open EASession
+// Added this in SDK 2.1.0 to allow distinguishing this from ERROR_TIMEOUT. Only applicable for MFi models.
+// This error may occur if all data was sent successfully for a page, but the SDK timed out waiting for
+// a status response from the printer, which may occur if paper is not inserted on time to print the whole page
+// before the "statusReponseTimeout" has been reached.
+#define RET_BLUETOOTHCHANNEL_STATUSTIMEOUT_ERROR -1015
+
+// These are also only used with BT channel, since it's currently the only Bi-Di channel.
+// However, these are generally related to errors received when processing printer status.
+// So, in case WIFI is ever able to be Bi-Di, let's use a more generic name for these #define constants
+#define RET_PRINTERSTATUS_ERROR_PRINTERTURNEDOFF -1016
+#define RET_PRINTERSTATUS_ERROR_BATTERYWEAK -1017
+#define RET_PRINTERSTATUS_ERROR_EXPANSIONBUFFERFULL -1018
+#define RET_PRINTERSTATUS_ERROR_COMMUNICATIONERROR -1019
+#define RET_PRINTERSTATUS_ERROR_OVERHEATINGERROR -1020
+#define RET_PRINTERSTATUS_ERROR_MEDIACANNOTBEFED -1021 // This is different from media empty. Treated as an error.
+#define RET_PRINTERSTATUS_ERROR_UNKNOWNERROR -1022 // If status response processor gets unhandled error
+
+
+// *************************************************************************************
+
+
+// *************************************************************************************
+// SENDDATAMODE - new parameter added to "sendDataToChannel" and "sendNSDataToChannel".
+//
+// With Bluetooth Printers, it is REQUIRED to know EXACTLY when the FORM FEED command occurs in the data stream.
+//
+// NOTE: By "Form Feed", this means "the last byte(s) of data sent for a PAGE of data", which cause it to
+// print the page.
+// * for PJ models, this typically means "Esc ~ \0C" or "Esc ^ \0C"
+// * for RJ/TD models, this typically means "\1A" or "\0C".
+//
+// The reason is that BT printers typically send several "status" responses while printing a page.
+// In some cases, the printer will NOT ACCEPT DATA until the page completes printing.
+// And, with Bluetooth MFi, Apple will SHUT DOWN THE CONNECTION if it cannot send data to the printer within
+// about 5 seconds. Yet, Apple seems to take the data in some cases before it reports FALSE for "hasSpaceAvailable".
+// As such, there seems to be a TIMING PROBLEM with either the Printer Firmware or Apple's EASession, or both!!
+// So, we need to AVOID sending data to Apple when the printer will stop accepting it.
+//
+// So the "sendDataToChannel" and "sendNSDataToChannel" APIs need to know when the printer will begin printing a
+// page, so we can stop sending data until all the status responses have been processed.
+//
+// NOTE: WIFI models do NOT send status responses over Port9100 connections.
+// So, it is not possible to handle them in the same way as required with Bluetooth models.
+// In this SDK, status is being IGNORED with WIFI connections. But, in the future, it may be necessary to handle it
+// a different way. So, even WIFI models MAY benefit from this new option eventually.
+//
+// Options:
+// 1. kSendDataMode_NoFormFeed:
+// * This buffer of data does NOT contain a form feed.
+// * So, all bytes will be sent and the method will return immediately (as soon as possible)
+//
+// 2. kSendDataMode_FormFeedAtEnd:
+// * This buffer DOES contain a form feed, and this is at the END of the buffer.
+// * NOTE: This can normally be determined easily, since this will be the last buffer of data for the page,
+// where the data was generated by one of the "generatePrintData" APIs below.
+// * So, the sendDataXX methods will process the printer status before returning.
+// * WARNING: Do not use this mode if you generate/send your own ZPL/CPCL/ESCP data!! Some printers (RJ4030Ai at least)
+// do not send status responses except for Raster Mode data.
+//
+// 3. kSendDataMode_FormFeedIndeterminate:
+// * This buffer MAY OR MAY NOT contain a form feed, and it could be anywhere in the buffer.
+// * So, the code may "search" the data buffer to see if it contains the Form Feed, if applicable.
+// * NOTE: Since PJ models contain a 3-byte FormFeed command, it is possible to find it. However, since
+// other models only have a 1-byte command, it is not practical to try to find the byte in the data,
+// because it could be a valid byte of actual PRINT data, NOT a command byte. It is impossible to
+// distinguish without writing a full parser.
+// So, only PJ763 will treat this differently than the "NoFormFeed" option.
+// * NOTE: However, even with PJ, it is possible for the print data to RANDOMLY contain the 3-bytes as PRINT DATA.
+// If this occurs, it WILL cause a PROBLEM.
+// * NOTE: This case is mostly applicable when sending multiple page PRN data, such as with one of the
+// "sendFile" APIs.
+//
+// * We recommend NOT using this option, if it is at all possible to avoid it.
+//
+// Generally, the SDK will handle this internally for the "Simple APIs", e.g. "printPDFFilePathURL".
+// So, you the ISV will only need to care about this when you are using the "Manual APIs".
+//
+// We recommend using options 1 and 2 only if you are using Manual APIs to send PDF or IMAGE data.
+// However, for PRN data, particularly in a FILE, it may be necessary to use option 3 ("Indeterminate").
+//
+// WARNING: If your app generates its own PRN data (e.g. ESC/P, ZPL, CPCL, etc) which you use with "sendDataToChannel",
+// you might think you can use option 1,2 instead of option 3. However, **DO NOT USE** Option 2 ("FormFeedAtEnd")
+// with RJ4030Ai, unless data is "Raster Mode". Unfortunately, the printer does NOT send "unsolicited status" responses
+// for ESC/P, ZPL, CPCL, etc. So, the SDK will lock up waiting for status responses that will never come, and this will
+// result in a STATUSTIMEOUT_ERROR.
+//
+// Refer to SDK Sample App code for more details of how to use this.
+//
+typedef enum
+{
+ kSendDataMode_NoFormFeed=1,
+ kSendDataMode_FormFeedAtEnd,
+ kSendDataMode_FormFeedIndeterminate,
+} SENDDATAMODE;
+// *************************************************************************************
+
+
+@interface BMSPrinterDriver : NSObject
+{
+
+}
+
+//******** Designated Initializers ********
+- (id) initWithPrintSettings:(PrintSettings *)printSettings; // use this for PDF or IMAGE
+- (id) initWithModel:(PRINTERMODEL)theModel; // use this for PRN file/data
+
+//******** Class Properties ********
+@property (nonatomic, assign) PRINTERMODEL printerModel;
+@property (nonatomic, retain) PrintSettings *printSettings;
+
+// Caller MUST set these as appropriate when printing multiple pages (when using the "Manual APIs").
+@property (nonatomic, assign) BOOL isFirstPage;
+@property (nonatomic, assign) BOOL isLastPage;
+
+//*** Optional Properties:
+
+// *************************************************************************************
+// antiAliasMode:
+//
+// This property is now provided to override the (new) default handling of "anti-aliasing".
+// When Anti-Alias is ENABLED, font characters will be "smoothed" by Apple by adding a "light-gray outline".
+// This is Apple's default behavior, and it was our SDK's default behavior in v1.1.1 and earlier.
+//
+// DEFAULT driver behavior (new in SDK 2.0):
+// * If Halftone is kHalftoneDiffusion, anti-alias is DISABLED, because halftoning may produce "stray dots" on
+// characters that can decrease clarity.
+// * If Halftone is kHalftoneThreshold, anti-alias is ENABLED, because Threshold Value can be used to "thicken"
+// the font characters by increasing the Threshold Value, so that the "light-gray outline" is printed BLACK
+// instead of WHITE as it normally does at the default threshold value of 128.
+//
+// In some cases, you might want to force the anti-alias on/off. This property is provided for that purpose.
+//
+// For example, when printing barcodes, generally you will want to use Threshold halftone because Diffusion
+// could make them unreadable. However, with AntiAlias ENABLED, it could result in thicker bars which MAY
+// confuse a barcode reader. If that happens, then you should force AntiAliasing to be disabled.
+//
+// Another example: some pixels in the anti-alias "gray outline" might be darker gray than the Threshold Value,
+// which would result in "stray dots". So, you could DISABLE anti-alias in this case to remove these
+// stray dots, but then modifying Threshold Value would have NO effect in "thickening" the text characters.
+//
+// In most cases, it is a very subtle change, and most users will not notice the difference either way.
+// But, we are providing this property as an option to an ISV just in case it will be required.
+typedef enum
+{
+ kAntiAliasMode_UseDriverDefault=1,
+ kAntiAliasMode_ForceEnabled,
+ kAntiAliasMode_ForceDisabled,
+} ANTIALIASMODE;
+@property (nonatomic, assign) ANTIALIASMODE antiAliasMode;
+// *************************************************************************************
+
+
+// *************************************************************************************
+// interpolationQuality - Added at SDK 2.3.0
+// Previous SDKs did not set a value when drawing the PDF/Image on the CGContext.
+// So, presumably it was using "kCGInterpolationDefault".
+// However, recent tests indicate that using "kCGInterpolationNone" can produce better quality
+// output, especially when using ErrorDiffusion. So, "none" will be the new default.
+// If ISV notices any problems in output quality with the new SDK, this property is provided to
+// allow you to change this setting to one of the other values.
+// NOTE: Not adding a new enum as we did with ANTIALIASMODE, since Apple already provides one.
+@property (nonatomic, assign) CGInterpolationQuality interpolationQuality;
+// *************************************************************************************
+
+
+// *************************************************************************************
+// statusResponseTimeout:
+//
+// Timeout for Status Response - applicable for MFi (Bluetooth) printer models only.
+// In case STATUS_RESPONSE_TIMEOUT_DEFAULT is not sufficient, we provide this property to allow ISV to change it.
+//
+// Quick Summary:
+// * The value of statusResponseTimeout should be large enough to handle the AMOUNT OF TIME it takes to print a WORST CASE
+// page. The response(s) do not come until the page completes printing.
+// * So, you should consider "WORST CASE" as follows:
+// - page has a lot of graphics, paper may not be inserted, print head overheats while printing the page, etc.
+//
+//
+// IMPORTANT: If you do wish to set this, set it BEFORE calling "openChannel" (if using "Manual APIs") or BEFORE any of the
+// "simple APIs" (e.g. "printPDFFilePathURL").
+// Also, this ONLY applies DURING printing. It does not affect the "getPTStatus" API.
+//
+// NOTES:
+// * This timeout is applicable only when "sendDataToChannel" is called with the kSendDataMode_FormFeedAtEnd, or if
+// kSendDataMode_FormFeedIndeterminate (and SDK code detects that a form feed exists in the data).
+// Since all APIs use this function, it is important to understand this.
+// * Well, it is also applicable if kCloseBluetoothChannelFlushMode_UseStatusRequest is enabled.
+//
+// * PJ763Mfi handles this by sending a status request command and then waiting for the printer response, which does not
+// arrive until the page has completed printing.
+// * RJ4030Ai handles this by reading responses that the printer sends automatically, without sending the request.
+// The final response does not arrive until the page has nearly completed printing.
+// Because these responses come only in Raster Mode, do NOT set "FormFeedAtEnd" unless you are sending Raster mode data.
+//
+// * Bluetooth models seems to require this to avoid what seems to be an Apple Bug with "handshaking" when printing
+// MULTIPLE PAGE jobs, especially with PJ763MFi. This printer will stop taking data for next page while the previous
+// page is being printed. However, the outputStream in EASession does not stop taking data on time.
+// So, if you write to EASession outputStream, but EASession cannot write to the printer within about 5 seconds,
+// then Apple shuts down the MFi connection. So, to get around this problem, the SDK performs this status check
+// between each page.
+
+#define STATUS_RESPONSE_TIMEOUT_DEFAULT 60.0 // max # seconds we wait for a response from printer, by default
+@property (nonatomic, assign) CFTimeInterval statusResponseTimeout;
+// *************************************************************************************
+
+
+// *************************************************************************************
+// closeBluetoothChannelFlushMode:
+//
+// This property will affect only the "closeChannel" API (used by all printing APIs) for the MFi printers only.
+// It is provided JUST IN CASE you run into a problem where Apple disconnects the Bluetooth device, or if all the data
+// seems to have been sent correctly, but the printer doesn't print anything and needs to be power-cycled.
+// If the Bluetooth channel (EASession) is closed before Apple sends all of the data to the printer, one of the two
+// problems mentioned above might occur.
+//
+// 1. kCloseBluetoothChannelFlushMode_UsePrinterDefault (DEFAULT)
+// Each printer model will initialize this to the setting that works best for that model.
+// Choose one of the other settings to override the SDK's default value.
+//
+// 2. kCloseBluetoothChannelFlushMode_None
+// The channel is closed immediately.
+// Because we added the "Status Check" at the END of each page, as determined by kSendDataMode_FormFeedAtEnd,
+// this now seems to work correctly in most cases for RASTER MODE data (PDF, IMAGE, and Raster Mode PRN).
+// This is the default setting for PJ763MFi and RJ/TD Series models.
+//
+// 3. kCloseBluetoothChannelFlushMode_UseStatusRequest
+// Send a status request and wait for the response before closing the channel.
+// This was the best solution, until we added the status check at the end of each page, for each MFi model.
+// This assured that all data was sent before closing the channel, otherwise we would not receive the status response.
+// But, now it is redundant (with Image and PDF printing).
+//
+// IMPORTANT: When sending PRN data (ESC/P, ZPL, CPCL, etc) over MFi Bluetooth, you MUST set this UseStatusRequest option!
+// Otherwise, it is highly likely the channel stream will be shut down before all the data has been sent to the printer.
+// This will result in failure to print the final page, and likely Apple will forcefully disconnect the MFi device.
+//
+// 4. kCloseBluetoothChannelFlushMode_UseFixedDelay
+// This was the first solution before we used the status option. But, the delay needed to be quite large (10 sec) to
+// be reliable. However, this adds this much delay every time the channel is closed.
+//
+// While testing this with a 10 page ESC/P PRN file, because we cannot detect each page break in this case to send the status
+// check during printing, we found that Apple will disconnect the printer when we use the "None" option. So, we provide
+// these other options just in case you run into a problem. In most cases, changing the default will NOT be necessary.
+
+typedef enum
+{
+ kCloseBluetoothChannelFlushMode_UsePrinterDefault=0,
+ kCloseBluetoothChannelFlushMode_None,
+ kCloseBluetoothChannelFlushMode_UseStatusRequest,
+ kCloseBluetoothChannelFlushMode_UseFixedDelay,
+} CLOSE_BLUETOOTHCHANNEL_FLUSH_MODE;
+@property (nonatomic, assign) CLOSE_BLUETOOTHCHANNEL_FLUSH_MODE closeBluetoothChannelFlushMode;
+// *************************************************************************************
+
+
+//******** MAIN API FUNCTIONS ********
+
+// *** BRPtouchSDK function WRAPPERS ***
+// NOTE: These methods are now fully implemented in the BMS SDK. They are no longer wrappers.
+
+// wrappers for sendFile and sendFileEx
+- (int) sendFile: (NSString *)filePath
+ channelType: (CHANNELTYPE)channelType
+ channelString:(NSString *)channelString // IPAddress or BTDeviceName
+ timeout:(int)nTimeout;
+
+- (int) sendFileEx: (NSString *)filePath
+ channelType: (CHANNELTYPE)channelType
+ channelString:(NSString *)channelString // IPAddress or BTDeviceName
+ timeout:(int)nTimeout;
+
+// wrappers for sendData and sendDataEx.
+- (int) sendData:(NSData *)printData
+ channelType:(CHANNELTYPE)channelType
+ channelString:(NSString *)channelString // IPAddress or BTDeviceName
+ timeout:(int)nTimeout;
+
+- (int) sendDataEx:(NSData *)printData
+ channelType:(CHANNELTYPE)channelType
+ channelString:(NSString *)channelString // IPAddress or BTDeviceName
+ timeout:(int)nTimeout;
+
+
+// "wrappers" for isPrinterReady and getPTStatus.
+// * isPrinterReady is useful to check for connectivity before attempting to print.
+// * getPTStatus allows to you determine things like the actual connected model, paper inserted, cover open, etc.
+// Refer to the BRPtouchSDK documentation for more details about the format and meaning of the status response.
+
+// TAG: REMOVE_BRPTOUCH_SDK
+// When using the "RemoveBRPtouchSDK" framework, isPrinterReady and getPTStatus are NOT supported
+// for the WIFI channel, because WIFI channel requires using the BRPtouchSDK API.
+// However, for the Bluetooth channel, these functions are implemented internally to the BMS SDK, so you may still
+// use these two APIs.
+
+- (BOOL)isPrinterReady:(PRINTERMODEL)model
+ channelType:(CHANNELTYPE)channelType
+ channelString:(NSString *)channelString; // IPAddress or BTDeviceName
+
+#ifdef REMOVE_BRPTOUCH_SDK
+typedef struct _PTSTATUSINFO {
+ Byte byHead; // Head mark
+ Byte bySize; // Size
+ Byte byBrotherCode; // Brother code
+ Byte bySeriesCode; // Serial code
+ Byte byModelCode; // Model code
+ Byte byNationCode; // Nation code
+ Byte byFiller; // information about cover
+ Byte byFiller2; // Not used
+ Byte byErrorInf; // Error information 1
+ Byte byErrorInf2; // Error information 2
+ Byte byMediaWidth; // Media width
+ Byte byMediaType; // Media type
+ Byte byColorNum; // The number of colors
+ Byte byFont; // Font
+ Byte byJapanesFont; // Japanese font
+ Byte byMode; // Mode
+ Byte byDensity; // Density
+ Byte byMediaLength; // Media Length
+ Byte byStatusType; // Status Type
+ Byte byPhaseType; // Phase type
+ Byte byPhaseNoHi; // Upper bytes of phase number
+ Byte byPhaseNoLow; // Lower bytes of phase number
+ Byte byNoticeNo; // Notice number
+ Byte byExtByteNum; // Total bytes of extended part
+ Byte byLabelColor; // Color of label
+ Byte byFontColor; // Color of font
+ Byte byHardWareSetting[4]; // Settings of hardware
+ Byte byNoUse[2]; // Not Use
+} PTSTATUSINFO, *LPPTSTATUSINFO;
+#endif
+
+- (int) getPTStatus:(PTSTATUSINFO *)status
+ model:(PRINTERMODEL)model
+ channelType:(CHANNELTYPE)channelType
+ channelString:(NSString *)channelString; // IPAddress or BTDeviceName
+
+// note: wrappers for printImage and printPDFAtPath are NOT provided
+
+
+
+//******* BMS new functionality functions **********
+
+//***** Misc Utilities
+- (CGRect) getPrintableRectFromCurrentSettings;
+- (CGRect) getPaperRectFromCurrentSettings;
+
+//********************************************************************************
+// SIMPLE APIs
+//
+// These printing APIs will handle the whole job for you (including openChannel, sendDataToChannel, closeChannel).
+// See also the "Manual APIs", which give you more control of the printing process.
+
+//***** FILE Printing Functions (see also sendFile and sendFileEx above)
+// NOTE: new prototype in SDK 2.0
+- (int) sendFileWithProgressView:(NSURL *)filePathURL
+ channelType:(CHANNELTYPE)channelType
+ channelString:(NSString *)channelString // IPAddress or BTDeviceName
+ copies:(int)numCopies
+ writeTimeout:(NSTimeInterval)timeout
+ usingParentView:(UIViewController *)parentViewController;
+
+//***** PDF Printing Functions (see also Manual APIs below)
+
+// send PDF file without a ProgresView
+// This is a BLOCKING function only
+// NOTE: SDK 1.1.0 changed this prototype to add "copies" and "collate" parameters.
+// NOTE: The "collate" parameter value only matters when printing multiple copies of a multi-page PDF file.
+- (int) printPDFFilePathURL:(NSURL *)filePathURL
+ firstPage:(int)firstPage
+ lastPage:(int)lastPage
+ timeout:(CFTimeInterval)nTimeout
+ copies:(int)copies
+ collate:(BOOL)bCollate;
+
+// send PDF file with a MODAL ProgressView
+// NOTE: new prototype in SDK 2.0
+- (int) printPDFFileWithProgressView:(NSURL *)filePathURL
+ firstPage:(int)firstPage
+ lastPage:(int)lastPage
+ copies:(int)numCopies
+ collate:(BOOL)bCollate
+ writeTimeout:(NSTimeInterval)timeout
+ usingParentView:(UIViewController *)parentViewController;
+
+// Print an ARRAY of NSURLs that reference a PDF file.
+// All pages from EACH PDF file will be printed.
+// NOTE: The same printSettings will apply to EACH PDF file in the array.
+-(int) printPDFURLArray:(NSArray *)array
+ timeout:(CFTimeInterval)nTimeout
+ copies:(int)copies
+ collate:(BOOL)bCollate;
+
+
+//***** Image Printing Functions (see also Manual APIs below)
+// print Image with a MODAL ProgressView
+// NOTE: new prototype in SDK 2.0
+- (int) printCGImageRefWithProgressView:(CGImageRef)imageRef
+ copies:(int)numCopies
+ writeTimeout:(NSTimeInterval)timeout
+ usingParentView:(UIViewController *)parentViewController;
+
+
+
+// Print 1 or more copies of a single image, without a ProgressView.
+// NOTE: The printCGImageRef:blocking:timeout API has been REMOVED in SDK 2.0.0
+// The printCGImageRef:timeout:copies is now used instead.
+// WARNING: Do NOT use this API to send more than 1 image back-to-back.
+// Instead, see printImageURLArray or sendCGImageRefToChannel below.
+- (int) printCGImageRef:(CGImageRef)imageRef
+ timeout:(CFTimeInterval)nTimeout
+ copies:(int)copies;
+
+// Print an ARRAY of NSURLs that reference an IMAGE file, e.g. JPG, PNG, etc
+// NOTE: The same printSettings will apply to EACH image in the array.
+-(int) printImageURLArray:(NSArray *)array
+ timeout:(CFTimeInterval)nTimeout
+ copies:(int)copies;
+
+//********************************************************************************
+// Manual API Control of the Data Channel. These all work together!!
+//
+// NOTE: ALL "Manual API" prototypes have CHANGED in SDK 2.0!!
+// * Previous SDKs only used WIFI channel, so Manual APIs had "WIFI" in the name.
+// * Since SDK 2.0 now supports WIFI and Bluetooth (and also File), the APIs have all been RENAMED!!
+// * But, they are all very similar to the API names in older SDKs.
+//
+// How to use the Manual APIs:
+// 1. You MUST call openChannelWithTimeout (PDF or Image) or openChannelOfType (PRN) first
+// * For PDF/Image, the printSettings property of BMSPrinterDriver class is used to determine channelType/String
+// * For PRN, printSettings are N/A, so channelType/String need to be specified in the openChannelOfType parameters.
+// 2. Call one (or more) of the other APIs for sending print data to the current channel
+// 3. Call closeChannel
+//
+// Advantages to using the Manual APIs compared to the simpler APIs:
+// 1. Sending data this way allows you to send data in bands and display your own progress indicator.
+// 2. You can use different timeouts for openChannel and sending the data. This allows timing out more quickly if
+// (for example) there is a WIFI connection issue (i.e. not connected to the printer, wrong IPAddress, etc.)
+//
+// *** WARNING: PJ7 models will very likely require a LARGER TIMEOUT for SENDING the print data compared to other models,
+// especially when printing MULTIPLE PAGE jobs. PJ7 will STOP accepting data during printing (i.e. when paper is moving).
+// If the print head overheats during printing, the printer will stop printing until the head cools down, which lengthens
+// the amount of time needed for the timeout.
+// * We recommend setting AT LEAST 60 seconds for the SEND timeout when using PJ7 models, unless you know you will only
+// be printing single page jobs or jobs without a significant page coverage.
+// * We strongly recommend that you test a WORST CASE print job to assure that your SEND timeout setting is large enough.
+
+// Use this with PDF/Image. The printSettings property is used to get the channel info.
+- (int) openChannelWithTimeout:(CFTimeInterval)nTimeout;
+
+// Use this with PRN, since printSettings are N/A.
+- (int) openChannelOfType:(CHANNELTYPE)channelType
+ channelString:(NSString *)channelString // IPAddress or BTDeviceName or FilePath (Print to File)
+ timeout:(CFTimeInterval)nTimeout;
+
+// Data Generation APIs for Image and PDF, so you can retrieve the print data to send in any way that you prefer.
+- (int) generatePrintData:(NSMutableData *)printData
+ fromCGImageRef:(CGImageRef)imageRef;
+
+- (int) generatePrintData:(NSMutableData *)printData
+ fromPDFPageRef:(CGPDFPageRef) pdfPageRef;
+
+// NOTE: ALL other "Manual APIs" below use the CHANNELTYPE specified in printSettings or openChannelOfType.
+
+
+// This must be called when finished sending data to the channel opened by openChannelWithTimeout or
+// openChannelOfType
+// TODO: Consider returning "int" code instead of "void". May need to propagate errors that may occur when closing
+// bluetooth channel back to ISV.
+// But, these errors typically will occur only when kCloseBluetoothChannelFlushMode_UseStatusRequest is specified,
+// and this is not currently the default setting for any of the MFi models. So, "void" is OK for now.
+- (void) closeChannel;
+
+// This is the best API to use if you want to make your own progress indicator.
+- (int) sendDataToChannel:(const uint8_t *)data
+ length:(int)length
+ sendDataMode:(SENDDATAMODE)sendDataMode
+ timeout:(CFTimeInterval)nTimeout
+ errorCode:(int *)pErrorCode;
+
+// similar to sendDataToChannel, but easier to use since you don't have to manage the buffer.
+// However, it is not as useful if you wish to make your own progress indicator.
+// NOTE: The data will actually be sent in 16K bands, and the timeout parameter will apply to each band separately.
+- (int) sendNSDataToChannel:(NSData *)data
+ sendDataMode:(SENDDATAMODE)sendDataMode
+ timeout:(CFTimeInterval)nTimeout;
+
+
+// simple manual API to send a CGImageRef to already open channel. Not useful for progress indicator.
+// But, you can use this to print more than 1 image back-to-back.
+- (int) sendCGImageRefToChannel:(CGImageRef)imageRef
+ timeout:(CFTimeInterval)nTimeout
+ copies:(int)copies;
+
+// simple manual API to send a PDF file URL to already open channel. Not useful for progress indicator.
+// But, you can use this to print more than 1 PDF file back-to-back.
+- (int) sendPDFFilePathURLToChannel:(NSURL *)filePathURL
+ firstPage:(int)firstPage
+ lastPage:(int)lastPage
+ timeout:(CFTimeInterval)nTimeout
+ copies:(int)copies
+ collate:(BOOL)bCollate;
+
+// simple manual API to send a PRN file URL to already open channel. Not useful for progress indicator.
+// But, you can use this to print more than 1 PRN file back-to-back.
+- (int) sendPRNFilePathURLToChannel:(NSURL *)filePathURL
+ timeout:(CFTimeInterval)nTimeout;
+
+// Used with Manual APIs to handle possible "Cancel" button on a Custom Progress ViewController, if desired.
+// Sends data to printer to clear out a partial page and eject the paper.
+// NOTE: Only use this with PDF and IMAGE printing. It is N/A when sending PRN data.
+- (int) sendCancelPrintingDataToChannel;
+
+
+// Primarily used for RJ4 MCR reader applications!!
+- (int) readDataFromChannel:(uint8_t *)buffer
+ maxLength:(int)maxLength
+ errorCode:(int *)pErrorCode;
+
+
+// End of the Manual APIs
+//********************************************************************************
+
+@end
+
+/////////////////////////////////////////////////////////////////////////////
+// This defines the DataControllerProtocol that MUST be used for developing
+// new printer drivers for a printer model. The DataControllers are used to
+// generate model-specific print data based on the current printSettings.
+@protocol DataControllerProtocol
+// everything is required!
+@required
+
+// Properties
+@property (nonatomic, assign) BOOL isFirstPage;
+@property (nonatomic, assign) BOOL isLastPage;
+@property (nonatomic, retain) PrintSettings *printSettings;
+
+// Methods
+- (CGRect) getPaperRectFromCurrentSettings;
+- (CGRect) getPrintableRectFromCurrentSettings;
+- (BOOL) generatePrintData: (NSMutableData *)printData fromCGContextRef: (CGContextRef) context;
+- (BOOL) generateCancelPrintingData:(NSMutableData *)printData;
+@end
+/////////////////////////////////////////////////////////////////////////////
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BMSPrinterKit.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BMSPrinterKit.h
new file mode 100755
index 0000000..26d89ae
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BMSPrinterKit.h
@@ -0,0 +1,60 @@
+//
+// BMSPrinterKit.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/6/12.
+// Copyright (c) 2012 Brother Mobile Solutions. All rights reserved.
+//
+
+
+#ifndef REMOVE_BRPTOUCH_SDK
+#import "BRPtouchPrinterKit.h"
+#endif
+
+#import "BMSPrinterDriver.h"
+
+#import "PrintSettings.h"
+#import "GenericPocketJetPrintSettings.h"
+#import "PJ673PrintSettings.h"
+#import "PJ763MFiPrintSettings.h"
+#import "PJ773PrintSettings.h"
+#import "GenericMobileLabelModelPrintSettings.h"
+#import "RJ4030AiPrintSettings.h"
+#import "RJ4040PrintSettings.h"
+#import "RJ4230BPrintSettings.h"
+#import "RJ4250WBPrintSettings.h"
+#import "RJ3050PrintSettings.h"
+#import "RJ3050AiPrintSettings.h"
+#import "RJ3150PrintSettings.h"
+#import "RJ3150AiPrintSettings.h"
+#import "TD2120NPrintSettings.h"
+#import "TD2130NPrintSettings.h"
+#import "RJ2050PrintSettings.h"
+#import "RJ2140PrintSettings.h"
+#import "RJ2150PrintSettings.h"
+#import "TD4550DNWBPrintSettings.h"
+
+#import "PrintSettingsViewController.h"
+#import "GenericPocketJetPrintSettingsViewController.h"
+#import "PJ673PrintSettingsViewController.h"
+#import "PJ763MFiPrintSettingsViewController.h"
+#import "PJ773PrintSettingsViewController.h"
+#import "GenericMobileLabelModelPrintSettingsViewController.h"
+#import "RJ4030AiPrintSettingsViewController.h"
+#import "RJ4040PrintSettingsViewController.h"
+#import "RJ4230BPrintSettingsViewController.h"
+#import "RJ4250WBPrintSettingsViewController.h"
+#import "RJ3050PrintSettingsViewController.h"
+#import "RJ3050AiPrintSettingsViewController.h"
+#import "RJ3150PrintSettingsViewController.h"
+#import "RJ3150AiPrintSettingsViewController.h"
+#import "TD2120NPrintSettingsViewController.h"
+#import "TD2130NPrintSettingsViewController.h"
+#import "RJ2050PrintSettingsViewController.h"
+#import "RJ2140PrintSettingsViewController.h"
+#import "RJ2150PrintSettingsViewController.h"
+#import "TD4550DNWBPrintSettingsViewController.h"
+
+@interface BMSPrinterKit : NSObject
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRCustomPaperInfoCommand.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRCustomPaperInfoCommand.h
new file mode 100644
index 0000000..1f61e08
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRCustomPaperInfoCommand.h
@@ -0,0 +1,107 @@
+//
+// BRCustomPaperInfoCommand.h
+// BRPtouchPrinterKit
+//
+// Copyright (c) 2018 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+@interface BRCustomPaperInfoCommand : NSObject
+
+typedef enum {
+ Inch = 1,
+ Mm = 2
+}UnitOfLengthParameter;
+
+typedef enum {
+ Roll = 1,
+ DieCut = 2,
+ MarkRoll = 3
+}PaperKindParameter;
+
+typedef enum {
+ InternalError = -1,
+ NoErrorParameters = 0,
+ // Basic
+ TapeWidth = 1,
+ TapeLength = 2,
+ RightMargin = 3,
+ LeftMargin = 4,
+ TopMargin = 5,
+ BottomMargin = 6,
+ LabelPitch = 7,
+ MarkPosition = 8,
+ MarkHeight = 9,
+ DisplayName = 10,
+}ErrorParameterName;
+
+typedef enum {
+ NoError = 0,
+ ExceptionError = 1,
+ OverTheUpperLimit = 2,
+ BelowTheLowerLimit = 3,
+ FailToCreateCommand = 4,
+ FailToReadPTDFile = 5,
+}ErrorParameterDetail;
+
+
+// Basic Settings (readonly)
+@property(nonatomic, strong, readonly) NSString *printerName_;
+@property(readonly) float tapeWidth_;
+@property(readonly) float tapeLength_;
+@property(readonly) float rightMargin_;
+@property(readonly) float leftMagin_;
+@property(readonly) float topMargin_;
+@property(readonly) float bottomMargin_;
+@property(readonly) float labelPitch_;
+@property(readonly) float markPosition_;
+@property(readonly) float markHeight_;
+@property(readonly) UnitOfLengthParameter unitOfLengthParameter_;
+@property(readonly) PaperKindParameter paperKindParameter_;
+
+// Advance Settings
+@property(nonatomic, strong) NSString *displayName;
+@property(readwrite) int energyRank;
+@property(readwrite) float dieStartRevPlus;
+@property(readwrite) float dieStartFwdPlus;
+@property(readwrite) float afterFeedPlus;
+@property(readwrite) float mediaSensorSensitivity;
+@property(readwrite) float mediaSensorIntensity;
+
+- (id) initWithPrinterNameForRoll: (NSString *) printerName
+ tapeWidth: (float) tapeWidth
+ rightMargin: (float) rightMargin
+ leftMagin: (float) leftMagin
+ topMargin: (float) topMargin
+ unitOfLength: (UnitOfLengthParameter) unitOfLengthParameter;
+
+- (id) initWithPrinterNameForDieCut: (NSString *) printerName
+ tapeWidth: (float) tapeWidth
+ tapeLength: (float) tapeLength
+ rightMargin: (float) rightMargin
+ leftMagin: (float) leftMagin
+ topMargin: (float) topMargin
+ bottomMargin: (float) bottomMargin
+ labelPitch: (float) labelPitch
+ unitOfLength: (UnitOfLengthParameter) unitOfLengthParameter;
+
+- (id) initWithPrinterNameForMarkRoll: (NSString *) printerName
+ tapeWidth: (float) tapeWidth
+ tapeLength: (float) tapeLength
+ rightMargin: (float) rightMargin
+ leftMagin: (float) leftMagin
+ topMargin: (float) topMargin
+ bottomMargin: (float) bottomMargin
+ markPosition: (float) markPosition
+ markHeight: (float) markHeight
+ unitOfLength: (UnitOfLengthParameter) unitOfLengthParameter;
+
+- (NSData *) getCustomPaperInfoCommandData: (NSMutableArray **)errorArr;
+
+- (NSString *) valueOfErrorParameter:(ErrorParameterName)errorParameterName;
+- (NSString *) valueOfErrorParameterDetail:(ErrorParameterDetail)errorParameterDetail;
+
+@end
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMChannel.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMChannel.h
new file mode 100755
index 0000000..2af3eda
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMChannel.h
@@ -0,0 +1,33 @@
+//
+// BRLMPrinterAddress.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+#import "BRLMPrinterDefine.h"
+
+// Set the "serialNumber" that can be getting from EAAccessory.
+// Or set the "Bluetooth Address" that can be getting from your printer (*by self-printing and so on).
+// Please note that it is NOT the serial number of your Printer.
+typedef NSString BRLMExternalAccessorySerialNumber;
+
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMChannel : NSObject
+
+@property (nonatomic, readonly) BRLMChannelType channelType;
+@property (nonatomic, readonly) NSString *channelInfo;
+
+- (instancetype)initWithWifiIPAddress:(NSString *)ipAddress;
+- (instancetype)initWithBluetoothSerialNumber:(BRLMExternalAccessorySerialNumber *)serialNumber;
+- (instancetype)initWithBLELocalName:(NSString *)localName;
+
+- (instancetype)init __unavailable;
+- (instancetype)copy __unavailable;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMCustomPaperSize.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMCustomPaperSize.h
new file mode 100755
index 0000000..1622e67
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMCustomPaperSize.h
@@ -0,0 +1,69 @@
+//
+// BRLMCustomPaperSize.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+#import "BRLMPrintImageSettings.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+typedef NS_ENUM(NSInteger, BRLMCustomPaperSizeLengthUnit) {
+ BRLMCustomPaperSizeLengthUnitInch,
+ BRLMCustomPaperSizeLengthUnitMm,
+ // BRLMCustomPaperSizeLengthUnitDot,
+};
+
+typedef NS_ENUM(NSInteger, BRLMCustomPaperSizePaperKind) {
+ BRLMCustomPaperSizePaperKindRoll,
+ BRLMCustomPaperSizePaperKindDieCut,
+ BRLMCustomPaperSizePaperKindMarkRoll,
+ BRLMCustomPaperSizePaperKindByFile,
+};
+
+typedef struct
+{
+ CGFloat top;
+ CGFloat left;
+ CGFloat bottom;
+ CGFloat right;
+} BRLMCustomPaperSizeMargins;
+BRLMCustomPaperSizeMargins BRLMCustomPaperSizeMarginsMake(CGFloat top, CGFloat left, CGFloat bottom, CGFloat right);
+
+/// immutable
+@interface BRLMCustomPaperSize : NSObject
+
+- (instancetype) initRollWithTapeWidth:(CGFloat) tapeWidth
+ margins:(BRLMCustomPaperSizeMargins)margins // disable bottomMargin
+ unitOfLength:(BRLMCustomPaperSizeLengthUnit) unit;
+
+- (instancetype) initDieCutWithTapeWidth:(CGFloat) tapeWidth
+ tapeLength:(CGFloat) tapeLength
+ margins:(BRLMCustomPaperSizeMargins)margins
+ gapLength:(CGFloat) gapLength
+ unitOfLength:(BRLMCustomPaperSizeLengthUnit) unit;
+
+- (instancetype) initMarkRollWithTapeWidth:(CGFloat) tapeWidth
+ tapeLength:(CGFloat) tapeLength
+ margins:(BRLMCustomPaperSizeMargins)margins
+ markPosition:(CGFloat) markVerticalOffset
+ markHeight:(CGFloat) markLength
+ unitOfLength:(BRLMCustomPaperSizeLengthUnit) unit;
+
+- (instancetype) initWithFile:(NSURL*)filePath;
+
+@property (nonatomic, readonly) BRLMCustomPaperSizePaperKind paperKind;
+@property (nonatomic, nullable, readonly) NSURL *paperBinFilePath;
+@property (nonatomic, readonly) CGFloat tapeWidth;
+@property (nonatomic, readonly) CGFloat tapeLength;
+@property (nonatomic, readonly) BRLMCustomPaperSizeMargins margins;
+@property (nonatomic, readonly) CGFloat gapLength;
+@property (nonatomic, readonly) CGFloat markVerticalOffset;
+@property (nonatomic, readonly) CGFloat markLength;
+@property (nonatomic, readonly) BRLMCustomPaperSizeLengthUnit unit;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMError.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMError.h
new file mode 100644
index 0000000..7bbc920
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMError.h
@@ -0,0 +1,25 @@
+//
+// BRLMError.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMError : NSObject
+
+- (NSString *)description;
+@property(nonatomic, readonly, copy, nullable) NSString *errorRecoverySuggestion;
+
+@property(nonatomic, readonly, copy, nullable) NSDictionary *errorUserInfo;
+
+
+- (instancetype)init __unavailable;
+- (instancetype)copy __unavailable;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMGetStatusError.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMGetStatusError.h
new file mode 100644
index 0000000..83cc882
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMGetStatusError.h
@@ -0,0 +1,27 @@
+//
+// BRLMGetStatusError.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import "BRLMError.h"
+
+typedef NS_ENUM(NSInteger, BRLMGetStatusErrorCode) {
+ BRLMGetStatusErrorCodeNoError,
+ BRLMGetStatusErrorCodePrinterNotFound,
+ BRLMGetStatusErrorCodeTimeout,
+};
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMGetStatusError : BRLMError
+
+@property(nonatomic, readonly) BRLMGetStatusErrorCode code;
+
+- (instancetype)init __unavailable;
+- (instancetype)copy __unavailable;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMMWPrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMMWPrintSettings.h
new file mode 100755
index 0000000..ad7d24c
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMMWPrintSettings.h
@@ -0,0 +1,35 @@
+//
+// BRLMMWPrintSettings.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import "BRLMPrintSettingsProtocol.h"
+#import "BRLMPrintImageSettings.h"
+
+#import "BRLMCustomPaperSize.h"
+
+typedef float BRLMMWPrintLengthScale;
+
+
+typedef NS_ENUM(NSInteger, BRLMMWPrintSettingsPaperSize) {
+ BRLMMWPrintSettingsPaperSizeA6,
+ BRLMMWPrintSettingsPaperSizeA7,
+};
+
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMMWPrintSettings : NSObject
+
+
+@property (nonatomic, readonly) BRLMMWPrintSettingsPaperSize paperSize;
+
+// override
+- (nullable instancetype)initDefaultPrintSettingsWithPrinterModel:(BRLMPrinterModel)model;
+- (nullable instancetype)copyWithPrinterModel:(BRLMPrinterModel)model;
+@end
+
+
+NS_ASSUME_NONNULL_END
\ No newline at end of file
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMOpenChannelError.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMOpenChannelError.h
new file mode 100755
index 0000000..19b0f20
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMOpenChannelError.h
@@ -0,0 +1,27 @@
+//
+// BRLMOpenChannelError.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import "BRLMError.h"
+
+typedef NS_ENUM(NSInteger, BRLMOpenChannelErrorCode) {
+ BRLMOpenChannelErrorCodeNoError,
+ BRLMOpenChannelErrorCodeOpenStreamFailure,
+ BRLMOpenChannelErrorCodeTimeout,
+};
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMOpenChannelError : BRLMError
+
+@property(nonatomic, readonly) BRLMOpenChannelErrorCode code;
+
+- (instancetype)init __unavailable;
+- (instancetype)copy __unavailable;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMPJPrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMPJPrintSettings.h
new file mode 100755
index 0000000..29f66df
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMPJPrintSettings.h
@@ -0,0 +1,84 @@
+//
+// BRLMPJPrintSettings.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import "BRLMPrintSettingsProtocol.h"
+#import "BRLMPrintImageSettings.h"
+
+#import "BRLMPJPrintSettingsPaperSize.h"
+
+typedef float BRLMPrintSettingsLengthScale;
+
+
+typedef NS_ENUM(NSInteger, BRLMPJPrintSettingsPrintSpeed) {
+ BRLMPJPrintSettingsPrintSpeed2_5inchPerSec,
+ BRLMPJPrintSettingsPrintSpeed1_9inchPerSec,
+ BRLMPJPrintSettingsPrintSpeed1_6inchPerSec,
+ BRLMPJPrintSettingsPrintSpeed1_1inchPerSec,
+};
+
+typedef NS_ENUM(NSInteger, BRLMPJPrintSettingsDensity) {
+ BRLMPJPrintSettingsDensityWeakLevel5,
+ BRLMPJPrintSettingsDensityWeakLevel4,
+ BRLMPJPrintSettingsDensityWeakLevel3,
+ BRLMPJPrintSettingsDensityWeakLevel2,
+ BRLMPJPrintSettingsDensityWeakLevel1,
+ BRLMPJPrintSettingsDensityNeutral,
+ BRLMPJPrintSettingsDensityStrongLevel1,
+ BRLMPJPrintSettingsDensityStrongLevel2,
+ BRLMPJPrintSettingsDensityStrongLevel3,
+ BRLMPJPrintSettingsDensityStrongLevel4,
+ BRLMPJPrintSettingsDensityStrongLevel5,
+ BRLMPJPrintSettingsDensityUsePrinterSetting,
+};
+
+typedef NS_ENUM(NSInteger, BRLMPJPrintSettingsFeedMode) {
+ BRLMPJPrintSettingsFeedModeNoFeed,
+ BRLMPJPrintSettingsFeedModeFixedPage,
+ BRLMPJPrintSettingsFeedModeEndOfPage,
+ BRLMPJPrintSettingsFeedModeEndOfPageRetract,
+};
+
+typedef NS_ENUM(NSInteger, BRLMPJPrintSettingsPaperInsertionPosition) {
+ BRLMPJPrintSettingsPaperInsertionPositionLeft,
+ BRLMPJPrintSettingsPaperInsertionPositionCenter,
+ BRLMPJPrintSettingsPaperInsertionPositionRight,
+};
+
+typedef NS_ENUM(NSInteger, BRLMPJPrintSettingsPaperType) {
+ BRLMPJPrintSettingsPaperTypeRoll,
+ BRLMPJPrintSettingsPaperTypeCutSheet,
+};
+
+typedef NS_ENUM(NSInteger, BRLMPJPrintSettingsRollCase) {
+ BRLMPJPrintSettingsRollCaseNone,
+ BRLMPJPrintSettingsRollCasePARC001_NoAntiCurl,
+ BRLMPJPrintSettingsRollCasePARC001,
+};
+
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMPJPrintSettings : NSObject
+
+
+@property (nonatomic) BRLMPJPrintSettingsPaperSize* paperSize;
+@property (nonatomic) BRLMPJPrintSettingsPaperType paperType;
+@property (nonatomic) BRLMPJPrintSettingsPaperInsertionPosition paperInsertionPosition;
+@property (nonatomic) BRLMPJPrintSettingsFeedMode feedMode;
+@property (nonatomic) BRLMPJPrintSettingsDensity density;
+@property (nonatomic) BRLMPJPrintSettingsRollCase rollCase;
+@property (nonatomic) BRLMPJPrintSettingsPrintSpeed printSpeed;
+@property (nonatomic) BOOL usingCarbonCopyPaper;
+@property (nonatomic) BOOL printDashLine;
+
+// override
+- (nullable instancetype)initDefaultPrintSettingsWithPrinterModel:(BRLMPrinterModel)model;
+- (nullable instancetype)copyWithPrinterModel:(BRLMPrinterModel)model;
+@end
+
+
+NS_ASSUME_NONNULL_END
\ No newline at end of file
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMPJPrintSettingsCustomPaperSize.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMPJPrintSettingsCustomPaperSize.h
new file mode 100644
index 0000000..13114a5
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMPJPrintSettingsCustomPaperSize.h
@@ -0,0 +1,25 @@
+//
+// BRLMPJPrintSettingsCustomPaperSize.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMPJPrintSettingsCustomPaperSize : NSObject
+
+@property (nonatomic, readonly) NSUInteger widthDots;
+@property (nonatomic, readonly) NSUInteger lengthDots;
+@property (nonatomic, readonly) NSUInteger feedDots;
+
+- (instancetype)init __unavailable;
+- (instancetype)copy __unavailable;
+
+- (instancetype)initWithWidthDots:(NSUInteger)width lengthDots:(NSUInteger)length feedDots:(NSUInteger)feed;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMPJPrintSettingsPaperSize.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMPJPrintSettingsPaperSize.h
new file mode 100644
index 0000000..e391d08
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMPJPrintSettingsPaperSize.h
@@ -0,0 +1,35 @@
+//
+// BRLMPJPrintSettingsPaperSize.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+#import "BRLMPJPrintSettingsCustomPaperSize.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+typedef NS_ENUM(NSUInteger, BRLMPJPrintSettingsPaperSizeStandard) {
+ BRLMPJPrintSettingsPaperSizeStandardA4,
+ BRLMPJPrintSettingsPaperSizeStandardLegal,
+ BRLMPJPrintSettingsPaperSizeStandardLetter,
+ BRLMPJPrintSettingsPaperSizeStandardA5,
+ BRLMPJPrintSettingsPaperSizeStandardCustom, // read only
+};
+
+@interface BRLMPJPrintSettingsPaperSize : NSObject
+
+@property (nonatomic, readonly) BRLMPJPrintSettingsPaperSizeStandard paperSizeStandard;
+@property (nonatomic, readonly, nullable) BRLMPJPrintSettingsCustomPaperSize *customPaper;
+
+- (instancetype)init __unavailable;
+- (instancetype)copy __unavailable;
+
+- (instancetype)initWithPaperSizeStandard:(BRLMPJPrintSettingsPaperSizeStandard) paperSizeStandard;
+- (instancetype)initWithCustomPaper:(BRLMPJPrintSettingsCustomPaperSize *)customPaper;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMPTPrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMPTPrintSettings.h
new file mode 100755
index 0000000..efbccb9
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMPTPrintSettings.h
@@ -0,0 +1,53 @@
+//
+// BRLMPTPrintSettings.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import "BRLMPrintSettingsProtocol.h"
+#import "BRLMPrintImageSettings.h"
+
+ typedef NS_ENUM(NSInteger, BRLMPTPrintSettingsLabelSize) {
+ BRLMPTPrintSettingsLabelSizeWidth3_5mm,
+ BRLMPTPrintSettingsLabelSizeWidth6mm,
+ BRLMPTPrintSettingsLabelSizeWidth9mm,
+ BRLMPTPrintSettingsLabelSizeWidth12mm,
+ BRLMPTPrintSettingsLabelSizeWidth18mm,
+ BRLMPTPrintSettingsLabelSizeWidth24mm,
+ BRLMPTPrintSettingsLabelSizeWidth36mm,
+ BRLMPTPrintSettingsLabelSizeWidthHS_5_8mm,
+ BRLMPTPrintSettingsLabelSizeWidthHS_8_8mm,
+ BRLMPTPrintSettingsLabelSizeWidthHS_11_7mm,
+ BRLMPTPrintSettingsLabelSizeWidthHS_17_7mm,
+ BRLMPTPrintSettingsLabelSizeWidthHS_23_6mm,
+ BRLMPTPrintSettingsLabelSizeWidthFL_21x45mm,
+ };
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMPTPrintSettings : NSObject
+
+@property (nonatomic) BRLMPTPrintSettingsLabelSize labelSize;
+@property (nonatomic) BOOL cutmarkPrint;
+@property (nonatomic) BOOL autoCut;
+@property (nonatomic) BOOL halfCut;
+@property (nonatomic) BOOL chainPrint;
+@property (nonatomic) BOOL specialTapePrint;
+@property (nonatomic) BRLMPrintSettingsResolution resolution;
+/**
+Description : Specify the page number in “cut each # labels”
+Range(#) : 1 - 255
+Default : 1
+ */
+@property (nonatomic) UInt8 autoCutForEachPageCount;
+@property (nonatomic) BOOL forceVanishingMargin;
+
+
+// override
+- (nullable instancetype)initDefaultPrintSettingsWithPrinterModel:(BRLMPrinterModel)model;
+- (nullable instancetype)copyWithPrinterModel:(BRLMPrinterModel)model;
+@end
+
+
+NS_ASSUME_NONNULL_END
\ No newline at end of file
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMPrintError.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMPrintError.h
new file mode 100644
index 0000000..0be1854
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMPrintError.h
@@ -0,0 +1,52 @@
+//
+// BRLMPrintError.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import "BRLMError.h"
+
+typedef NS_ENUM(NSInteger, BRLMPrintErrorCode) {
+ BRLMPrintErrorCodeNoError,
+ BRLMPrintErrorCodePrintSettingsError,
+ BRLMPrintErrorCodeFilepathURLError,
+ BRLMPrintErrorCodePDFPageError,
+ BRLMPrintErrorCodePrintSettingsNotSupportError,
+ BRLMPrintErrorCodeDataBufferError,
+ BRLMPrintErrorCodePrinterModelError,
+ BRLMPrintErrorCodeCanceled,
+ BRLMPrintErrorCodeChannelTimeout,
+ BRLMPrintErrorCodeSetModelError,
+ BRLMPrintErrorCodeUnsupportedFile,
+ BRLMPrintErrorCodeSetMarginError,
+ BRLMPrintErrorCodeSetLabelSizeError,
+ BRLMPrintErrorCodeCustomPaperSizeError,
+ BRLMPrintErrorCodeSetLengthError,
+ BRLMPrintErrorCodeTubeSettingError,
+ BRLMPrintErrorCodeChannelErrorStreamStatusError,
+ BRLMPrintErrorCodeChannelErrorUnsupportedChannel,
+ BRLMPrintErrorCodePrinterStatusErrorPaperEmpty,
+ BRLMPrintErrorCodePrinterStatusErrorCoverOpen,
+ BRLMPrintErrorCodePrinterStatusErrorBusy,
+ BRLMPrintErrorCodePrinterStatusErrorPrinterTurnedOff,
+ BRLMPrintErrorCodePrinterStatusErrorBatteryWeak,
+ BRLMPrintErrorCodePrinterStatusErrorExpansionBufferFull,
+ BRLMPrintErrorCodePrinterStatusErrorCommunicationError,
+ BRLMPrintErrorCodePrinterStatusErrorPaperJam,
+ BRLMPrintErrorCodePrinterStatusErrorMediaCannotBeFed,
+ BRLMPrintErrorCodePrinterStatusErrorOverHeat,
+ BRLMPrintErrorCodePrinterStatusErrorHighVoltageAdapter,
+ BRLMPrintErrorCodePrinterStatusErrorUnknownError,
+ BRLMPrintErrorCodeUnknownError,
+};
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMPrintError : BRLMError
+
+@property(nonatomic, readonly) BRLMPrintErrorCode code;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMPrintImageSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMPrintImageSettings.h
new file mode 100644
index 0000000..8da4181
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMPrintImageSettings.h
@@ -0,0 +1,77 @@
+//
+// BRLMPrintImageSettings.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+#import "BRLMPrinterDefine.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+
+typedef NS_ENUM(NSInteger, BRLMPrintSettingsCompressMode) {
+ BRLMPrintSettingsCompressModeNone,
+ BRLMPrintSettingsCompressModeTiff,
+ BRLMPrintSettingsCompressModeMode9,
+};
+typedef NS_ENUM(NSInteger, BRLMPrintSettingsHalftone) {
+ BRLMPrintSettingsHalftoneThreshold,
+ BRLMPrintSettingsHalftoneErrorDiffusion,
+ BRLMPrintSettingsHalftonePatternDither,
+};
+typedef NS_ENUM(NSInteger, BRLMPrintSettingsHorizontalAlignment) {
+ BRLMPrintSettingsHorizontalAlignmentLeft,
+ BRLMPrintSettingsHorizontalAlignmentCenter,
+ BRLMPrintSettingsHorizontalAlignmentRight,
+};
+typedef NS_ENUM(NSInteger, BRLMPrintSettingsOrientation) {
+ BRLMPrintSettingsOrientationPortrait,
+ BRLMPrintSettingsOrientationLandscape,
+};
+typedef NS_ENUM(NSInteger, BRLMPrintSettingsPrintQuality) {
+ BRLMPrintSettingsPrintQualityBest,
+ BRLMPrintSettingsPrintQualityFast,
+};
+typedef NS_ENUM(NSInteger, BRLMPrintSettingsResolution) {
+ BRLMPrintSettingsResolutionLow,
+ BRLMPrintSettingsResolutionNormal,
+ BRLMPrintSettingsResolutionHigh,
+};
+typedef NS_ENUM(NSInteger, BRLMPrintSettingsScaleMode) {
+ BRLMPrintSettingsScaleModeActualSize,
+ BRLMPrintSettingsScaleModeFitPageAspect,
+ BRLMPrintSettingsScaleModeFitPaperAspect,
+ BRLMPrintSettingsScaleModeScaleValue,
+};
+typedef NS_ENUM(NSInteger, BRLMPrintSettingsVerticalAlignment) {
+ BRLMPrintSettingsVerticalAlignmentTop,
+ BRLMPrintSettingsVerticalAlignmentCenter,
+ BRLMPrintSettingsVerticalAlignmentBottom,
+};
+
+@protocol BRLMPrintImageSettings
+
+@property (nonatomic, readonly) BRLMPrinterModel printerModel;
+@property (nonatomic) BRLMPrintSettingsScaleMode scaleMode;
+@property (nonatomic) CGFloat scaleValue;
+@property (nonatomic) BRLMPrintSettingsOrientation printOrientation;
+@property (nonatomic) BRLMPrintSettingsHalftone halftone;
+@property (nonatomic) BRLMPrintSettingsHorizontalAlignment hAlignment;
+@property (nonatomic) BRLMPrintSettingsVerticalAlignment vAlignment;
+@property (nonatomic) BRLMPrintSettingsCompressMode compress;
+@property (nonatomic) UInt8 halftoneThreshold;
+@property (nonatomic) NSUInteger numCopies;
+@property (nonatomic) BOOL skipStatusCheck;
+@property (nonatomic) BRLMPrintSettingsPrintQuality printQuality;
+
+
++ (instancetype)new __unavailable;
+- (instancetype)init __unavailable;
+- (instancetype)copy __unavailable;
+
+
+@end
+
+NS_ASSUME_NONNULL_END
\ No newline at end of file
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMPrintSettingsProtocol.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMPrintSettingsProtocol.h
new file mode 100755
index 0000000..2fb4157
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMPrintSettingsProtocol.h
@@ -0,0 +1,25 @@
+//
+// BRLMPrintSettings.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+#import "BRLMPrinterDefine.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@protocol BRLMPrintSettingsProtocol
+
++ (instancetype)new __unavailable;
+- (instancetype)init __unavailable;
+- (instancetype)copy __unavailable;
+
+@required
+- (nullable instancetype)initDefaultPrintSettingsWithPrinterModel:(BRLMPrinterModel)model;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMPrinterClassifier.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMPrinterClassifier.h
new file mode 100644
index 0000000..fac6aba
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMPrinterClassifier.h
@@ -0,0 +1,31 @@
+//
+// BRLMPrinterClassifier.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+#import "BRLMPrinterDefine.h"
+
+typedef NS_ENUM(NSInteger, BRLMPrinterClassifierSeries) {
+ BRLMPrinterClassifierSeriesPJ,
+ BRLMPrinterClassifierSeriesRJ,
+ BRLMPrinterClassifierSeriesTD,
+ BRLMPrinterClassifierSeriesPT,
+ BRLMPrinterClassifierSeriesQL,
+ BRLMPrinterClassifierSeriesMW,
+ BRLMPrinterClassifierSeriesUnknown,
+};
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMPrinterClassifier : NSObject
+
++ (enum BRLMPrinterClassifierSeries)classifyPrinterSerieseFromModel:(BRLMPrinterModel)model;
++ (enum BRLMPrinterModel)transferEnumFromString:(NSString*)modelName;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMPrinterDefine.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMPrinterDefine.h
new file mode 100755
index 0000000..bee784e
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMPrinterDefine.h
@@ -0,0 +1,59 @@
+//
+// BRLMPrinterDefine.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+
+
+typedef NS_ENUM(NSInteger, BRLMChannelType) {
+ BRLMChannelTypeBluetoothMFi,
+ BRLMChannelTypeWiFi,
+ BRLMChannelTypeBluetoothLowEnergy,
+};
+
+typedef NS_ENUM(NSInteger, BRLMPrinterModel) {
+ BRLMPrinterModelPJ_673,
+ BRLMPrinterModelPJ_763MFi,
+ BRLMPrinterModelPJ_773,
+ BRLMPrinterModelMW_145MFi,
+ BRLMPrinterModelMW_260MFi,
+ BRLMPrinterModelMW_170,
+ BRLMPrinterModelMW_270,
+ BRLMPrinterModelRJ_4030Ai,
+ BRLMPrinterModelRJ_4040,
+ BRLMPrinterModelRJ_3050,
+ BRLMPrinterModelRJ_3150,
+ BRLMPrinterModelRJ_3050Ai,
+ BRLMPrinterModelRJ_3150Ai,
+ BRLMPrinterModelRJ_2050,
+ BRLMPrinterModelRJ_2140,
+ BRLMPrinterModelRJ_2150,
+ BRLMPrinterModelRJ_4230B,
+ BRLMPrinterModelRJ_4250WB,
+ BRLMPrinterModelTD_2120N,
+ BRLMPrinterModelTD_2130N,
+ BRLMPrinterModelTD_4100N,
+ BRLMPrinterModelTD_4420DN,
+ BRLMPrinterModelTD_4520DN,
+ BRLMPrinterModelTD_4550DNWB,
+ BRLMPrinterModelQL_710W,
+ BRLMPrinterModelQL_720NW,
+ BRLMPrinterModelQL_810W,
+ BRLMPrinterModelQL_820NWB,
+ BRLMPrinterModelQL_1110NWB,
+ BRLMPrinterModelQL_1115NWB,
+ BRLMPrinterModelPT_E550W,
+ BRLMPrinterModelPT_P750W,
+ BRLMPrinterModelPT_D800W,
+ BRLMPrinterModelPT_E800W,
+ BRLMPrinterModelPT_E850TKW,
+ BRLMPrinterModelPT_P900W,
+ BRLMPrinterModelPT_P950NW,
+ BRLMPrinterModelPT_P300BT,
+ BRLMPrinterModelPT_P710BT,
+ BRLMPrinterModelPT_P715eBT,
+ BRLMPrinterModelPT_P910BT,
+ BRLMPrinterModelUnknown,
+};
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMPrinterDriver.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMPrinterDriver.h
new file mode 100644
index 0000000..bbb0ef8
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMPrinterDriver.h
@@ -0,0 +1,54 @@
+//
+// BRLMPrinterDriver.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+#import "BRLMPrinterDefine.h"
+#import "BRLMPrintError.h"
+#import "BRLMPrintSettingsProtocol.h"
+#import "BRLMPrinterStatus.h"
+#import "BRLMGetStatusError.h"
+
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMGetPrinterStatusResult : NSObject
+@property (nonatomic, readonly) BRLMGetStatusError *error;
+@property (nonatomic, readonly, nullable) BRLMPrinterStatus *status;
+- (instancetype)init __unavailable;
+- (instancetype)copy __unavailable;
+@end
+
+@interface BRLMPrinterDriver : NSObject
+
+- (instancetype)init __attribute__((unavailable("Use [BRLMPrinterDriverGenerator openChannel:] instead")));
+- (instancetype)copy __attribute__((unavailable("Use [BRLMPrinterDriverGenerator openChannel:] instead")));
+
+- (BRLMPrintError *)printImageWithURL:(NSURL *)url settings:(id)settings;
+- (BRLMPrintError *)printImageWithURLs:(NSArray *)urls settings:(id)settings;
+- (BRLMPrintError *)printImageWithImage:(CGImageRef)imageRef settings:(id)settings;
+
+- (BRLMPrintError *)printPDFWithURL:(NSURL *)url settings:(id)settings;
+- (BRLMPrintError *)printPDFWithURLs:(NSArray *)urls settings:(id)settings;
+- (BRLMPrintError *)printPDFWithURL:(NSURL *)url pages:(NSArray *)pages settings:(id)settings;
+
+- (BRLMPrintError *)sendPRNFileWithURL:(NSURL *)url;
+- (BRLMPrintError *)sendPRNFileWithURLs:(NSArray *)urls;
+
+- (void)cancelPrinting;
+
+- (BRLMPrintError *)sendRawData:(NSData *)data;
+
+- (BRLMGetPrinterStatusResult *)getPrinterStatus;
+
+
+- (void)closeChannel;
+
+@end
+
+
+NS_ASSUME_NONNULL_END
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMPrinterDriverGenerator.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMPrinterDriverGenerator.h
new file mode 100755
index 0000000..7e78a37
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMPrinterDriverGenerator.h
@@ -0,0 +1,34 @@
+//
+// BRLMPrinterDriverGenerator.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+#import "BRLMPrinterDriver.h"
+#import "BRLMChannel.h"
+#import "BRLMOpenChannelError.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMPrinterDriverGenerateResult : NSObject
+@property (nonatomic, readonly) BRLMOpenChannelError *error;
+@property (nonatomic, readonly, nullable) BRLMPrinterDriver *driver;
+- (instancetype)init __unavailable;
+- (instancetype)copy __unavailable;
+@end
+
+@interface BRLMPrinterDriverGenerator : NSObject
+
+@property(nonatomic, readonly, nullable) BRLMOpenChannelError *openChannelError;
+
+- (instancetype)init __unavailable;
+- (instancetype)copy __unavailable;
+
++ (BRLMPrinterDriverGenerateResult *)openChannel:(BRLMChannel *)channel;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMPrinterKit+BRPtouchPrinterKit+BMSPrinterKit.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMPrinterKit+BRPtouchPrinterKit+BMSPrinterKit.h
new file mode 100644
index 0000000..f9eedae
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMPrinterKit+BRPtouchPrinterKit+BMSPrinterKit.h
@@ -0,0 +1,18 @@
+//
+// BRLMPrinterKit+BMSPrinterKit.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+//! Project version number for BRLMPrinterKit.
+FOUNDATION_EXPORT double BRLMPrinterKitVersionNumber;
+
+//! Project version string for BRLMPrinterKit.
+FOUNDATION_EXPORT const unsigned char BRLMPrinterKitVersionString[];
+
+#import "BRLMPrinterKit.h"
+#import "BRPtouchPrinterKit.h"
+#import "BMSPrinterKit.h"
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMPrinterKit.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMPrinterKit.h
new file mode 100644
index 0000000..51db651
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMPrinterKit.h
@@ -0,0 +1,32 @@
+//
+// BRLMPrinterKit.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+#import "BRLMPrinterDefine.h"
+
+#import "BRLMPrinterDriver.h"
+#import "BRLMPrinterDriverGenerator.h"
+#import "BRLMError.h"
+#import "BRLMOpenChannelError.h"
+#import "BRLMChannel.h"
+#import "BRLMPrintError.h"
+#import "BRLMGetStatusError.h"
+
+#import "BRLMPrinterStatus.h"
+
+#import "BRLMPrintSettingsProtocol.h"
+#import "BRLMMWPrintSettings.h"
+#import "BRLMPJPrintSettings.h"
+#import "BRLMPTPrintSettings.h"
+#import "BRLMQLPrintSettings.h"
+#import "BRLMRJPrintSettings.h"
+#import "BRLMTDPrintSettings.h"
+#import "BRLMPrinterClassifier.h"
+
+#import "BRLMCustomPaperSize.h"
+#import "BRLMValidatePrintSettings.h"
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMPrinterStatus.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMPrinterStatus.h
new file mode 100755
index 0000000..e2993b2
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMPrinterStatus.h
@@ -0,0 +1,55 @@
+//
+// BRLMPrinterStatus.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+#import "BRLMPrinterDefine.h"
+
+typedef struct {
+ Byte byHead; // Head mark
+ Byte bySize; // Size
+ Byte byBrotherCode; // Brother code
+ Byte bySeriesCode; // Serial code
+ Byte byModelCode; // Model code
+ Byte byNationCode; // Nation code
+ Byte byFiller; // information about cover
+ Byte byFiller2; // Not used
+ Byte byErrorInf; // Error information 1
+ Byte byErrorInf2; // Error information 2
+ Byte byMediaWidth; // Media width
+ Byte byMediaType; // Media type
+ Byte byColorNum; // The number of colors
+ Byte byFont; // Font
+ Byte byJapanesFont; // Japanese font
+ Byte byMode; // Mode
+ Byte byDensity; // Density
+ Byte byMediaLength; // Media Length
+ Byte byStatusType; // Status Type
+ Byte byPhaseType; // Phase type
+ Byte byPhaseNoHi; // Upper bytes of phase number
+ Byte byPhaseNoLow; // Lower bytes of phase number
+ Byte byNoticeNo; // Notice number
+ Byte byExtByteNum; // Total bytes of extended part
+ Byte byLabelColor; // Color of label
+ Byte byFontColor; // Color of font
+ Byte byHardWareSetting[4]; // Settings of hardware
+ Byte byNoUse[2]; // Not Use
+} BRLMPrinterStatusRawDataStructure;
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMPrinterStatus : NSObject
+
+@property (nonatomic, readonly) BRLMPrinterStatusRawDataStructure ptStatus;
+@property (nonatomic, readonly) BRLMPrinterModel model;
+
+- (instancetype)init __unavailable;
+- (instancetype)copy __unavailable;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMQLPrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMQLPrintSettings.h
new file mode 100755
index 0000000..93c47ff
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMQLPrintSettings.h
@@ -0,0 +1,64 @@
+//
+// BRLMQLPrintSettings.h
+// BRLMPrinterKit
+//
+// Copyright © 2018 Brother Industries, Ltd. All rights reserved.
+//
+
+#import "BRLMPrintSettingsProtocol.h"
+#import "BRLMPrintImageSettings.h"
+
+ typedef NS_ENUM(NSInteger, BRLMQLPrintSettingsLabelSize) {
+ BRLMQLPrintSettingsLabelSizeDieCutW17H54,
+ BRLMQLPrintSettingsLabelSizeDieCutW17H87,
+ BRLMQLPrintSettingsLabelSizeDieCutW23H23,
+ BRLMQLPrintSettingsLabelSizeDieCutW29H42,
+ BRLMQLPrintSettingsLabelSizeDieCutW29H90,
+ BRLMQLPrintSettingsLabelSizeDieCutW38H90,
+ BRLMQLPrintSettingsLabelSizeDieCutW39H48,
+ BRLMQLPrintSettingsLabelSizeDieCutW52H29,
+ BRLMQLPrintSettingsLabelSizeDieCutW62H29,
+ BRLMQLPrintSettingsLabelSizeDieCutW62H100,
+ BRLMQLPrintSettingsLabelSizeDieCutW60H86,
+ BRLMQLPrintSettingsLabelSizeDieCutW54H29,
+ BRLMQLPrintSettingsLabelSizeDieCutW102H51,
+ BRLMQLPrintSettingsLabelSizeDieCutW102H152,
+ BRLMQLPrintSettingsLabelSizeDieCutW103H164,
+ BRLMQLPrintSettingsLabelSizeRollW12,
+ BRLMQLPrintSettingsLabelSizeRollW29,
+ BRLMQLPrintSettingsLabelSizeRollW38,
+ BRLMQLPrintSettingsLabelSizeRollW50,
+ BRLMQLPrintSettingsLabelSizeRollW54,
+ BRLMQLPrintSettingsLabelSizeRollW62,
+ BRLMQLPrintSettingsLabelSizeRollW62RB,
+ BRLMQLPrintSettingsLabelSizeRollW102,
+ BRLMQLPrintSettingsLabelSizeRollW103,
+ BRLMQLPrintSettingsLabelSizeDTRollW90,
+ BRLMQLPrintSettingsLabelSizeDTRollW102,
+ BRLMQLPrintSettingsLabelSizeDTRollW102H51,
+ BRLMQLPrintSettingsLabelSizeDTRollW102H152,
+ };
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMQLPrintSettings : NSObject
+
+
+@property (nonatomic) BRLMQLPrintSettingsLabelSize labelSize;
+/**
+Description : Specify the page number in “cut each # labels”
+Range(#) : 1 - 255
+Default : 1
+ */
+@property (nonatomic) UInt8 autoCutForEachPageCount;
+@property (nonatomic) BOOL autoCut;
+@property (nonatomic) BOOL cutAtEnd;
+@property (nonatomic) BRLMPrintSettingsResolution resolution;
+
+// override
+- (nullable instancetype)initDefaultPrintSettingsWithPrinterModel:(BRLMPrinterModel)model;
+- (nullable instancetype)copyWithPrinterModel:(BRLMPrinterModel)model;
+@end
+
+
+NS_ASSUME_NONNULL_END
\ No newline at end of file
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMRJPrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMRJPrintSettings.h
new file mode 100755
index 0000000..e2d55b3
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMRJPrintSettings.h
@@ -0,0 +1,48 @@
+//
+// BRLMRJPrintSettings.h
+// BRLMPrinterKit
+//
+// Copyright © 2018 Brother Industries, Ltd. All rights reserved.
+//
+
+#import "BRLMPrintSettingsProtocol.h"
+#import "BRLMPrintImageSettings.h"
+
+#import "BRLMCustomPaperSize.h"
+
+
+typedef float BRLMRJPrintLengthScale;
+
+typedef NS_ENUM(NSInteger, BRLMRJPrintSettingsDensity) {
+ BRLMRJPrintSettingsDensityWeakLevel5,
+ BRLMRJPrintSettingsDensityWeakLevel4,
+ BRLMRJPrintSettingsDensityWeakLevel3,
+ BRLMRJPrintSettingsDensityWeakLevel2,
+ BRLMRJPrintSettingsDensityWeakLevel1,
+ BRLMRJPrintSettingsDensityNeutral,
+ BRLMRJPrintSettingsDensityStrongLevel1,
+ BRLMRJPrintSettingsDensityStrongLevel2,
+ BRLMRJPrintSettingsDensityStrongLevel3,
+ BRLMRJPrintSettingsDensityStrongLevel4,
+ BRLMRJPrintSettingsDensityStrongLevel5,
+ BRLMRJPrintSettingsDensityUsePrinterSetting,
+};
+
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMRJPrintSettings : NSObject
+
+
+@property (nonatomic) BRLMCustomPaperSize* customPaperSize;
+@property (nonatomic) BRLMRJPrintSettingsDensity density;
+@property (nonatomic) BOOL rotate180degrees;
+@property (nonatomic) BOOL peelLabel;
+
+// override
+- (nullable instancetype)initDefaultPrintSettingsWithPrinterModel:(BRLMPrinterModel)model;
+- (nullable instancetype)copyWithPrinterModel:(BRLMPrinterModel)model;
+@end
+
+
+NS_ASSUME_NONNULL_END
\ No newline at end of file
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMTDPrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMTDPrintSettings.h
new file mode 100755
index 0000000..d2ff1a0
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMTDPrintSettings.h
@@ -0,0 +1,47 @@
+//
+// BRLMTDPrintSettings.h
+// BRLMPrinterKit
+//
+// Copyright © 2018 Brother Industries, Ltd. All rights reserved.
+//
+
+#import "BRLMPrintSettingsProtocol.h"
+#import "BRLMPrintImageSettings.h"
+
+#import "BRLMCustomPaperSize.h"
+
+
+typedef float BRLMTDPrintLengthScale;
+
+typedef NS_ENUM(NSInteger, BRLMTDPrintSettingsDensity) {
+ BRLMTDPrintSettingsDensityWeakLevel5,
+ BRLMTDPrintSettingsDensityWeakLevel4,
+ BRLMTDPrintSettingsDensityWeakLevel3,
+ BRLMTDPrintSettingsDensityWeakLevel2,
+ BRLMTDPrintSettingsDensityWeakLevel1,
+ BRLMTDPrintSettingsDensityNeutral,
+ BRLMTDPrintSettingsDensityStrongLevel1,
+ BRLMTDPrintSettingsDensityStrongLevel2,
+ BRLMTDPrintSettingsDensityStrongLevel3,
+ BRLMTDPrintSettingsDensityStrongLevel4,
+ BRLMTDPrintSettingsDensityStrongLevel5,
+ BRLMTDPrintSettingsDensityUsePrinterSetting,
+};
+
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMTDPrintSettings : NSObject
+
+
+@property (nonatomic) BRLMCustomPaperSize* customPaperSize;
+@property (nonatomic) BRLMTDPrintSettingsDensity density;
+@property (nonatomic) BOOL peelLabel;
+
+// override
+- (nullable instancetype)initDefaultPrintSettingsWithPrinterModel:(BRLMPrinterModel)model;
+- (nullable instancetype)copyWithPrinterModel:(BRLMPrinterModel)model;
+@end
+
+
+NS_ASSUME_NONNULL_END
\ No newline at end of file
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMValidatePrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMValidatePrintSettings.h
new file mode 100644
index 0000000..196d872
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRLMValidatePrintSettings.h
@@ -0,0 +1,42 @@
+//
+// BRLMValidatePrintSettings.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries. All rights reserved.
+//
+
+#import
+
+@protocol BRLMPrintSettingsProtocol;
+
+NS_ASSUME_NONNULL_BEGIN
+
+typedef NS_ENUM(NSInteger, BRLMValidatePrintSettingsIssueRank) {
+ BRLMValidatePrintSettingsIssueRankError,
+ BRLMValidatePrintSettingsIssueRankWarning,
+ BRLMValidatePrintSettingsIssueRankNotice,
+};
+@interface BRLMValidatePrintSettingsIssue : NSObject
+- (instancetype)init __unavailable;
+- (instancetype)copy __unavailable;
+@property(nonatomic, readonly) BRLMValidatePrintSettingsIssueRank rank;
+@property(nonatomic, readonly) NSString* message;
+@property(nonatomic, readonly) NSInteger codeID;
+- (NSString *)description;
+@end
+
+@interface BRLMValidatePrintSettingsReport : NSObject
+- (instancetype)init __unavailable;
+- (instancetype)copy __unavailable;
+@property(nonatomic, readonly) NSArray* issues;
+@property(nonatomic, readonly) NSUInteger errorCount;
+@property(nonatomic, readonly) NSUInteger warningCount;
+@property(nonatomic, readonly) NSUInteger noticeCount;
+- (NSString *)description;
+@end
+
+@interface BRLMValidatePrintSettings : NSObject
++ (BRLMValidatePrintSettingsReport*) validate:(id)printSettings;
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRPtouchBLEManager.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRPtouchBLEManager.h
new file mode 100644
index 0000000..f2421bc
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRPtouchBLEManager.h
@@ -0,0 +1,28 @@
+//
+// BRPtouchBLEManager.h
+// BRPtouchPrinterKit
+//
+// Copyright (c) 2017-2018 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+#import "BRPtouchDeviceInfo.h"
+#import
+
+@interface BRPtouchBLEManager : NSObject
+
++ (BRPtouchBLEManager *)sharedManager;
+
+/**
+ Start searching BLE printers
+ @return NO if BLE is not available, otherwise YES
+ */
+typedef void (^BRBLEManagerSearchCompletionHandler)(BRPtouchDeviceInfo *deviceInfo);
+- (BOOL)startSearchWithCompletionHandler:(BRBLEManagerSearchCompletionHandler)handler;
+
+/**
+ Stop searching BLE printers
+ */
+- (void)stopSearch;
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRPtouchBatteryInfo.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRPtouchBatteryInfo.h
new file mode 100644
index 0000000..3f9118f
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRPtouchBatteryInfo.h
@@ -0,0 +1,26 @@
+//
+// BRPtouchBatteryInfo.h
+// BRPtouchPrinterKit
+//
+// Copyright (c) 2018 Brother Industries, Ltd. All rights reserved.
+//
+#import
+
+typedef NS_ENUM(NSUInteger, BRPtouchBatteryInfoBatteryHealthStatus) {
+ BRPtouchBatteryInfoBatteryHealthStatusExcellent,
+ BRPtouchBatteryInfoBatteryHealthStatusGood,
+ BRPtouchBatteryInfoBatteryHealthStatusReplaceSoon,
+ BRPtouchBatteryInfoBatteryHealthStatusReplaceBattery,
+ BRPtouchBatteryInfoBatteryHealthStatusNotInstalled,
+};
+
+@interface BRPtouchBatteryInfo : NSObject
+@property (nonatomic, readonly) int8_t batteryChargeLevel; // 0~100[%] Not Installed: -1
+@property (nonatomic, readonly) int8_t batteryHealthLevel; // 0~100[%] Not Installed: -1
+@property (nonatomic, readonly) BRPtouchBatteryInfoBatteryHealthStatus batteryHealthStatus;
+
+- (instancetype)initWithChargeLevel:(int8_t)chargeLevel
+ healthLevel:(int8_t)healthLevel
+ healthStatusData:(int8_t)healthStatusData;
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRPtouchBluetoothManager.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRPtouchBluetoothManager.h
new file mode 100644
index 0000000..60b4dda
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRPtouchBluetoothManager.h
@@ -0,0 +1,59 @@
+//
+// BRPtouchBluetoothManager.h
+// BRSearchModule
+//
+// Copyright (c) 2015-2018 Brother Industries, Ltd. All rights reserved.
+//
+
+
+#import
+
+extern NSString *BRDeviceDidConnectNotification;
+extern NSString *BRDeviceDidDisconnectNotification;
+extern NSString *BRDeviceKey;
+
+
+@interface BRPtouchBluetoothManager : NSObject
+
+
+
+/*!
+ * @brief Returns the shared BRPtouchBluetoothManager object for the iOS-based device
+ * @discussion You should always use this method to obtain the bluetooth manager object and should not try to create instances directly.
+ * @return The shared bluetooth manager object.
+ */
++ (BRPtouchBluetoothManager *)sharedManager;
+
+
+
+/*!
+ * @brief The device objects corresponding to the list of currently connected brother devices
+ * @discussion This property contains an array of BRPtouchDeviceInfo objects. Each object corresponds to a brother device that is connected and available for your application to use. Because the contents of this property can change dynamically based on the connection and disconnection of devices, you should not cache the value of this property.
+ * @return The device objects corresponding to the list of currently connected brother devices.
+ */
+- (NSArray *)pairedDevices;
+
+
+
+/*!
+ * @brief Begins the dilivery of brother-device-related notification to the current application.
+ * @discussion You must call this method if you want to be notified when brother devices become connected or disconnected. The system does not send these notifications automatically, so calling this method lets the Brother SDK know that your application is interested in them. Typically, you would call this method only once early in your application, either before or after configuring your notification observers. When you no longer need to monitor these notifications, you should call the matching unregisterForBRDeviceNotifications method.
+ */
+- (void)registerForBRDeviceNotifications;
+
+
+
+/*!
+ * @brief Stop the delivery of brother-device-related notification to the current application
+ * @discussion Typically, you would call this method either when your application exits or when you no longer want to receive brother-device-related notifications. Calls to this method must be balanced with a preceding call to the registerForBRDeviceNotifications method.
+ */
+- (void)unregisterForBRDeviceNotifications;
+
+
+/**
+ * Use Bluetooth DeviceSearch.
+ **/
+- (void)brShowBluetoothAccessoryPickerWithNameFilter:(NSPredicate *)predicate;
+
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRPtouchDeviceInfo.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRPtouchDeviceInfo.h
new file mode 100644
index 0000000..a933663
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRPtouchDeviceInfo.h
@@ -0,0 +1,23 @@
+//
+// BRPtouchDevice.h
+// BRSearchModule
+//
+// Copyright (c) 2015-2018 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+@interface BRPtouchDeviceInfo : NSObject
+
+@property (copy,nonatomic)NSString* strIPAddress;
+@property (copy,nonatomic)NSString* strLocation;
+@property (copy,nonatomic)NSString* strModelName;
+@property (copy,nonatomic)NSString* strPrinterName;
+@property (copy,nonatomic)NSString* strSerialNumber;
+@property (copy,nonatomic)NSString* strNodeName;
+@property (copy,nonatomic)NSString* strMACAddress;
+@property (copy,nonatomic)NSString* strBLEAdvertiseLocalName;
+
+- (NSString *)description;
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRPtouchLabelInfoStatus.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRPtouchLabelInfoStatus.h
new file mode 100644
index 0000000..10fef39
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRPtouchLabelInfoStatus.h
@@ -0,0 +1,119 @@
+//
+// BRPtouchLabelInfo.h
+// BRPtouchPrinterKit
+//
+// Copyright (c) 2016-2018 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+typedef NS_ENUM(NSUInteger, LabelIdType) {
+
+ //QL
+ LabelIdTypeW17H54 = 0x01,
+ LabelIdTypeW17H87 = 0x02,
+ LabelIdTypeW23H23 = 0x03,
+ LabelIdTypeW29H42 = 0x04,
+ LabelIdTypeW29H90 = 0x05,
+ LabelIdTypeW38H90 = 0x06,
+ LabelIdTypeW39H48 = 0x07,
+ LabelIdTypeW52H29 = 0x08,
+ LabelIdTypeW62H29 = 0x09,
+ LabelIdTypeW62H100 = 0x0a,
+ LabelIdTypeW12 = 0x0b, //also used in PT
+ LabelIdTypeW29 = 0xc,
+ LabelIdTypeW38 = 0xd,
+ LabelIdTypeW50 = 0xe,
+ LabelIdTypeW54 = 0xf,
+ LabelIdTypeW62 = 0x10,
+ LabelIdTypeW60H86 = 0x11,
+
+ //PT
+ LabelIdTypeW3_5 = 0x12,
+ LabelIdTypeW6 = 0x13,
+ LabelIdTypeW9 = 0x14,
+ LabelIdTypeW18 = 0x15,
+ LabelIdTypeW24 = 0x16,
+ LabelIdTypeHS_W6 = 0x17,
+ LabelIdTypeHS_W9 = 0x18,
+ LabelIdTypeHS_W12 = 0x19,
+ LabelIdTypeHS_W18 = 0x1a,
+ LabelIdTypeHS_W24 = 0x1b,
+ LabelIdTypeW36 = 0x1c,
+
+ LabelIdTypeR6_5 = 0x1d,
+ LabelIdTypeR6_0 = 0x1f,
+ LabelIdTypeR5_0 = 0x20,
+ LabelIdTypeR4_0 = 0x21,
+ LabelIdTypeR3_5 = 0x22,
+ LabelIdTypeR3_0 = 0x23,
+ LabelIdTypeR2_5 = 0x24,
+
+ LabelIdTypeFLE_W21H45 = 0x25,
+
+ //QL-8対応
+ LabelIdTypeW62RB = 0x26,
+ LabelIdTypeW54H29 = 0x27,
+
+ //QL_1100
+ LabelIdTypeW102 = 0x28,
+ LabelIdTypeW102H51 = 0x29,
+ LabelIdTypeW102H152 = 0x30,
+ LabelIdTypeW103 = 0x31,
+ LabelIdTypeW103H164 = 0x32,
+ LabelIdTypeDT_W90 = 0x33,
+ LabelIdTypeDT_W102 = 0x34,
+ LabelIdTypeDT_W102H51 = 0x35,
+ LabelIdTypeDT_W102H152 = 0x36,
+
+ LabelIdTypeLABEL_MAX
+
+};
+
+typedef NS_ENUM(NSUInteger, ColorType) {
+ WHITE = 0x01,
+ OTHERS,
+ CLEAR,
+ RED,
+ BLUE,
+ YELLOW,
+ GREEN,
+ BLACK,
+ CLEAR_WHITE,
+ GOLD = 0x0A ,
+ GOLD_PREMIUM = 0x0B,
+ SILVER_PREMIUM = 0x0C,
+ OTHERS_PREMIUM = 0x0D,
+ OTHERS_MASKING = 0x0E,
+ SATIN_LIGHTBLUE = 0x0F,
+ SATIN_MINT = 0x10,
+ MATTE_WHITE = 0x20,
+ MATTE_CLEAR,
+ MATTE_SILVER,
+ SATIN_GOLD,
+ SATIN_SILVER = 0x24,
+ BLUE_WHITE = 0x30,
+ RED_WHITE = 0x31,
+ FLOURESCENT_ORANGE = 0x40,
+ FLOURESCENT_YELLOW = 0x41,
+ BERRY_PINK = 0x50,
+ LIGHT_GLAY,
+ LIME_GREEN = 0x52,
+ FABRIC_YELLOW = 0x60,
+ FABRIC_PINK = 0x61,
+ FABRIC_BLUE = 0x62,
+ TUBE_WHITE = 0x70,
+ SELF_WHITE = 0x80,
+ FLEXIBLE_WHITE = 0x90,
+ FLEXIBLE_YELLOW = 0x91,
+ CLEANING = 0xF0,
+ STENCIL = 0xF1,
+ UNSUPPORT = 0xFF,
+};
+
+@interface BRPtouchLabelInfoStatus : NSObject
+@property (nonatomic) LabelIdType labelID;
+@property (nonatomic) ColorType labelColor;
+@property (nonatomic) ColorType fontColor;
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRPtouchLabelParam.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRPtouchLabelParam.h
new file mode 100644
index 0000000..e15846d
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRPtouchLabelParam.h
@@ -0,0 +1,27 @@
+//
+// BRPtouchLabelParam.h
+// BRPtouchPrinterKit
+//
+// Copyright (c) 2016-2018 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+@interface BRPtouchLabelParam : NSObject
+@property (nonatomic) unsigned int paperID;
+@property (nonatomic, copy) NSString* paperName;
+@property (nonatomic) unsigned int paperSize;
+@property (nonatomic) unsigned int pinOffsetLeft;
+@property (nonatomic) unsigned int pinOffsetRight;
+@property (nonatomic) unsigned int physicalOffsetX;
+@property (nonatomic) unsigned int physicalOffsetY;
+@property (nonatomic) unsigned int paperWidth; //dot
+@property (nonatomic) float paperWidth_mm; //mm
+@property (nonatomic) unsigned int paperLength; //dot
+@property (nonatomic) float paperLength_mm; //mm
+@property (nonatomic) unsigned int imageAreaWidth; //dot
+@property (nonatomic) unsigned int imageAreaWidth_mm; //mm
+@property (nonatomic) unsigned int imageAreaLength; //dot
+@property (nonatomic) unsigned int imageAreaLength_mm; //mm
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRPtouchNetworkManager.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRPtouchNetworkManager.h
new file mode 100644
index 0000000..8625523
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRPtouchNetworkManager.h
@@ -0,0 +1,44 @@
+//
+// BRPtouchNetwork.h
+// BRPtouchPrinterKit
+//
+// Copyright (c) 2012-2018 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+#include "BRPtouchDeviceInfo.h"
+
+// Return value
+#define RET_FALSE 0
+#define RET_TRUE 1
+
+@protocol BRPtouchNetworkDelegate;
+
+@interface BRPtouchNetworkManager : NSObject
+
+
+@property(retain, nonatomic) NSMutableArray* registeredPrinterNames;
+@property(assign, nonatomic) BOOL isEnableIPv6Search;
+
+
+- (int)startSearch: (int)searchTime;
+- (NSArray*)getPrinterNetInfo;
+
+- (BOOL)setPrinterNames:(NSArray*)strPrinterNames;
+- (BOOL)setPrinterName:(NSString*)strPrinterName;
+
+- (id)initWithPrinterNames:(NSArray*)strPrinterNames;
+- (id)initWithPrinterName:(NSString*)strPrinterName;
+
+@property (nonatomic, assign) id delegate;
+
+@end
+
+@protocol BRPtouchNetworkDelegate
+
+- (void)didFinishSearch:(id)sender;
+@optional
+- (void)didFindDevice:(BRPtouchDeviceInfo *)deviceInfo;
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRPtouchPrintInfo.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRPtouchPrintInfo.h
new file mode 100644
index 0000000..e78d85b
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRPtouchPrintInfo.h
@@ -0,0 +1,136 @@
+//
+// BRPtouchPrintInfo.h
+// BRPtouchPrinterKit
+//
+// Copyright (c) 2012-2018 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+#define OPTION_AUTOCUT 0x00000001
+#define OPTION_CUTATEND 0x00000002
+
+#define PRINT_ORIGINAL 0x00
+#define PRINT_FIT 0x01 // Deprecated
+#define PRINT_SCALE 0x02
+#define PRINT_FIT_TO_PAGE 0x03
+#define PRINT_FIT_TO_PAPER 0x04
+
+#define ORI_LANDSCAPE 0x00
+#define ORI_PORTRATE 0x01
+
+// Image processing Setting
+#define HALFTONE_BINARY 0x00
+#define HALFTONE_DITHER 0x01
+#define HALFTONE_ERRDIF 0x02
+
+#define ALIGN_LEFT 0x00
+#define ALIGN_CENTER 0x01
+#define ALIGN_RIGHT 0x02
+
+#define ALIGN_TOP 0x00
+#define ALIGN_MIDDLE 0x01
+#define ALIGN_BOTTOM 0x02
+
+#define PAPERALIGN_LEFT 0x00
+#define PAPERALIGN_CENTER 0x01
+#define PAPERALIGN_RIGHT 0x02
+
+#define RET_ERR_PAPERNAME -1
+#define RET_ERR_OPTION -2
+#define RET_ERR_DENSITY -3
+#define RET_ERR_PRINTMODE -4
+#define RET_ERR_ORIENTATION -5
+#define RET_ERR_HALFTONE -6
+#define RET_ERR_HORIZONTAL -7
+#define RET_ERR_VERTICAL -8
+#define RET_ERR_PAPERALIGN -9
+#define RET_ERR_EXTFLAG -10
+
+
+// Cut Mode
+#define FLAG_M_AUTOCUT 0x40
+#define FLAG_M_MIRROR 0x80
+
+// 拡張モード設定フラグ
+#define FLAG_K_DRAFT 0x01
+#define FLAG_K_HALFCUT 0x04
+#define FLAG_K_NOCHAIN 0x08
+#define FLAG_K_SPTAPE 0x10
+#define FLAG_K_AFTERCUT 0x20
+#define FLAG_K_HGPRINT 0x40
+#define FLAG_K_COPY 0x80
+
+// 拡張モード設定フラグ(PJ)
+#define EXT_PJ673_ENCRYPT 0x01
+#define EXT_PJ673_CARBON 0x02
+#define EXT_PJ673_DASHPRINT 0x04
+#define EXT_PJ673_NFD 0x08
+#define EXT_PJ673_EOP 0x10
+#define EXT_PJ673_EPR 0x20
+#define EXT_PJ700_FP 0x40
+
+// 圧縮モードフラグ
+#define COMPRESS_ID 0x4D
+#define COMPRESS_DISABLED 0x00
+#define COMPRESS_PRESERVED 0x01
+#define COMPRESS_ENABLED 0x02
+
+#define PJROLLCASE_OFF 1 //Do not user printer case
+#define PJROLLCASE_ON 2 //Use printer case with anti-curling mechanism
+#define PJROLLCASE_WITH_ANTICURL 3 // Use printer case without anti-curling mechanism
+
+//用紙種類
+#define PJ_ROLL 0x01
+#define PJ_CUT_PAPER 0x02
+
+//Print Quality
+#define PRINTQUALITY_LOW_RESOLUTION 1 // 高速
+#define PRINTQUALITY_NORMAL 2 // ノーマル(高品質)
+#define PRINTQUALITY_DOUBLE_SPEED 3 // ノーマル(高速)
+#define PRINTQUALITY_HIGH_RESOLUTION 4 // 高品質
+#define PRINTQUALITY_HIGH_RESOLUTION_USING_HR_IMAGE 5 // 高品質(高解像度用画像を使用時)
+
+@interface BRPtouchPrintInfo : NSObject
+
+
+@property (copy,nonatomic)NSString* strPaperName;
+@property (assign,nonatomic)int nPrintMode;
+@property (assign,nonatomic)double scaleValue;
+@property (assign,nonatomic)int nDensity;
+@property (assign,nonatomic)int nOrientation;
+@property (assign,nonatomic)int nHalftone;
+@property (assign,nonatomic)int nHalftoneBinaryThreshold;
+@property (assign,nonatomic)int nHorizontalAlign;
+@property (assign,nonatomic)int nVerticalAlign;
+@property (assign,nonatomic)int nPaperAlign;
+@property (assign,nonatomic)int nExtFlag;
+@property (assign,nonatomic)int nAutoCutFlag;
+@property (assign,nonatomic)BOOL bEndcut;
+@property (assign,nonatomic)int nAutoCutCopies;
+@property (assign,nonatomic)BOOL bSpecialTape;
+@property (assign,nonatomic)BOOL bHalfCut;
+//@property (assign,nonatomic)int nNumberofCopies;
+@property (assign,nonatomic)int nTopMargin;
+@property (assign,nonatomic)int nLeftMargin;
+@property (assign,nonatomic)int nSpeed;
+@property (assign,nonatomic)BOOL bBidirection;
+@property (assign,nonatomic)int nCustomLength;
+@property (assign,nonatomic)int nCustomWidth;
+@property (assign,nonatomic)int nCustomFeed;
+@property (copy,nonatomic)NSString* strSaveFilePath;
+@property (assign,nonatomic)BOOL bOverWrite;
+@property (assign,nonatomic)int nRollPrinterCase;
+@property (assign,nonatomic)BOOL bRotate180;
+@property (assign,nonatomic)BOOL bPeel;
+@property (assign,nonatomic)BOOL bCutMark;
+@property (assign,nonatomic)int nLabelMargine;
+@property (assign,nonatomic)int nPJPaperKind;
+@property (assign,nonatomic)int nPrintQuality;
+@property (assign,nonatomic)BOOL bMode9;
+@property (assign,nonatomic)BOOL bRawMode;
+@property (assign,nonatomic)BOOL bBanishMargin;
+@property (assign,nonatomic)BOOL bUseLegacyHalftoneEngine;
+@property (assign,nonatomic)BOOL bUseCopyCommandInTemplatePrint;
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRPtouchPrinter.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRPtouchPrinter.h
new file mode 100644
index 0000000..27d72ab
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRPtouchPrinter.h
@@ -0,0 +1,272 @@
+//
+// BRPtouchPrinter.h
+// BRPtouchPrinterKit
+//
+// Copyright (c) 2012-2018 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+#import
+#import
+#import
+
+#include "BRPtouchPrintInfo.h"
+#include "BRPtouchPrinterData.h"
+#include "BRPtouchPrinterStatus.h"
+#include "BRPtouchLabelParam.h"
+#include "BRPtouchLabelInfoStatus.h"
+#import "BRPtouchBatteryInfo.h"
+#import "BRCustomPaperInfoCommand.h"
+#include "BRPtouchTemplateInfo.h"
+
+#define ERROR_NONE_ 0
+#define ERROR_TIMEOUT -3
+#define ERROR_BADPAPERRES -4
+#define ERROR_IMAGELARGE -6
+#define ERROR_CREATESTREAM -7
+#define ERROR_OPENSTREAM -8
+#define ERROR_FILENOTEXIST -9
+#define ERROR_PAGERANGEERROR -10
+#define ERROR_NOT_SAME_MODEL_ -11
+#define ERROR_BROTHER_PRINTER_NOT_FOUND_ -12
+#define ERROR_PAPER_EMPTY_ -13
+#define ERROR_BATTERY_EMPTY_ -14
+#define ERROR_COMMUNICATION_ERROR_ -15
+#define ERROR_OVERHEAT_ -16
+#define ERROR_PAPER_JAM_ -17
+#define ERROR_HIGH_VOLTAGE_ADAPTER_ -18
+#define ERROR_CHANGE_CASSETTE_ -19
+#define ERROR_FEED_OR_CASSETTE_EMPTY_ -20
+#define ERROR_SYSTEM_ERROR_ -21
+#define ERROR_NO_CASSETTE_ -22
+#define ERROR_WRONG_CASSENDTE_DIRECT_ -23
+#define ERROR_CREATE_SOCKET_FAILED_ -24
+#define ERROR_CONNECT_SOCKET_FAILED_ -25
+#define ERROR_GET_OUTPUT_STREAM_FAILED_ -26
+#define ERROR_GET_INPUT_STREAM_FAILED_ -27
+#define ERROR_CLOSE_SOCKET_FAILED_ -28
+#define ERROR_OUT_OF_MEMORY_ -29
+#define ERROR_SET_OVER_MARGIN_ -30
+#define ERROR_NO_SD_CARD_ -31
+#define ERROR_FILE_NOT_SUPPORTED_ -32
+#define ERROR_EVALUATION_TIMEUP_ -33
+#define ERROR_WRONG_CUSTOM_INFO_ -34
+#define ERROR_NO_ADDRESS_ -35
+#define ERROR_NOT_MATCH_ADDRESS_ -36
+#define ERROR_FILE_NOT_FOUND_ -37
+#define ERROR_TEMPLATE_FILE_NOT_MATCH_MODEL_ -38
+#define ERROR_TEMPLATE_NOT_TRANS_MODEL_ -39
+#define ERROR_COVER_OPEN_ -40
+#define ERROR_WRONG_LABEL_ -41
+#define ERROR_PORT_NOT_SUPPORTED_ -42
+#define ERROR_WRONG_TEMPLATE_KEY_ -43
+#define ERROR_BUSY_ -44
+#define ERROR_TEMPLATE_NOT_PRINT_MODEL_ -45
+#define ERROR_CANCEL_ -46
+#define ERROR_PRINTER_SETTING_NOT_SUPPORTED_ -47
+#define ERROR_INVALID_PARAMETER_ -48
+#define ERROR_INTERNAL_ERROR_ -49
+#define ERROR_TEMPLATE_NOT_CONTROL_MODEL_ -50
+#define ERROR_TEMPLATE_NOT_EXIST_ -51
+#define ERROR_BADENCRYPT_ -52 // This does not occur in iOS
+#define ERROR_BUFFER_FULL_ -53
+#define ERROR_TUBE_EMPTY_ -54
+#define ERROR_TUBE_RIBON_EMPTY_ -55
+#define ERROR_UPDATE_FRIM_NOT_SUPPORTED_ -56 // This does not occur in iOS
+#define ERROR_OS_VERSION_NOT_SUPPORTED_ -57 // This does not occur in iOS
+#define ERROR_MINIMUM_LENGTH_LIMIT_ -58
+#define ERROR_FAIL_TO_CONVERT_CSV_TO_BLF_ -59
+
+
+// Message value
+#define MESSAGE_START_COMMUNICATION_ 1
+#define MESSAGE_START_CONNECT_ 2
+#define MESSAGE_END_CONNECTED_ 3
+//#define MESSAGE_START_GET_OUTPUT_STREAM 4 // Not Available
+//#define MESSAGE_END_GET_OUTPUT_STREAM 5 // Not Available
+//#define MESSAGE_START_GET_INPUT_STREAM 6 // Not Available
+//#define MESSAGE_END_GET_INPUT_STREAM 7 // Not Available
+#define MESSAGE_START_SEND_STATUS_REQUEST_ 8
+#define MESSAGE_END_SEND_STATUS_REQUEST_ 9
+#define MESSAGE_START_READ_PRINTER_STATUS_ 10
+#define MESSAGE_END_READ_PRINTER_STATUS_ 11
+#define MESSAGE_START_CREATE_DATA_ 12
+#define MESSAGE_END_CREATE_DATA_ 13
+#define MESSAGE_START_SEND_DATA_ 14
+#define MESSAGE_END_SEND_DATA_ 15
+#define MESSAGE_START_SEND_TEMPLATE_ 16
+#define MESSAGE_END_SEND_TEMPLATE_ 17
+#define MESSAGE_START_SOCKET_CLOSE_ 18
+#define MESSAGE_END_SOCKET_CLOSE_ 19
+//#define MESSAGE_END_COMMUNICATION 20 // Not Available
+#define MESSAGE_PRINT_COMPLETE_ 21
+#define MESSAGE_PRINT_ERROR_ 22
+#define MESSAGE_PAPER_EMPTY_ 23
+#define MESSAGE_START_COOLING_ 24
+#define MESSAGE_END_COOLING_ 25
+//#define MESSAGE_PREPARATION 26 // Not Available
+#define MESSAGE_WAIT_PEEL_ 27
+#define MESSAGE_START_UPDATE_BLUETOOTH_SETTING_ 28
+#define MESSAGE_END_UPDATE_BLUETOOTH_SETTING_ 29
+#define MESSAGE_START_GET_BLUETOOTH_SETTING_ 30
+#define MESSAGE_END_GET_BLUETOOTH_SETTING_ 31
+#define MESSAGE_START_GET_TEMPLATE_LIST_ 32
+#define MESSAGE_END_GET_TEMPLATE_LIST_ 33
+#define MESSAGE_START_REMOVE_TEMPLATE_LIST_ 34
+#define MESSAGE_END_REMOVE_TEMPLATE_LIST_ 35
+#define MESSAGE_CANCEL_ 36
+//#define MESSAGE_START_TRANSFER_FIRM_ 39, //Not Available
+//#define MESSAGE_END_TRANSFER_FIRM_ 38, //Not Available
+#define MESSAGE_CHECK_PRINTER_STATUS_WHILE_CHANGE_STATUS_MODE_ON_ 39
+
+typedef NS_ENUM(NSUInteger, PrinterSettingItem) {
+ PSI_NET_BOOTMODE = 1,
+ PSI_NET_INTERFACE = 2,
+ PSI_NET_USED_IPV6 = 3,
+ PSI_NET_PRIORITY_IPV6 = 4,
+ PSI_NET_IPV4_BOOTMETHOD = 5,
+ PSI_NET_STATIC_IPV4ADDRESS = 6,
+ PSI_NET_SUBNETMASK = 7,
+ PSI_NET_GATEWAY = 8,
+ PSI_NET_DNS_IPV4_BOOTMETHOD = 9,
+ PSI_NET_PRIMARY_DNS_IPV4ADDRESS = 10,
+ PSI_NET_SECOND_DNS_IPV4ADDRESS = 11,
+ PSI_NET_IPV6_BOOTMETHOD = 12,
+ PSI_NET_STATIC_IPV6ADDRESS = 13,
+ PSI_NET_PRIMARY_DNS_IPV6ADDRESS = 14,
+ PSI_NET_SECOND_DNS_IPV6ADDRESS = 15,
+ PSI_NET_IPV6ADDRESS_LIST = 16,
+ PSI_NET_COMMUNICATION_MODE = 17,
+ PSI_NET_SSID = 18,
+ PSI_NET_CHANNEL = 19,
+ PSI_NET_AUTHENTICATION_METHOD = 20,
+ PSI_NET_ENCRYPTIONMODE = 21,
+ PSI_NET_WEPKEY = 22,
+ PSI_NET_PASSPHRASE = 23,
+ PSI_NET_USER_ID = 24,
+ PSI_NET_PASSWORD = 25,
+ PSI_NET_NODENAME = 26,
+ PSI_WIRELESSDIRECT_KEY_CREATE_MODE = 27,
+ PSI_WIRELESSDIRECT_SSID = 28,
+ PSI_WIRELESSDIRECT_NETWORK_KEY = 29,
+ PSI_BT_ISDISCOVERABLE = 30,
+ PSI_BT_DEVICENAME = 31,
+ PSI_BT_BOOTMODE = 34,
+ PSI_PRINTER_POWEROFFTIME = 35,
+ PSI_PRINTER_POWEROFFTIME_BATTERY = 36,
+ PSI_PRINT_JPEG_HALFTONE = 37,
+ PSI_PRINT_JPEG_SCALE = 38,
+ PSI_PRINT_DENSITY = 39,
+ PSI_PRINT_SPEED = 40,
+
+ PSI_BT_POWERSAVEMODE = 41,
+ PSI_BT_SSP = 42,
+ PSI_BT_AUTHMODE = 43,
+ PSI_BT_AUTO_CONNECTION = 44,
+} ;
+
+// Return value
+#define RET_FALSE 0
+#define RET_TRUE 1
+
+//
+
+typedef NS_ENUM(NSUInteger, CONNECTION_TYPE) {
+ CONNECTION_TYPE_WLAN,
+ CONNECTION_TYPE_BLUETOOTH, // Classic Bluetooth
+ CONNECTION_TYPE_BLE, // Bluetooth Low Energy
+ CONNECTION_TYPE_ERROR
+};
+
+extern NSString *BRWLanConnectBytesWrittenNotification;
+extern NSString *BRBluetoothSessionBytesWrittenNotification;
+extern NSString *BRBLEBytesWrittenNotification;
+extern NSString *BRPtouchPrinterKitMessageNotification;
+
+extern NSString *const BRBytesWrittenKey;
+extern NSString *const BRBytesToWriteKey;
+extern NSString *const BRMessageKey;
+
+
+@interface BRPtouchPrinter : NSObject
+
+- (id)initWithPrinterIPAddress:(NSString *)IPAddress;
+- (id)initWithPrinterName:(NSString*)strPrinterName;
+- (id)initWithPrinterName:(NSString*)strPrinterName interface:(CONNECTION_TYPE)type;
+- (NSString *)printerName;
+- (BOOL)setPrinterName:(NSString*)strPrinterName;
+- (void)setPrintInfo:(BRPtouchPrintInfo*)printInfo;
+- (BOOL)setCustomPaperFile:(NSString*)strFilePath;
+- (NSArray *)setCustomPaperInfoCommand:(BRCustomPaperInfoCommand *)customPaperInfoCommand;
+//- (BOOL)setEncryptKey:(NSString*)strKey keyEx:(NSString*)strKeyEx; // Not Available
+
+- (BOOL)isPrinterReady;
+
+- (NSArray *)getSupportPaperArray;
+- (BRPtouchLabelParam *)getCurrentLabelParam;
+
+- (BRPtouchLabelInfoStatus *)getLabelInfoStatus;
+- (int)getPTStatus:(PTSTATUSINFO*)status;
+- (int)getStatus:(BRPtouchPrinterStatus**)status;
+- (int)getStatus:(BRPtouchPrinterStatus**)status errorCode:(int *)errorCode;
+- (NSString *)getModelName;
+- (NSString *)getFirmVersion;
+- (NSString *)getMediaVersion;
+- (NSString *)getMediaFileVersion:(NSString *)filepath;
+- (NSString *)getDeviceSerialNumber;
+- (int)getSystemReport:(NSString* *)report;
+
+- (BOOL)sendTemplateFile:(NSArray*)sendFileArray;
+- (BOOL)sendFirmwareFile:(NSArray*)sendFileArray;
+
+- (int)sendTemplate:(NSString *)sendtemplateFilePath connectionType:(CONNECTION_TYPE) type;
+- (int)sendDatabase:(NSString *)databaseFilePath;
+
+- (BOOL)startPTTPrint:(int)key encoding:(NSStringEncoding)encoding;
+- (BOOL)replaceText:(NSString *)data;
+- (BOOL)replaceTextIndex:(NSString *)data objectIndex:(int)objIndex;
+- (BOOL)replaceTextName:(NSString *)data objectName:(NSString *)objName;
+- (int)flushPTTPrintWithCopies:(int)nCopy;
+- (int)removeTemplate:(NSArray *)keyList;
+- (int)getTemplateList:(NSArray*__autoreleasing *)templateList;
+
+- (void)setIPAddress:(NSString*)strIP;
+- (void)setupForBluetoothDeviceWithSerialNumber:(NSString*)serialNumber;
+- (void)setBLEAdvertiseLocalName:(NSString*)advertiseLocalName;
+
+/**
+ * Deprecated.
+ * Use startCommunication.
+ **/
+- (int)startPrint __attribute__((deprecated));
+- (BOOL)startCommunication;
+
+/**
+ * Deprecated.
+ * Use endCommunication.
+ **/
+- (void)endPrint __attribute__((deprecated));
+- (void)endCommunication;
+
+- (int)sendFile:(NSString*)filePath;
+- (int)sendData:(NSData*)data;
+- (int)sendFileEx:(NSString*)filePath;
+- (int)sendDataEx:(NSData*)data;
+
+- (int)printPDFAtPath:(NSString *)pdfPath pages:(NSUInteger [])indexes length:(NSUInteger)length copy:(int)nCopy;
+- (int)printImage:(CGImageRef)imageRef copy:(int)nCopy;
+- (int)printFiles:(NSArray *)filePaths copy:(int)nCopy;
+
+- (int)cancelPrinting;
+- (void)setInterface:(CONNECTION_TYPE)strInterface;
+
+- (int)getBatteryStatus;
+- (int)getBatteryInfo:(BRPtouchBatteryInfo* *)batteryInfo;
+- (int)getPrinterBootMode;
+- (int) setAutoConnectBluetooth:(BOOL)flag;
+- (int) isAutoConnectBluetooth;
+
+- (int)setPrinterSettings:(NSDictionary*)printerSettings;
+- (int)getPrinterSettings:(NSDictionary**)printerSettings require:(NSArray*)require;
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRPtouchPrinterData.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRPtouchPrinterData.h
new file mode 100644
index 0000000..05f98fe
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRPtouchPrinterData.h
@@ -0,0 +1,16 @@
+//
+// BRPtouchPrinterData.h
+// BRPtouchPrinterKit
+//
+// Copyright (c) 2012-2018 Brother Industries, Ltd. All rights reserved.
+//
+#import
+
+@interface BRPtouchPrinterData : NSObject
+{
+ NSArray* aryPrinterList;
+}
+
+- (NSArray*)getPrinterList;
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRPtouchPrinterKit.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRPtouchPrinterKit.h
new file mode 100644
index 0000000..d4fb456
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRPtouchPrinterKit.h
@@ -0,0 +1,18 @@
+//
+// BRPtouchPrinterKit.h
+// BRPtouchPrinterKit
+//
+// Copyright (c) 2012-2018 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+#import "BRPtouchPrinter.h"
+#import "BRPtouchNetworkManager.h"
+#import "BRPtouchBluetoothManager.h"
+#import "BRPtouchBLEManager.h"
+#import "BRPtouchDeviceInfo.h"
+#import "BRPtouchTemplateInfo.h"
+
+@interface BRPtouchPrinterKit : NSObject
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRPtouchPrinterStatus.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRPtouchPrinterStatus.h
new file mode 100644
index 0000000..c1dc0a7
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRPtouchPrinterStatus.h
@@ -0,0 +1,58 @@
+//
+// BRPtouchPrinterStatus.h
+// BRPtouchPrinterKit
+//
+// Copyright (c) 2016-2018 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+typedef struct _PTSTATUSINFO {
+ Byte byHead; // Head mark
+ Byte bySize; // Size
+ Byte byBrotherCode; // Brother code
+ Byte bySeriesCode; // Serial code
+ Byte byModelCode; // Model code
+ Byte byNationCode; // Nation code
+ Byte byFiller; // information about cover
+ Byte byFiller2; // Not used
+ Byte byErrorInf; // Error information 1
+ Byte byErrorInf2; // Error information 2
+ Byte byMediaWidth; // Media width
+ Byte byMediaType; // Media type
+ Byte byColorNum; // The number of colors
+ Byte byFont; // Font
+ Byte byJapanesFont; // Japanese font
+ Byte byMode; // Mode
+ Byte byDensity; // Density
+ Byte byMediaLength; // Media Length
+ Byte byStatusType; // Status Type
+ Byte byPhaseType; // Phase type
+ Byte byPhaseNoHi; // Upper bytes of phase number
+ Byte byPhaseNoLow; // Lower bytes of phase number
+ Byte byNoticeNo; // Notice number
+ Byte byExtByteNum; // Total bytes of extended part
+ Byte byLabelColor; // Color of label
+ Byte byFontColor; // Color of font
+ Byte byHardWareSetting[4]; // Settings of hardware
+ Byte byNoUse[2]; // Not Use
+} PTSTATUSINFO, *LPPTSTATUSINFO;
+
+typedef NS_ENUM(NSInteger, BRPtouchPrinterStatusBatteryTernary) {
+ BRPtouchPrinterStatusBatteryTernaryUnknown = -1,
+ BRPtouchPrinterStatusBatteryTernaryYes = 1,
+ BRPtouchPrinterStatusBatteryTernaryNo = 0,
+};
+@interface BRPtouchPrinterStatus : NSObject
+@property (nonatomic) PTSTATUSINFO statusInfo;
+
+// battery
+@property (nonatomic) int32_t batteryResidualQuantityLevel;
+@property (nonatomic) int32_t maxOfBatteryResidualQuantityLevel;
+
+@property (nonatomic) BRPtouchPrinterStatusBatteryTernary isACConnected;
+@property (nonatomic) BRPtouchPrinterStatusBatteryTernary isBatteryMounted;
+
+@property (nonatomic) int16_t batteryLevel __deprecated;
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRPtouchTemplateInfo.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRPtouchTemplateInfo.h
new file mode 100644
index 0000000..158efa8
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/BRPtouchTemplateInfo.h
@@ -0,0 +1,23 @@
+//
+// BRPtouchTemplateInfo.h
+// BRPtouchPrinterKit
+//
+// Copyright (c) 2018 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+// 64-bit value representing the number of 100-nanosecond intervals since January 1, 1601.
+typedef unsigned long long int BRFILETIMEDate;
+extern const BRFILETIMEDate NULLOfBRFILETIMEDate;
+
+@interface BRPtouchTemplateInfo : NSObject
+
+@property (nonatomic, readonly) NSUInteger key;
+@property (nonatomic, readonly) NSUInteger fileSize;
+@property (nonatomic, readonly) NSUInteger checksum;
+@property (nonatomic, readonly) NSDate *modifiedDate;
+@property (nonatomic, readonly) BRFILETIMEDate rawModifiedDate;
+@property (nonatomic, readonly) NSString *fileName;
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/GenericMobileLabelModelPrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/GenericMobileLabelModelPrintSettings.h
new file mode 100755
index 0000000..7e369e1
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/GenericMobileLabelModelPrintSettings.h
@@ -0,0 +1,211 @@
+//
+// GenericMobileLabelModelPrintSettings.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/12/12.
+// Copyright (c) 2012-13 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "PrintSettings.h"
+
+
+
+@interface GenericMobileLabelModelPrintSettings : PrintSettings
+{
+ // provide subclasses with access to readonly properties via ivars.
+ // Because they are readonly, there is no "Setter" method available in the superclass.
+ // The subclasses should be the only place where these properties are set.
+ // But, they will be used in this superclass.
+ // Users of this superclass can read the values if desired, but in most cases this
+ // will not be necessary.
+ int _resolutionHorz;
+ int _resolutionVert;
+ int _headSizeDots;
+ int _paperWidthDotsMin;
+ int _paperWidthDotsMax;
+ int _paperLengthDotsMin;
+ int _paperLengthDotsMax;
+ int _marginLengthDotsMin;
+ int _marginLengthDotsMax;
+ int _extraFeedMax;
+
+ unsigned char _energyRank;
+ signed char _sensThrAdj;
+ signed char _sensDutyAdj;
+ int16_t _horzPosAdjDots;
+ int16_t _vertPosAdjDots;
+}
+
+// the following are defined somewhat arbitrarily to limit these settings to a
+// reasonable value during validation.
+// NOTE: We do NOT need "read only" properties for these since they will be the same
+// for each model and subclass.
+#define LABELSPACINGDOTS_MAX 1000
+#define MARKWIDTHDOTS_MAX 1000
+#define MARKOFFSETDOTS_MIN -1000
+#define MARKOFFSETDOTS_MAX 1000
+
+
+//*** IMPORTANT (for SDK Users):
+// *** DO NOT INSTANTIATE AN OBJECT OF THIS CLASS!!!!! ***
+// The GenericMobileLabelModelPrintSettings class is essentially an ABSTRACT class.
+// Instead, you should instantiate the model-specific class, e.g. RJ4040PrintSettings.
+
+//*** The following properties should be set by your app code, either PROGRAMMATICALLY
+// or by using one of the PrintSettingsViewControllers (which may not set all properties).
+
+// The properties and methods in this super-class will be COMMON for all
+// of the RJ and TD printer models.
+// They will be implemented in here generically, but will use the genericModelDelegate
+// property above to get model-specific information.
+
+// SDK Users: All of the properties below (and those in the PrintSettings superclass)
+// are settable by you to change the printer behavior.
+// If you are not using the PrintSettingsViewController (either the SDK's or your own custom one),
+// then you should set each of these properties programmatically to your desired setting.
+@property (nonatomic, assign) PAPERTYPE paperType;
+// formFeedMode = NOFEED mode is used to implement "trimTapeAfterData" from Windows driver.
+// This allows clipping white space from the bottom of the job to save paper.
+@property (nonatomic, assign) FORMFEEDMODE formFeedMode;
+@property (nonatomic, assign) DENSITY density;
+@property (nonatomic,assign) int extraFeed; // used with kFormFeedModeNoFeed only
+
+//*** PAPER SIZE is defined by setting ALL of the following properties.
+// They are used to generate the "Esc iUw[128 bytes]" command.
+
+// Paper Size is defined by a Width and Length.
+// Unprintable Margins impact printable area within this defined size.
+// * Printable height will be calculated as:
+// "printableHeight = paperLengthDots - 2*marginLengthDots"
+// * Printable width will be calculated as:
+// "printableWidth = paperWidthDots - 2*marginWidthDots"
+// Also, since printer paper is "center justified", anything less than 4" width needs to be
+// compensated for using "rightOffsetBytes" to shift the data relative to printhead origin.
+// We calculate "rightOffsetBytes" in the DRIVER based on paperWidthDots and marginWidthDots.
+//
+// NOTE: RJ4040 requires the left/right margins (marginWidth) to be the same as each other,
+// and it requires top/bottom margins (marginLength) to be the same as each other.
+// Although TD2 firmware allows these to be different, we are NOT going to support that
+// functionality. If any margin settings are needed that require these unprintable margins
+// to be different, then use the "marginDots" property in the superclass to make these adjustments.
+@property (nonatomic, assign) int paperWidthDots;
+@property (nonatomic, assign) int paperLengthDots;
+@property (nonatomic, assign) int16_t marginWidthDots; // left and right unprintable margin
+@property (nonatomic, assign) int16_t marginLengthDots; // top and bottom unprintable margin
+// this is for labels only:
+@property (nonatomic, assign) int16_t labelSpacingDots; // distance between labels
+// These 2 are for Marked Paper only:
+@property (nonatomic, assign) int16_t markWidthDots; // width of mark
+@property (nonatomic, assign) int16_t markOffsetDots; // distance from leading edge to marks. Can be negative.
+// The following properties are also added to Esc iUw (additionalMediaInfo) command.
+// In Windows Driver, these are on "Advanced Printing Adjustments..." when editing a PaperSize.
+//
+// Until now they have been hard-coded to match defaults in Windows driver.
+// In SDK version 2.3.4, we made these available for you to modify if necessary.
+// However, they may not be available in the PrintSettingsViewController. TBD.
+// If not and you wish to change them, you must set them independently, as you most likely do with all the other settings anyway.
+@property (nonatomic, assign) unsigned char energyRank; // similar to density.
+ // Range is 0-10
+ // TD-4550 range is 0-30.
+ // Default depends on printer model and paper type.
+ // Set to '\xFF' (-1) to allow SDK to set default, same as SDK versions < v2.3.4.
+
+// NOTE: These are N/A for RJ-4000 series. But they are supported with all other RJ/TD models.
+@property (nonatomic, assign) signed char sensThrAdj; // range = 0xFE (-2) to 0x02 (2), default = 0
+ // TD-4550 range = 0xFB (-5) to 0x05 (5), default = 0
+@property (nonatomic, assign) signed char sensDutyAdj; // range = 0xFE (-2) to 0x02 (2), default = 0
+#ifdef WHAT_THE_SPEC_SAYS
+// This range is small, especially at 300 dpi.
+// And, it doesn't match the size of the field in the struct or the Windows Driver.
+@property (nonatomic, assign) int16_t horzPosAdjDots; // range = 0x80 (-128) to 0x7F (127), default = 0
+@property (nonatomic, assign) int16_t vertPosAdjDots; // range = 0x80 (-128) to 0x7F (127), default = 0
+#else
+// Windows driver allows +/- 5.91 inches at printer resolution.
+// And, the value in Esc iUw structure is a 16-bit signed integer.
+// So, these values in comments seem to be the right ones.
+@property (nonatomic, assign) int16_t horzPosAdjDots; // range = +/- 5.91*resolution, default = 0
+@property (nonatomic, assign) int16_t vertPosAdjDots; // range = +/- 5.91*resolution, default = 0
+#endif
+
+
+// By default, the "Esc iUw [128 bytes]" command will be sent by computing the 128-byte
+// structure fields from the paperSize and other property settings.
+// However, some types of media may not be adequately handled. In this case, we provide the
+// option to disable sending this command. However, it will then be necessary to use the
+// Windows driver to send a job to the printer to cause the appropriate "Esc iUw" command to
+// be sent to the printer.
+// *** The printer will remember the settings from the last time this command was sent. ***
+// It will be important to assure that this class' property settings closely match the
+// settings sent by the Windows driver.
+@property (nonatomic, assign) BOOL sendAdditionalMediaInfoCommand;
+
+
+// Enable/Disable the FIXED 2 Sec Delay at end of **EACH** page when printing by MFi Bluetooth.
+// SDK v2.3.2 forced this delay for RJ-42 models ONLY, without this configurable property.
+// SDK v2.3.3 added this property to allow you to turn it ON only if needed, for RJ-42 series only.
+// SDK v2.3.4 moved this to Generic class, so it can be used with other models in case it is needed.
+// * However, we haven't seen the problem occur with any printers other than RJ-4200 series.
+// * We provide this capability with other models just in case it is helpful.
+//
+// When Enabled:
+// * A fixed 2-second delay is added at the END OF EACH PAGE, for MFi Bluetooth Channel ONLY.
+// * This delay seems to fix a problem that occurs with RJ-42 models which can cause MFi to disconnect
+// when the printer goes into a cooling state while printing multiple page jobs.
+// * However, the delay is NOT needed in most "normal" conditions, so enabling it can slow you down.
+// Therefore, the default value is NO (Disabled).
+//
+// When Disabled (default):
+// * NO 2-sec delay at end of each page, which is normal for all printers released prior to RJ-4200 series.
+// * However, when printing multiple page jobs on RJ-4200 series, there is a possibility that MFi can be disconnected
+// by Apple when printer begins "Cooling". This seems to be a FW bug with RJ-42 models only. However, the possibility
+// exists that other models can have this problem too.
+//
+// Generally, we recommend setting NO unless your "worst case" scenario results in the MFi being disconnected
+// for your printer model. If so, then we suggest giving user a CHOICE to enable/disable this so the delay doesn't
+// occur on every page, unless you are OK with this delay happening every page.
+//
+@property (nonatomic, assign) BOOL coolingDelayEnabled;
+
+//*** The properties below are READ ONLY. SDK Users can NOT set them!!
+// Each subclass MUST set them to their model-specific values in their init method.
+// The purpose of this GenericMobileLabelModelPrintSettings class is to implement COMMON
+// code so it does not have to be duplicated for each similar printer model. However, it
+// requires these model-dependent properties to be set by the SUBCLASS.
+@property (readonly, nonatomic, assign) int resolutionHorz;
+@property (readonly, nonatomic, assign) int resolutionVert;
+@property (readonly, nonatomic, assign) int headSizeDots;
+@property (readonly, nonatomic, assign) int paperWidthDotsMin;
+@property (readonly, nonatomic, assign) int paperWidthDotsMax;
+@property (readonly, nonatomic, assign) int paperLengthDotsMin;
+@property (readonly, nonatomic, assign) int paperLengthDotsMax;
+@property (readonly, nonatomic, assign) int marginLengthDotsMin;
+@property (readonly, nonatomic, assign) int marginLengthDotsMax;
+@property (readonly, nonatomic, assign) int extraFeedMax;
+
+
+// *** PrintSettingsDelegate protocol
+// All subclasses of PrintSettings are required to implement these methods.
+// validatePrintSettings - This function assures that all properties are in range
+// and that there are no conflicting settings.
+- (BOOL)validatePrintSettings;
+- (void) loadPreferences;
+- (void) savePreferences;
+//generate strings from CURRENT settings, for convenience.
+// This is part of the PrintSettingsDelegateProtocol too.
+- (NSString *)stringFromCurrentPaperType;
+// NOTE: PaperSize uses combination of internal settings to generate a string, formatted in inches.
+- (NSString *)stringFromCurrentPaperSize;
+- (NSString *)stringFromCurrentFormFeedMode;
+- (NSString *)stringFromCurrentExtraFeed;
+- (NSString *)stringFromCurrentDensity;
+
+
+//*** generate strings from constants, for convenience
+- (NSString *)stringFromPaperType: (PAPERTYPE)paperType;
+// NOTE: paperSize for these models does not have a constant, so you can only use the CURRENT version below.
+- (NSString *)stringFromFormFeedMode: (FORMFEEDMODE)ffmode;
+- (NSString *)stringFromExtraFeed:(int)extraFeed;
+- (NSString *)stringFromDensity: (DENSITY)density;
+
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/GenericMobileLabelModelPrintSettingsViewController.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/GenericMobileLabelModelPrintSettingsViewController.h
new file mode 100755
index 0000000..f7e7ca9
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/GenericMobileLabelModelPrintSettingsViewController.h
@@ -0,0 +1,50 @@
+//
+// GenericMobileLabelModelPrintSettingsViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/27/13.
+// Copyright (c) 2013 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "PrintSettingsViewController.h"
+#import "GenericMobileLabelModelPrintSettings.h"
+#import "PrintSettingTableViewController.h" // for PrintSettingTableViewResponder protocol, internal use only
+
+
+////////////////////////////////////////////////////////////////////////////////
+
+
+//*********************************************************************
+// GenericMobileLabelModelPrintSettingsViewController INTERFACE
+//
+//*** IMPORTANT: *** DO NOT INSTANTIATE AN OBJECT OF THIS CLASS!!!!! ***
+// The GenericMobileLabelModelPrintSettingsViewController class is essentially an
+// ABSTRACT class.
+// Instead, you should instantiate the model-specific class,
+// e.g. RJ4040PrintSettingsViewController.
+//*********************************************************************
+
+
+@interface GenericMobileLabelModelPrintSettingsViewController : PrintSettingsViewController < UITableViewDelegate, UITableViewDataSource, PrintSettingTableViewResponder>
+{
+}
+
+// "style" MUST be set to UITableViewStyleGrouped!!
+-(id)initWithStyle:(UITableViewStyle)style;
+
+
+// SDK Designers: The PrintSettingsViewController superclass defines several properties:
+// printSettings, popoverSize, rowHeight, fontSize, printSettingsDelegate,
+// showIPAddressHelpButton, IPAddressHelpFileName, and showSettingsOptionMask.
+// So, they are not defined in here.
+// However, this class and/or a model-specific subclass should "init" these properties
+// and handle setter overrides (if necessary).
+//
+// SDK Users: You should be familiar with the superclass properties so you can set
+// them accordingly, in particular the printSettingsDelegate (which handles
+// the PrintSettingsResponder protocol).
+
+
+@end
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/GenericPocketJetPrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/GenericPocketJetPrintSettings.h
new file mode 100755
index 0000000..323e276
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/GenericPocketJetPrintSettings.h
@@ -0,0 +1,99 @@
+//
+// GenericPocketJetPrintSettings.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/23/15.
+// Copyright (c) 2012-15 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "PrintSettings.h"
+
+typedef enum
+{
+ kCustomPaperAlignLeft = 0,
+ kCustomPaperAlignCenter,
+} CUSTOMPAPERALIGN;
+
+@interface GenericPocketJetPrintSettings : PrintSettings
+{
+ // provide subclasses with access to readonly properties via ivars.
+ // Because they are readonly, there is no "Setter" method available in the superclass.
+ // The subclasses should be the only place where these properties are set.
+ // But, they will be used in this superclass.
+ // Users of this superclass can read the values if desired, but in most cases this
+ // will not be necessary.
+ int _resolutionHorz;
+ int _resolutionVert;
+ int _customPaperWidthDotsMin;
+ int _customPaperWidthDotsMax;
+ int _customPaperLengthDotsMin;
+ int _customPaperLengthDotsMax;
+ int _extraFeedMax;
+}
+
+
+//*** IMPORTANT (for SDK Users):
+// *** DO NOT INSTANTIATE AN OBJECT OF THIS CLASS!!!!! ***
+// The GenericPocketJetPrintSettings class is essentially an ABSTRACT class.
+// Instead, you should instantiate the model-specific class, e.g. PJ673PrintSettings.
+
+//*** The following properties should be set by your app code, either PROGRAMMATICALLY
+// or by using one of the PrintSettingsViewControllers (which may not set all properties).
+
+// The properties and methods in this super-class will be COMMON for all
+// of the PocketJet printer models.
+
+// SDK Users: All of the properties below (and those in the PrintSettings superclass)
+// are settable by you to change the printer behavior.
+// If you are not using the PrintSettingsViewController (either the SDK's or your own custom one),
+// then you should set each of these properties programmatically to your desired setting.
+@property (nonatomic, assign) PAPERSIZE paperSize;
+@property (nonatomic, assign) PAPERTYPE paperType;
+@property (nonatomic, assign) FORMFEEDMODE formFeedMode;
+@property (nonatomic,assign) int extraFeed; // used with kFormFeedModeNoFeed only
+@property (nonatomic, assign) DENSITY density;
+// These 3 properties are used ONLY when paperSize is set to kPaperSizeCustom!
+@property (nonatomic, assign) int customPaperWidthDots;
+@property (nonatomic, assign) int customPaperLengthDots;
+@property (nonatomic, assign) CUSTOMPAPERALIGN customPaperAlign;
+
+
+//*** The properties below are READ ONLY. SDK Users can NOT set them!!
+// Each subclass MUST set them to their model-specific values in their init method.
+// The purpose of this GenericPocketJetPrintSettings class is to implement COMMON
+// code so it does not have to be duplicated for each similar printer model. However, it
+// requires these model-dependent properties to be set by the SUBCLASS.
+@property (readonly, nonatomic, assign) int resolutionHorz;
+@property (readonly, nonatomic, assign) int resolutionVert;
+@property (readonly, nonatomic, assign) int customPaperWidthDotsMin;
+@property (readonly, nonatomic, assign) int customPaperWidthDotsMax;
+@property (readonly, nonatomic, assign) int customPaperLengthDotsMin;
+@property (readonly, nonatomic, assign) int customPaperLengthDotsMax;
+@property (readonly, nonatomic, assign) int extraFeedMax;
+
+
+// *** PrintSettingsDelegate protocol
+// All subclasses of PrintSettings are required to implement these methods.
+// validatePrintSettings - This function assures that all properties are in range
+// and that there are no conflicting settings.
+- (BOOL)validatePrintSettings;
+- (void) loadPreferences;
+- (void) savePreferences;
+//generate strings from CURRENT settings, for convenience.
+// This is part of the PrintSettingsDelegateProtocol too.
+- (NSString *)stringFromCurrentPaperType;
+- (NSString *)stringFromCurrentPaperSize;
+- (NSString *)stringFromCurrentFormFeedMode;
+- (NSString *)stringFromCurrentExtraFeed;
+- (NSString *)stringFromCurrentDensity;
+
+
+//*** generate strings from constants, for convenience
+- (NSString *)stringFromPaperType: (PAPERTYPE)paperType;
+- (NSString *)stringFromPaperSize: (PAPERSIZE)paperSize;
+- (NSString *)stringFromFormFeedMode: (FORMFEEDMODE)ffmode;
+- (NSString *)stringFromExtraFeed:(int)extraFeed;
+- (NSString *)stringFromDensity: (DENSITY)density;
+
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/GenericPocketJetPrintSettingsViewController.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/GenericPocketJetPrintSettingsViewController.h
new file mode 100755
index 0000000..5f0149f
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/GenericPocketJetPrintSettingsViewController.h
@@ -0,0 +1,47 @@
+//
+// GenericPocketJetPrintSettingsViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 8/8/12.
+// Copyright (c) 2012 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "PrintSettingsViewController.h"
+#import "GenericPocketJetPrintSettings.h"
+#import "PrintSettingTableViewController.h" // for PrintSettingTableViewResponder protocol, internal use only
+
+
+
+
+//*********************************************************************
+// GenericPocketJetPrintSettingsViewController INTERFACE
+//
+//*** IMPORTANT: *** DO NOT INSTANTIATE AN OBJECT OF THIS CLASS!!!!! ***
+// The GenericPocketJetPrintSettingsViewController class is essentially an
+// ABSTRACT class.
+// Instead, you should instantiate the model-specific class,
+// e.g. PJ673PrintSettingsViewController.
+//*********************************************************************
+
+@interface GenericPocketJetPrintSettingsViewController : PrintSettingsViewController
+{
+}
+
+// "style" MUST be set to UITableViewStyleGrouped!!
+-(id)initWithStyle:(UITableViewStyle)style;
+
+// SDK Designers: The PrintSettingsViewController superclass defines several properties:
+// printSettings, popoverSize, rowHeight, fontSize, printSettingsDelegate,
+// showIPAddressHelpButton, IPAddressHelpFileName, and showSettingsOptionMask.
+// So, they are not defined in here.
+// However, this class and/or a model-specific subclass should "init" these properties
+// and handle setter overrides (if necessary).
+//
+// SDK Users: You should be familiar with the superclass properties so you can set
+// them accordingly, in particular the printSettingsDelegate (which handles
+// the PrintSettingsResponder protocol).
+
+
+@end
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/PJ673PrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/PJ673PrintSettings.h
new file mode 100755
index 0000000..17e53c9
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/PJ673PrintSettings.h
@@ -0,0 +1,43 @@
+//
+// PJ673PrintSettings.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/11/12.
+// Copyright (c) 2012 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericPocketJetPrintSettings.h"
+
+@interface PJ673PrintSettings : GenericPocketJetPrintSettings
+
+// These constants below are provided for reference only. DO NOT MODIFY!
+#define PJ673_RESOLUTION_HORZ 300
+#define PJ673_RESOLUTION_VERT 300
+
+// Arbitrarily restrict extraFeed to 11" at 300 dpi. There is no reason to be larger.
+#define PJ673_MAX_EXTRAFEEDDOTS (11*PJ673_RESOLUTION_VERT)
+
+// NOTE: These custom MIN/MAX settings will be built into framework, so you can't change them.
+// And, the setter functions will clip to these values. The reasons for these choices are described below.
+// If you require something different for some reason, please contact Technical Support.
+#define PJ673_CUSTOM_WIDTHDOTS_MIN 1200 // 4" due to likely skewing of narrower paper. Otherwise can be lower.
+#define PJ673_CUSTOM_WIDTHDOTS_MAX 2550 // 8.5" = max paper width
+#define PJ673_CUSTOM_LENGTHDOTS_MIN 600 // 2" to allow PerfRoll paper to print anything due to large unprintable area
+#define PJ673_CUSTOM_LENGTHDOTS_MAX 30000 // 100", arbitrary
+
+//*** IMPORTANT ***
+// SDK Users:
+// You should NEVER instantiate an object of the GenericPocketJetPrintSettings class.
+// Instead, you should instantiate one of the model-specific subclasses (i.e. PJ673PrintSettings).
+//
+// For a list of important properties in the settings that your application needs to set,
+// refer to the GenericPocketJetPrintSettings superclass.
+
+// SDK Designers:
+// The GenericPocketJetPrintSettings class handles all the important work.
+// This subclass only needs to provide the model-specific data to the generic class.
+
+//*** ADDITIONAL PROPERTIES not handled by GenericPocketJetPrintSettings
+
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/PJ673PrintSettingsViewController.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/PJ673PrintSettingsViewController.h
new file mode 100755
index 0000000..cb6ec15
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/PJ673PrintSettingsViewController.h
@@ -0,0 +1,40 @@
+//
+// PJ673PrintSettingsViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 8/8/12.
+// Copyright (c) 2012 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericPocketJetPrintSettingsViewController.h"
+#import "PJ673PrintSettings.h"
+
+// This is the DEFAULT popup contentSize for PJ673PrintSettingsViewController.
+//
+// You can override this by setting the "popoverSize" property (defined in the
+// PrintSettingsViewController superclass) to something different
+// before showing the ViewController.
+//
+// The popoverSize setting will be propagated to all of the "child" ViewControllers
+// of the main ViewController so all of the detail views will be the SAME size as each other.
+//
+// NOTE: iPad1 and iPad2 size = 1024 x 768, iPad3 = 2048 x 1536
+#define PJ673POPUPCONTENTSIZE CGSizeMake(400,480)
+#define PJ673POPUPCONTENTSIZE_IOS7 CGSizeMake(400,588)
+
+/*
+ This class is a subclass of GenericPocketJetPrintSettingsViewController,
+ which implements all the major functionality.
+
+ *** SDK Users:
+ DO NOT INSTANTIATE an instance of GenericPocketJetPrintSettingsViewController.
+ Always instantiate a model-specific class, e.g. PJ673PrintSettingsViewController
+ */
+
+@interface PJ673PrintSettingsViewController : GenericPocketJetPrintSettingsViewController
+{
+}
+
+@end
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/PJ763MFIPrintSettingsViewController.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/PJ763MFIPrintSettingsViewController.h
new file mode 100755
index 0000000..67e0b63
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/PJ763MFIPrintSettingsViewController.h
@@ -0,0 +1,41 @@
+//
+// PJ763MFiPrintSettingsViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 8/8/12.
+// Copyright (c) 2012 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericPocketJetPrintSettingsViewController.h"
+#import "PJ763MFiPrintSettings.h"
+
+// This is the DEFAULT popup contentSize for PJ763MFiPrintSettingsViewController.
+//
+// You can override this by setting the "popoverSize" property (defined in the
+// PrintSettingsViewController superclass) to something different
+// before showing the ViewController.
+//
+// The popoverSize setting will be propagated to all of the "child" ViewControllers
+// of the main ViewController so all of the detail views will be the SAME size as each other.
+//
+// NOTE: iPad1 and iPad2 size = 1024 x 768, iPad3 = 2048 x 1536
+//#define PJ763MFiPOPUPCONTENTSIZE CGSizeMake(400,480)
+#define PJ763MFiPOPUPCONTENTSIZE CGSizeMake(400,548)
+#define PJ763MFiPOPUPCONTENTSIZE_IOS7 CGSizeMake(400,588)
+
+/*
+ This class is a subclass of GenericPocketJetPrintSettingsViewController,
+ which implements all the major functionality.
+
+ *** SDK Users:
+ DO NOT INSTANTIATE an instance of GenericPocketJetPrintSettingsViewController.
+ Always instantiate a model-specific class, e.g. PJ763MFiPrintSettingsViewController
+ */
+
+@interface PJ763MFiPrintSettingsViewController : GenericPocketJetPrintSettingsViewController
+{
+}
+
+@end
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/PJ763MFiPrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/PJ763MFiPrintSettings.h
new file mode 100755
index 0000000..1ae62d0
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/PJ763MFiPrintSettings.h
@@ -0,0 +1,45 @@
+//
+// PJ763MFiPrintSettings.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/11/12.
+// Copyright (c) 2012 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericPocketJetPrintSettings.h"
+
+@interface PJ763MFiPrintSettings : GenericPocketJetPrintSettings
+
+// These constants below are provided for reference only. DO NOT MODIFY!
+#define PJ763MFi_RESOLUTION_HORZ 300
+#define PJ763MFi_RESOLUTION_VERT 300
+
+// Arbitrarily restrict extraFeed to 11" at 300 dpi. There is no reason to be larger.
+#define PJ763MFi_MAX_EXTRAFEEDDOTS (11*PJ763MFi_RESOLUTION_VERT)
+
+// NOTE: These custom MIN/MAX settings will be built into framework, so you can't change them.
+// And, the setter functions will clip to these values. The reasons for these choices are described below.
+// If you require something different for some reason, please contact Technical Support.
+#define PJ763MFi_CUSTOM_WIDTHDOTS_MIN 1200 // 4" due to likely skewing of narrower paper. Otherwise can be lower.
+#define PJ763MFi_CUSTOM_WIDTHDOTS_MAX 2550 // 8.5" = max paper width
+#define PJ763MFi_CUSTOM_LENGTHDOTS_MIN 600 // 2" to allow PerfRoll paper to print anything due to large unprintable area
+#define PJ763MFi_CUSTOM_LENGTHDOTS_MAX 30000 // 100", arbitrary
+
+//*** IMPORTANT ***
+// SDK Users:
+// You should NEVER instantiate an object of the GenericPocketJetPrintSettings class.
+// Instead, you should instantiate one of the model-specific subclasses (i.e. PJ763MFiPrintSettings).
+//
+// For a list of important properties in the settings that your application needs to set,
+// refer to the GenericPocketJetPrintSettings superclass.
+
+// SDK Designers:
+// The GenericPocketJetPrintSettings class handles all the important work.
+// This subclass only needs to provide the model-specific data to the generic class.
+
+//*** ADDITIONAL PROPERTIES not handled by GenericPocketJetPrintSettings
+@property (nonatomic, assign) ROLL_CASE_OPTION rollCaseOption;
+@property (nonatomic, assign) PRINT_SPEED_OPTION printSpeedOption;
+
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/PJ773PrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/PJ773PrintSettings.h
new file mode 100755
index 0000000..ad67622
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/PJ773PrintSettings.h
@@ -0,0 +1,46 @@
+//
+// PJ773PrintSettings.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/11/12.
+// Copyright (c) 2012 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericPocketJetPrintSettings.h"
+
+
+@interface PJ773PrintSettings : GenericPocketJetPrintSettings
+
+// These constants below are provided for reference only. DO NOT MODIFY!
+#define PJ773_RESOLUTION_HORZ 300
+#define PJ773_RESOLUTION_VERT 300
+
+// Arbitrarily restrict extraFeed to 11" at 300 dpi. There is no reason to be larger.
+#define PJ773_MAX_EXTRAFEEDDOTS (11*PJ773_RESOLUTION_VERT)
+
+// NOTE: These custom MIN/MAX settings will be built into framework, so you can't change them.
+// And, the setter functions will clip to these values. The reasons for these choices are described below.
+// If you require something different for some reason, please contact Technical Support.
+#define PJ773_CUSTOM_WIDTHDOTS_MIN 1200 // 4" due to likely skewing of narrower paper. Otherwise can be lower.
+#define PJ773_CUSTOM_WIDTHDOTS_MAX 2550 // 8.5" = max paper width
+#define PJ773_CUSTOM_LENGTHDOTS_MIN 600 // 2" to allow PerfRoll paper to print anything due to large unprintable area
+#define PJ773_CUSTOM_LENGTHDOTS_MAX 30000 // 100", arbitrary
+
+//*** IMPORTANT ***
+// SDK Users:
+// You should NEVER instantiate an object of the GenericPocketJetPrintSettings class.
+// Instead, you should instantiate one of the model-specific subclasses (i.e. PJ773PrintSettings).
+//
+// For a list of important properties in the settings that your application needs to set,
+// refer to the GenericPocketJetPrintSettings superclass.
+
+// SDK Designers:
+// The GenericPocketJetPrintSettings class handles all the important work.
+// This subclass only needs to provide the model-specific data to the generic class.
+
+//*** ADDITIONAL PROPERTIES not handled by GenericPocketJetPrintSettings
+@property (nonatomic, assign) ROLL_CASE_OPTION rollCaseOption;
+@property (nonatomic, assign) PRINT_SPEED_OPTION printSpeedOption;
+
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/PJ773PrintSettingsViewController.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/PJ773PrintSettingsViewController.h
new file mode 100755
index 0000000..97048c9
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/PJ773PrintSettingsViewController.h
@@ -0,0 +1,41 @@
+//
+// PJ773PrintSettingsViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 8/8/12.
+// Copyright (c) 2012 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericPocketJetPrintSettingsViewController.h"
+#import "PJ773PrintSettings.h"
+
+// This is the DEFAULT popup contentSize for PJ773PrintSettingsViewController.
+//
+// You can override this by setting the "popoverSize" property (defined in the
+// PrintSettingsViewController superclass) to something different
+// before showing the ViewController.
+//
+// The popoverSize setting will be propagated to all of the "child" ViewControllers
+// of the main ViewController so all of the detail views will be the SAME size as each other.
+//
+// NOTE: iPad1 and iPad2 size = 1024 x 768, iPad3 = 2048 x 1536
+//#define PJ773POPUPCONTENTSIZE CGSizeMake(400,480)
+#define PJ773POPUPCONTENTSIZE CGSizeMake(400,548)
+#define PJ773POPUPCONTENTSIZE_IOS7 CGSizeMake(400,588)
+
+/*
+ This class is a subclass of GenericPocketJetPrintSettingsViewController,
+ which implements all the major functionality.
+
+ *** SDK Users:
+ DO NOT INSTANTIATE an instance of GenericPocketJetPrintSettingsViewController.
+ Always instantiate a model-specific class, e.g. PJ773PrintSettingsViewController
+ */
+
+@interface PJ773PrintSettingsViewController : GenericPocketJetPrintSettingsViewController
+{
+}
+
+@end
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/PrintSettingTableViewController.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/PrintSettingTableViewController.h
new file mode 100755
index 0000000..74a176d
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/PrintSettingTableViewController.h
@@ -0,0 +1,51 @@
+//
+// PrintSettingTableViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 2/11/13.
+// Copyright (c) 2013 Brother Mobile Solutions. All rights reserved.
+//
+// NOTE: This is a generic implementation for all print settings that use a
+// TableView to display the settings. It handles only a single setting at a time.
+//
+// NOTE: This class is used INTERNALLY to the SDK only. But, we need to make this a PUBLIC header file
+// because other public headers need to #import it due to the PrintSettingTableViewResponder protocol.
+
+#import
+
+@protocol PrintSettingTableViewResponder
+// The "tableViewItemChanged" function must be implemented by the class that
+// uses this PrintSettingTableViewController.
+// This function is responsible to:
+// (1) set the new value to its copy of the printSettings,
+// (2) handle any "mutually exclusive" settings (such as FFMode and PaperType),
+// (3) call "printSettingsDidChange" function per the "PrintSettingsSetter"
+// protocol to pass the settings change notification along
+- (void)tableViewItemChanged: (int)whichSetting newItemValue:(int)newItemValue;
+@end
+
+@protocol PrintSettingTableViewSetter
+@property (assign, nonatomic) id printSettingDelegate;
+@end
+
+
+@interface PrintSettingTableViewController : UITableViewController
+{
+ UITableViewCell *_cellWithCheck;
+}
+// used internally only
+@property (nonatomic, retain) UITableViewCell *cellWithCheck;
+
+// Must be set by caller.
+@property (nonatomic, assign) int whichPrintSetting;
+@property (nonatomic, retain) NSString *viewTitle;
+@property (nonatomic, retain) NSArray *tableItemArray;
+@property (nonatomic, assign) int initialItemValueToCheck;
+@property (nonatomic, assign) UITableViewCellStyle cellStyle;
+@property (nonatomic, retain) NSString *section0Title;
+
+// The class which implements the printSettingDidChange function.
+// This MUST be set by the CALLER before we are loaded. It cannot be nil!!
+@property (assign, nonatomic) id printSettingDelegate;
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/PrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/PrintSettings.h
new file mode 100755
index 0000000..ac0ba05
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/PrintSettings.h
@@ -0,0 +1,467 @@
+//
+// PrintSettings.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/11/12.
+// Copyright (c) 2012 Brother Mobile Solutions. All rights reserved.
+//
+// NOTE: This is the super-class that contains properties and methods common to each printer model.
+
+#import
+
+//#define ALLOW_BT_TEMPORARILY 1 // TODO: define or undefine this if applicable
+
+
+//*********************************************************************
+// PrintSettingsDelegate PROTOCOL
+//
+// Subclasses of PrintSettings are required to implement the following protocol.
+@protocol PrintSettingsDelegate
+
+//*** Methods
+// SDK Users: These are primary API methods that you may want to use!
+- (BOOL) validatePrintSettings;
+// TODO: Consider changing proto to return BOOL instead of void.
+// For loadPrefs, return FALSE if it detects that they have never been saved previously.
+// This could be helpful in some ISV scenarios.
+- (void) loadPreferences;
+- (void) savePreferences;
+
+// These are only convenience methods, if needed. But, we need to assure that each
+// subclass (and/or the superclass) implements them by adding them to the protocol.
+- (NSString *)stringFromCurrentPaperType;
+- (NSString *)stringFromCurrentPaperSize;
+- (NSString *)stringFromCurrentFormFeedMode;
+- (NSString *)stringFromCurrentExtraFeed;
+- (NSString *)stringFromCurrentDensity;
+
+// NOTE: IPAddress is already an NSString so don't need an API function for it.
+// NOTE: bluetoothDeviceName is already an NSString so don't need an API function for it.
+- (NSString *)stringFromCurrentChannelType;
+- (NSString *)stringFromCurrentIPPort;
+- (NSString *)stringFromCurrentScaleMode;
+- (NSString *)stringFromCurrentOrientation;
+- (NSString *)stringFromCurrentMargins;
+- (NSString *)stringFromCurrentHalftone;
+- (NSString *)stringFromCurrentThreshold;
+- (NSString *)stringFromCurrentCompress;
+- (NSString *)stringFromCurrentInvert;
+- (NSString *)stringFromCurrentPrinterModel;
+
+//*** Strings for custom properties not included in the GenericXXX class.
+// PJ
+- (NSString *)stringFromCurrentRollCase;
+- (NSString *)stringFromCurrentPrintSpeed;
+
+// RJ/TD
+- (NSString *)stringFromCurrentCoolingDelayEnabled;
+- (NSString *)stringFromCurrentCutterOptions;
+
+//*** Properties
+// NOTE: If you wish to get/set any model-dependent properties, then you
+// will need to use (or cast to) an object of the specific subclass.
+// You will NOT be able to use an object of type "PrintSettings *" to
+// access these properties; the compiler will give a "may not respond to" warning.
+//
+// For example 1:
+// PrintSettings *mySettings = [[PJ673PrintSettings alloc] init];
+// // NO!!
+// [mySettings setFormFeedMode:kFormFeedModeFixedPage];
+// // YES!!
+// [(PJ673PrintSettings *)mySettings setFormFeedMode:kFormFeedModeFixedPage];
+//
+// For example 2:
+// PJ673PrintSettings *mySettings = [[PJ673PrintSettings alloc] init];
+// [mySettings setFormFeedMode:kFormFeedModeFixedPage]; // OK!!
+//
+// Though many subclass properties are common to all models,
+// (e.g. paperType, formFeedMode, extraFeed, density), and we COULD put
+// those into this protocol, this is not going to be possible when we
+// get to "paperSize", since PJ-673 handles this very differently from
+// RJ4/TD2 models. So, you will need a specific subclass for that anyway.
+//
+// Furthermore, if we were to put these into this protocol, then the
+// PrintSettings superclass will be required to add these properties to
+// the interface and synthesize them, though they will NEVER be used.
+//
+// Furthermore, since TD2 has properties that are specific for it, we
+// cannot add those to this protocol, so again you will have to use
+// (or cast to) a specific subclass to access these.
+//
+// As such, we will NOT add these 'common' model-specific properties
+// to this protocol.
+//
+// NOTE: We did add the corresponding "stringFromCurrentXXX" methods
+// above, because these can be accessed generically, even for PaperSize.
+
+@end // PrintSettingsDelegate protocol
+//*********************************************************************
+
+
+//*********************************************************************
+//*** NSUserDefaults
+// These are the top-level keys. Each model will have its own "dictionary" of subkeys
+// below this key, so all of the keys for a model will be self-contained.
+#define keyPJ673PrintSettings @"PJ-673 Print Settings"
+#define keyPJ763MFiPrintSettings @"PJ-763MFi Print Settings"
+#define keyPJ773PrintSettings @"PJ-773 Print Settings"
+#define keyRJ4040PrintSettings @"RJ-4040 Print Settings"
+#define keyRJ4030AiPrintSettings @"RJ-4030Ai Print Settings"
+#define keyRJ4230BPrintSettings @"RJ-4230B Print Settings"
+#define keyRJ4250WBPrintSettings @"RJ-4250WB Print Settings"
+#define keyTD2120NPrintSettings @"TD-2120N Print Settings"
+#define keyTD2130NPrintSettings @"TD-2130N Print Settings"
+#define keyRJ3050PrintSettings @"RJ-3050 Print Settings"
+#define keyRJ3050AiPrintSettings @"RJ-3050Ai Print Settings"
+#define keyRJ3150PrintSettings @"RJ-3150 Print Settings"
+#define keyRJ3150AiPrintSettings @"RJ-3150Ai Print Settings"
+#define keyRJ2050PrintSettings @"RJ-2050 Print Settings"
+#define keyRJ2140PrintSettings @"RJ-2140 Print Settings"
+#define keyRJ2150PrintSettings @"RJ-2150 Print Settings"
+#define keyTD4550DNWBPrintSettings @"TD-4550DNWB Print Settings"
+
+// common properties from PrintSettings superclass
+#define keyChannelType @"ChannelType"
+#define keyIPAddress @"IPAddress"
+#define keyBluetoothDeviceName @"BluetoothDeviceName"
+#define keyIPPort @"IPPort"
+#define keyScaleMode @"Scale Mode"
+#define keyOrientation @"Orientation"
+#define keyHalftone @"Halftone"
+#define keyThreshold @"Threshold"
+#define keyCompressionOn @"Compress"
+#define keyMarginTop @"MarginTop"
+#define keyMarginLeft @"MarginLeft"
+#define keyMarginBottom @"MarginBottom"
+#define keyMarginRight @"MarginRight"
+#define keyInvertPrintData @"InvertPrintData"
+
+// common properties from each subclass
+#define keyPaperType @"PaperType"
+#define keyFormFeedMode @"FormFeedMode"
+#define keyExtraFeed @"ExtraFeed"
+#define keyDensity @"Density"
+
+// Papersize is handled differently for different models.
+// Some models (e.g. PJ-673) have a set of fixed sizes defined by constants.
+#define keyPaperSize @"PaperSize"
+// But, now we added Custom Size capability, so let's add some more keys
+#define keyCustomPaperWidth @"CustomPaperWidth"
+#define keyCustomPaperLength @"CustomPaperLength"
+#define keyCustomPaperAlign @"CustomPaperAlign"
+
+
+// For other models (RJ4040, RJ3050, RJ3150, TD2120N, TD2130N),
+// PaperSize is broken up into the following components
+#define keyPaperWidth @"PaperWidth"
+#define keyPaperLength @"PaperLength"
+#define keyPaperMarginWidth @"PaperMarginWidth"
+#define keyPaperMarginLength @"PaperMarginLength"
+#define keyLabelSpacing @"LabelSpacing"
+#define keyMarkWidth @"MarkWidth"
+#define keyMarkOffset @"MarkOffset"
+// new papersize related keys added in 2.3.4
+#define keyEnergyRank @"EnergyRank"
+#define keySensThrAdj @"Sensor Threshold Adjustment"
+#define keySensDutyAdj @"Sensor Duty Adjustment"
+#define keyHorzPosAdjDots @"Horz Position Adjustment"
+#define keyVertPosAdjDots @"Vert Position Adjustment"
+
+
+// TD2 specific keys
+#define keyPeelerEnabled @"Peeler Enabled"
+#define keyInvert180Degrees @"Invert 180 Degrees"
+
+// RJ42 specific keys
+#define keyCoolingDelayEnabled @"Cooling Delay Enabled"
+
+// TD-4550DNWB specific keys
+#define keyCutAtEndOfJobEnabled @"CutAtEnd Enabled"
+#define keyAutoCutEnabled @"AutoCut Enabled"
+#define keyAutoCutEveryNLabels @"AutoCut Every N Labels"
+
+// PJ7 specific keys
+#define keyPrintSpeedOption @"Print Speed Option"
+#define keyRollCaseOption @"Roll Case Option"
+
+// PrintSettingsViewController specific keys
+#define keyBluetoothVCSearchSelectsSerialNumber @"Bluetooth Search Selects Serial Number"
+
+
+//*********************************************************************
+
+
+//*********************************************************************
+//*** Constant Enumerations
+// These are "common" to all printer models
+
+typedef enum
+{
+ // Currently supported printer models
+ // NOTE TO DEVELOPERS: Sometimes the order of the models defined here changes.
+ // While I probably *should* just add new models to the END of the list, instead I sometimes rearrange them
+ // so that they are grouped in a more meaningful way.
+ // Since save/loadPreferences SDK API uses a named key, that shouldn't cause you any problems if the enum changes.
+ // However, if your own app stores this value to preferences separately, I just realized that the value
+ // you saved from older SDK may no longer match the model enum value in a new SDK when you load it from prefs.
+ // As such, if you do store this in preferences,
+ // I recommend that you use **your own** defined enum values (or string values) for the "current model to use",
+ // rather than rely on these being the same with each new SDK release.
+ // If this affects your code in some way after you update to a new SDK, I apologize!!
+ kPrinterModelPJ673 = 1,
+ kPrinterModelPJ763MFi,
+ kPrinterModelPJ773,
+ kPrinterModelRJ4030Ai,
+ kPrinterModelRJ4040,
+ kPrinterModelRJ4230B,
+ kPrinterModelRJ4250WB,
+ kPrinterModelRJ3050,
+ kPrinterModelRJ3050Ai,
+ kPrinterModelRJ3150,
+ kPrinterModelRJ3150Ai,
+ kPrinterModelRJ2050,
+ kPrinterModelRJ2140,
+ kPrinterModelRJ2150,
+ kPrinterModelTD2120N,
+ kPrinterModelTD2130N,
+ kPrinterModelTD4550DNWB,
+
+} PRINTERMODEL;
+
+typedef enum
+{
+ kChannelTypeWIFI = 1,
+ kChannelTypeBluetooth,
+ kChannelTypeFile, // NOTE: When this is selected, SDK will create file "Output.prn" in the App Documents folder.
+} CHANNELTYPE;
+
+typedef enum
+{
+ kHalftoneThreshold = 1,
+ kHalftoneDiffusion,
+} HALFTONE;
+
+typedef enum
+{
+ kScaleModeActualSize = 1,
+ kScaleModeFitPage,
+ kScaleModeFitPageAspect,
+ kScaleModeFitWidthAspectAutoHeight,
+} SCALEMODE;
+
+typedef enum
+{
+ kOrientationPortrait = 1,
+ kOrientationLandscape90,
+ kOrientationPortrait180,
+ kOrientationLandscape270,
+} ORIENTATION;
+
+//*** The following enums are for properties defined in each subclass,
+// i.e. they are model-specific properties (at least as concerns the subset of values supported).
+// We define them here instead of in each subclass' header file so they can hold ALL of the
+// possible values for ALL models to avoid "redefinition of enumerator" compiler errors if we
+// attempt to use the same constant names in different enums within each subclass.
+// *** Each printer model is likely to support only a SUBSET of these values. ***
+// As such, we will handle limiting the available choices in the "setter" function for each
+// property in the appropriate PrintSettings subclass for each model.
+// Refer to the SDK Documentation for a list of values supported by each printer model.
+typedef enum
+{
+ kPaperSizeLetter=1,
+ kPaperSizeLegal,
+ kPaperSizeA4,
+ kPaperSizeCustom,
+} PAPERSIZE;
+
+typedef enum
+{
+ kPaperTypeRoll = 1, // unmarked roll, used by PJ, RJ, and TD
+ kPaperTypeCutsheet, // PJ only
+ kPaperTypePerfRoll, // marked roll, used by PJ, RJ, and TD
+ kPaperTypePerfRollRetract, // marked roll, with forced retraction, used by PJ only
+ kPaperTypeDieCutLabel, // label, used by RJ and TD only
+} PAPERTYPE;
+
+
+typedef enum
+{
+ kFormFeedModeNoFeed=1,
+ kFormFeedModeFixedPage,
+ kFormFeedModeEndOfPage,
+ kFormFeedModeEndOfPageRetract,
+} FORMFEEDMODE;
+
+typedef enum
+{
+ kDensity0 = 0, // start this one at 0 rather than 1. "stringFromDensity" in particular requires this.
+ kDensity1,
+ kDensity2,
+ kDensity3,
+ kDensity4,
+ kDensity5,
+ kDensity6,
+ kDensity7,
+ kDensity8,
+ kDensity9,
+ kDensity10,
+ kDensityUsePrinterSetting, // use value saved to printer, don't send command
+} DENSITY;
+
+// PJ-7 only
+typedef enum
+{
+ kRollCaseOption_None = 1,
+ kRollCaseOption_PARC001_NoAntiCurl,
+ kRollCaseOption_PARC001,
+ kRollCaseOption_UsePrinterSetting, // use value saved to printer, don't send command
+} ROLL_CASE_OPTION;
+
+// PJ-7 only
+typedef enum
+{
+ kPrintSpeedOption_65mmpersec = 1, // 2.5 ips
+ kPrintSpeedOption_48mmpersec, // 1.9 ips
+ kPrintSpeedOption_41mmpersec, // 1.6 ips
+ kPrintSpeedOption_27mmpersec, // 1.1 ips
+ kPrintSpeedOption_UsePrinterSetting, // use value saved to printer, don't send command
+} PRINT_SPEED_OPTION;
+
+//*********************************************************************
+
+
+//*********************************************************************
+//*** struct definitions
+
+// Arbitrarily limit the size (in dots) of each margin dimension to something rational.
+// These values are used when setting and validating the margins.
+#define MARGINDOTSMIN 0
+#define MARGINDOTSMAX 1000
+
+typedef struct
+{
+ int top;
+ int left;
+ int bottom;
+ int right;
+} MARGINS, *pMARGINS;
+//*********************************************************************
+
+
+@interface PrintSettings : NSObject
+{
+ // provide subclasses with access to READONLY properties via ivars.
+ // Because they are readonly, there is no "Setter" method available in the superclass.
+ // The subclasses should be the only place where these properties are set.
+ // But, they will be used in this superclass.
+ // Users of this superclass can read the values if desired, but in most cases this
+ // will not be necessary.
+ PRINTERMODEL _printerModel;
+
+ // provide subclasses with access to non-readonly ivars too, especially if subclass implements setter override.
+ CHANNELTYPE _channelType;
+
+}
+
+// NOTE: This superclass contains properties that will be common to all subclasses.
+
+// SDK Users: All of the properties below (and those in the PrintSettings subclasses)
+// are settable by you to change the printer behavior.
+// If you are not using the PrintSettingsViewController (either the SDK's or your own custom one),
+// then you should set each of these properties programmatically to your desired setting.
+
+@property (nonatomic, assign) CHANNELTYPE channelType;
+@property (nonatomic, retain) NSString *IPAddress;
+@property (nonatomic, assign) int IPPort;
+@property (nonatomic, retain) NSString *bluetoothDeviceNameOrSerialNumber;
+
+@property (nonatomic, assign) SCALEMODE scaleMode;
+@property (nonatomic, assign) ORIENTATION orientation;
+@property (nonatomic, assign) MARGINS marginDots;
+
+@property (nonatomic, assign) HALFTONE halftone;
+// INCREASE this value to make printout darker. Decrease to make it lighter. Default is 128.
+@property (nonatomic, assign) Byte threshold;
+@property (nonatomic, assign) BOOL compress;
+// NOTE: Added this property to allow inverting the print data (i.e. black<->white)
+// But, not adding this to the ViewController. It must be set programmatically.
+@property (nonatomic, assign) BOOL bInvert;
+
+//*** NOTE: The following properties are NOT used for printing,
+// but they are part of the PrintSettings superclass for convenience.
+
+// For save/loadPreferences, each subclass MUST set this during init.
+// NOTE: If desired, the caller can set this to be different from the default, so not using readonly attribute.
+@property (nonatomic, retain) NSString *preferencesKey;
+
+//*** The following properties are used ONLY by the PrintSettingsViewController(s)
+// They are specified here only to allow SDK-related preferences to be stored in their own container
+// along with the rest of the preferences.
+@property (nonatomic, assign) BOOL bBluetoothVCSearchSelectsSerialNumber;
+
+
+//*** READONLY properties. Values will be set by the subclass. SDK User can NOT change it.
+// printerModel may be useful if the subclass (e.g. PJ673PrintSettings) object instance is
+// stored inside the app using a superclass (e.g. PrintSettings) object reference.
+// This can be used to perform model-specific behavior in your app, if necessary.
+@property (readonly, nonatomic, assign) PRINTERMODEL printerModel;
+
+// *** PrintSettingsDelegate protocol
+// All subclasses of PrintSettings are required to implement these methods.
+// validatePrintSettings - This function assures that all properties are in range
+// and that there are no conflicting settings.
+- (BOOL) validatePrintSettings;
+- (void) loadPreferences;
+- (void) savePreferences;
+
+// These are only convenience methods, if needed. But, we need to assure that each
+// subclass (and/or the superclass) implements them by adding them to the protocol.
+
+//*** generate strings from CURRENT values of properties, for convenience
+- (NSString *)stringFromCurrentPaperType;
+- (NSString *)stringFromCurrentPaperSize;
+- (NSString *)stringFromCurrentFormFeedMode;
+- (NSString *)stringFromCurrentExtraFeed;
+- (NSString *)stringFromCurrentDensity;
+
+// NOTE: IPAddress is already an NSString so don't need an API function for it.
+// NOTE: bluetoothDeviceName is already an NSString so don't need an API function for it.
+- (NSString *)stringFromCurrentChannelType;
+- (NSString *)stringFromCurrentIPPort;
+- (NSString *)stringFromCurrentScaleMode;
+- (NSString *)stringFromCurrentOrientation;
+- (NSString *)stringFromCurrentMargins;
+- (NSString *)stringFromCurrentHalftone;
+- (NSString *)stringFromCurrentThreshold;
+- (NSString *)stringFromCurrentCompress;
+- (NSString *)stringFromCurrentInvert;
+- (NSString *)stringFromCurrentPrinterModel;
+// Strings for custom properties not included in the GenericXXX class.
+// PJ
+- (NSString *)stringFromCurrentRollCase;
+- (NSString *)stringFromCurrentPrintSpeed;
+// RJ/TD
+- (NSString *)stringFromCurrentCoolingDelayEnabled;
+- (NSString *)stringFromCurrentCutterOptions; // TD-4550DNWB only for now.
+
+
+//*** generate strings from SPECIFIC constants, for convenience
+// NOTE: IPAddress is already an NSString so don't need an API function for it.
+// NOTE: bluetoothDeviceName is already an NSString so don't need an API function for it.
+- (NSString *)stringFromChannelType:(CHANNELTYPE)channelType;
+- (NSString *)stringFromIPPort: (int)ipPort;
+- (NSString *)stringFromScaleMode:(SCALEMODE)scaleMode;
+- (NSString *)stringFromOrientation:(ORIENTATION)orientation;
+- (NSString *)stringFromMargins:(MARGINS)margins;
+- (NSString *)stringFromHalftone: (HALFTONE)halftone;
+- (NSString *)stringFromThreshold:(Byte)threshold;
+- (NSString *)stringFromBool: (BOOL)boolValue; // used with compress, invert
+- (NSString *)stringFromPrinterModel: (PRINTERMODEL)model;
+// Strings for custom properties not included in the GenericXXX class.
+// PJ
+- (NSString *)stringFromRollCase:(ROLL_CASE_OPTION)rollCaseOption;
+- (NSString *)stringFromPrintSpeed:(PRINT_SPEED_OPTION)printSpeedOption;
+// RJ/TD
+- (NSString *)stringFromCutEveryNLabels:(Byte)nLabels;
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/PrintSettingsViewController.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/PrintSettingsViewController.h
new file mode 100755
index 0000000..195a17b
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/PrintSettingsViewController.h
@@ -0,0 +1,203 @@
+//
+// PrintSettingsViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 8/8/12.
+// Copyright (c) 2012 Brother Mobile Solutions. All rights reserved.
+//
+// The PrintSettingsViewController class is the SUPERCLASS of each of the
+// model-specific view controller classes.
+//
+// You should NEVER instantiate an object of this superclass. Instead, instantiate
+// an object of the model-specific subclass, e.g. PJ673PrintSettingsViewController.
+
+#import
+#import "PrintSettings.h"
+
+// The following mask constants allow customizing the options available in the PrintSettingsViewController.
+// Combine these using the OR (|) operator to select only the options you want to be available.
+// Set these into the property named "showSettingsOptionMask".
+typedef enum
+{
+ // NOTE: Not all options will be available for all printer models.
+ // If an unsupported option is added to the mask, it will be ignored.
+
+ // Printer Connection Settings
+ kShowSettingsOption_ChannelType = 0x00000001,
+ kShowSettingsOption_IPAddress = 0x00000002,
+ kShowSettingsOption_Bluetooth = 0x00000004,
+ // Printer-specific settings
+ kShowSettingsOption_PaperSize = 0x00000008,
+ kShowSettingsOption_PaperType = 0x00000010,
+ kShowSettingsOption_FormFeedMode = 0x00000020,
+ kShowSettingsOption_ExtraFeed = 0x00000040,
+ kShowSettingsOption_Density = 0x00000080,
+ // General Settings
+ kShowSettingsOption_ScaleMode = 0x00000100,
+ kShowSettingsOption_Orientation = 0x00000200,
+ kShowSettingsOption_Margins = 0x00000400,
+ kShowSettingsOption_Halftone = 0x00000800,
+ kShowSettingsOption_Threshold = 0x00001000,
+ kShowSettingsOption_Invert = 0x00002000,
+
+ // PJ7 model-specific settings not handled by above options
+ kShowSettingsOption_RollCase = 0x00004000,
+ kShowSettingsOption_PrintSpeed = 0x00008000,
+
+ // RJ42 model-specific settings not handled by above options
+ // NOTE: This is now in genericMLM class, but only RJ42 seems to need it.
+ kShowSettingsOption_CoolingDelayEnabled = 0x00010000,
+
+ // TD-4550DNWB model-specific settings not handled by above options
+ kShowSettingsOption_Cutter = 0x00020000,
+
+ // ViewController Settings
+ // Normally, the TableView uses 3 sections. However, depending on the combination
+ // of settings added, it may look better with only a single section.
+ kShowSettingsOption_SingleSection = 0x80000000,
+
+} SETTINGS_OPTIONS_MASK;
+
+//*********************************************************************
+// PrintSettingsResponder PROTOCOL
+// NOTE: Perhaps a better way to implement this would be using NSNotificationCenter.
+// But, for now we will use with this approach.
+/*
+ A class that uses a PrintSettingsViewController is a PrintSettingsResponder.
+
+ You are required to do 3 things if you implement this protocol:
+ --------------------------------------------------------------
+ 1. Set the "printSettingsDelegate" property in the PrintSettingsViewController class
+ object in order to receive the printSettingsDidChange notification. Since
+ each PrintSettingsViewController implements the PrintSettingsSetter protocol, each
+ of the model-specific ViewControllers will have this property.
+
+ 2. Implement the printSettingsDidChange function.
+
+ 3. Implement the searchingForPrinterDidChange function.
+ This is a CRITICAL new callback method for apps that display PrintSettingsVC in a POPOVER control for iPad.
+ If user is searching for printers via the IPAddressViewController,
+
+ SDK Users:
+ ---------
+ You should implement this protocol if you choose to display any of the
+ model-specific PrintSettingsViewControllers built-in to the SDK, but only if you
+ care to be notified when any of the settings are changed by the controller,
+ -OR- (NEW) if you allow the Search feature to be available and you show the PrintSettingsVC
+ in a POPOVER control, to prevent the popover from being dismissed when search is active.
+
+ For example, you can allow the view controller to change the print settings,
+ and you can pass the new settings to the BMSPrinterDriver when you need to
+ use them. In this case, you do not need to implement this protocol.
+
+ However, you may want to "savePreferences" when any of the settings change,
+ as the SDK will not do this automatically. In this case, you do need to
+ implement this protocol to call the savePreferences API in your implementation
+ of the printSettingsDidChange API.
+ */
+//*********************************************************************
+@protocol PrintSettingsResponder
+- (void)printSettingsDidChange;
+- (void)searchingForPrinterDidChange:(BOOL)isSearching;
+@end
+
+
+//*********************************************************************
+// PrintSettingsSetter PROTOCOL
+/*
+ A ViewController that modifies print settings is a PrintSettingsSetter.
+ It will call the printSettingsDidChange function that will be implemented by the
+ object class specified in the printSettingsDelegate property, which is a
+ PrintSettingsResponder.
+ NOTE: It is OK to set this to "nil" if your class does not want to
+ be notified when the settings change.
+
+ This protocol is for SDK Designers only.
+ SDK Users do NOT need to implement this protocol.
+ */
+//*********************************************************************
+@protocol PrintSettingsSetter
+@property (assign, nonatomic) id printSettingsDelegate;
+@end
+
+
+//*********************************************************************
+// PrintSettingsViewController INTERFACE
+//
+// DO NOT INSTANTIATE an object of this class.
+// ALWAYS INSTANTIATE a model-specific object, e.g. PJ673PrintSettingsViewController.
+//
+// This is essentially an ABSTRACT class that does nothing on its own.
+//
+// NOTE: You can use a generic variable of the PrintSettingsViewController class to contain
+// the model-specific instantiation, and this reference which will have access to the
+// following properties/methods.
+//*********************************************************************
+@interface PrintSettingsViewController : UITableViewController
+{
+ // ivars needed during subclass init, defining here allows subclasses to access ivar directly without setter.
+ BOOL _showPrinterSearchButton;
+
+ // these two will combine constants defined by enum SETTINGS_OPTIONS_MASK
+ // They allow ISV to customize the setting options available in the ViewController
+ unsigned int _showSettingsOptionMask;
+ unsigned int _supportedOptions; // read only, specific for each printer model
+}
+
+//*** PrintSettingsSetter protocol
+@property (assign, nonatomic) id printSettingsDelegate;
+
+//*** PrintSettingsResponder protocol
+- (void)printSettingsDidChange;
+
+//*** The following properties are defined in this super-class so they are available
+// to an APP that stores the printer-specific object into a generic super-class object
+// and then wishes to modify these properties.
+@property (nonatomic, retain) PrintSettings *printSettings;
+
+// Allows SDK User to modify the default tableview properties
+@property (nonatomic, assign) CGSize popoverSize;
+@property (nonatomic, assign) int rowHeight;
+@property (nonatomic, assign) int fontSize;
+@property (nonatomic, assign) CGFloat section0HeaderSize;
+@property (nonatomic, assign) CGFloat otherSectionHeaderSize;
+@property (nonatomic, assign) CGFloat sectionFooterSize;
+
+
+
+//*** These 2 properties allow customizing the IPAddressHelpViewController.
+// * showIPAddressHelpButton is passed through to the IPAddressViewController to decide
+// whether to show the Help Button at all.
+// * IPAddressHelpFileName is passed thru to the IPAddressHelpViewController.
+// This allows SDK User to change the Help File displayed, if desired.
+// The file MUST be a "pdf" file (with lower-case file extension in the actual file),
+// and you MUST omit the ".pdf" from the filename specified in this property.
+@property (nonatomic, assign) BOOL showIPAddressHelpButton;
+@property (nonatomic, retain) NSString *IPAddressHelpFileName;
+
+// Allows SDK User to modify the settings options displayed in the tableview.
+// c.f. SETTINGS_OPTIONS_MASK enum for these two properties!
+@property (nonatomic, assign) unsigned int showSettingsOptionMask;
+// READONLY property. Value will be set by the subclass. SDK User can NOT change it.
+@property (readonly, nonatomic, assign) unsigned int supportedOptions;
+
+// By default, the Search button will be available on the IPAddressViewController for all models EXCEPT PJ673,
+// which does not support the search feature. This property allows SDK user to hide the search button if desired.
+// NOTE: This same property is used for the Search button on the BluetoothViewController too!!
+@property (nonatomic, assign) BOOL showPrinterSearchButton;
+// New in SDK 2.1.1. Default is YES, which means that an IPv6 address format will be returned by the
+// "IPAddress Search" instead of IPv4 format, but only if IPv6 address is available. It will only be
+// available when connected by Infrastructure Mode to an IPv6-only network, which is not a typical use mode.
+// If for some reason you don't want this behavior, i.e. you only want to see IPv4 formatted addresses,
+// this property is provided to allow you to override the default behavior. However, beware that Apple
+// **MAY** require the IPv6 format address, based on their new (June 1, 2016) IPv6 policy.
+@property (nonatomic, assign) BOOL showIPv6AddressIfAvailable;
+
+
+
+// NOTE: subclasses MUST set these in their init method to model-specific values
+@property (nonatomic, retain) NSString *mainTitle; // ViewController title
+@property (nonatomic, retain) NSString *section1Title; // main TableView section1 title
+
+@end
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ2050PrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ2050PrintSettings.h
new file mode 100755
index 0000000..9bd1978
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ2050PrintSettings.h
@@ -0,0 +1,81 @@
+//
+// RJ2050PrintSettings.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/6/16.
+// Copyright (c) 2016 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettings.h"
+
+
+@interface RJ2050PrintSettings : GenericMobileLabelModelPrintSettings
+
+// These definitions are provided for information only. DO NOT MODIFY!
+// spec section 4.3.1 Resolution
+#define RJ2050_RESOLUTION_HORZ 203
+#define RJ2050_RESOLUTION_VERT 203
+// spec section 4.3.6 Raster Line
+#define RJ2050_HEADSIZEDOTS 432
+// spec section "Select compression mode" command
+// NOTE: This should be same as HEADSIZEDOTS/8. And, it should be same as the # of decompressed bytes.
+#define RJ2050_MAX_COMPRESS_LENGTH 54
+
+// NOT in spec. *** Used Windows Printer Driver as reference ***
+// NOTE: MAXPAPERWIDTH DOES exceed HEADSIZEDOTS!!
+#define RJ2050_MIN_PAPERWIDTHDOTS (0.47F * RJ2050_RESOLUTION_HORZ) // 95
+#define RJ2050_MAX_PAPERWIDTHDOTS (2.28F * RJ2050_RESOLUTION_HORZ) // 462.
+// spec section 4.3.4 Maximum and Minimum Lengths
+#define RJ2050_MIN_PAPERLENGTHDOTS 96
+#define RJ2050_MAX_PAPERLENGTHDOTS 7992
+// spec section 4.3.3 Feed Amount
+#ifdef OLD
+// IMPORTANT NOTE: For LABEL papertype ONLY, we allow the MIN marginlengthdots to be set to 0.
+// That is, this MIN value here is ignored when papertype = label is specified.
+// Consider the case of a 1.0x0.5" label. A min margin of 0.12" will take up half of the printable length!!
+// This is why we will allow the margin to be set to 0 in this case.
+// Beware that some labels might clip the top if this is set to 0. But, other settings can be tweaked to
+// make it work (such as by setting a larger paperlength and setting the top margin to non-zero.)
+#define RJ2050_MIN_MARGINLENGTHDOTS 24
+
+#else
+// Allow 0 now for continuous roll too, as the Esc iUw command generated from this can affect AirPrint.
+// However, if this is 0, then the Esc id command will send 0 too. And, the printer may not eject the page
+// enough at the end. So, I am introducing the MIN_PAGEFEEDDOTS definition now, so that if current marginLengthDots
+// is LESS than MIN_PAGEFEEDDOTS, we will send Esc id command using the MIN_PAGEFEEDDOTS value instead.
+// Otherwise, the Esc id command will use the marginLengthDots value as it has in the past.
+//
+// NOTE: If this occurs, the final paper length after tear off will be up to 1/4" longer than the
+// specified paperLengthDots, because the print data will be (up to) the entire paper length, and then the
+// PAGEFEEDDOTS will be added to the final paper length. If you need a specific paperlength, then make sure
+// that marginLengthDots is >= MIN_PAGEFEEDDOTS.
+//
+#define RJ2050_MIN_MARGINLENGTHDOTS 0
+// v2.3.0 UPDATE: Instead of forcing this MIN_PAGEFEEDDOTS value on EVERY page, which essentially PREVENTS a "no gap"
+// solution if the FW actually supports it, now we only force it on the LAST page, allowing a 0-margin between pages
+// in case the FW allows it. But, we will force this on the LAST page, to assure the FW will eject the page to tear off
+// in case it doesn't automatically behave that way.
+#define RJ2050_MIN_PAGEFEEDDOTS_LASTPAGE 24
+
+#endif
+
+#define RJ2050_MAX_MARGINLENGTHDOTS 1015
+// Arbitrarily restrict extraFeed to 11" at 203 dpi. There is no reason to be larger.
+#define RJ2050_MAX_EXTRAFEEDDOTS (11*RJ2050_RESOLUTION_VERT)
+
+//*** IMPORTANT ***
+// SDK Users:
+// You should NEVER instantiate an object of the GenericMobileLabelModelPrintSettings class.
+// Instead, you should instantiate one of the model-specific subclasses (i.e. RJ2050PrintSettings).
+//
+// For a list of important properties in the settings that your application needs to set,
+// refer to the GenericMobileLabelModelPrintSettings superclass.
+
+// SDK Designers:
+// The GenericMobileLabelModelPrintSettings class handles all the important work.
+// This subclass only needs to provide the model-specific data to the generic class.
+
+//*** ADDITIONAL PROPERTIES not handled by GenericMobileLabelModelPrintSettings
+@property (nonatomic, assign) BOOL invert180degrees;
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ2050PrintSettingsViewController.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ2050PrintSettingsViewController.h
new file mode 100755
index 0000000..2ddb4b6
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ2050PrintSettingsViewController.h
@@ -0,0 +1,42 @@
+//
+// RJ2050PrintSettingsViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/6/16.
+// Copyright (c) 2016 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettingsViewController.h"
+#import "RJ2050PrintSettings.h"
+
+// This is the DEFAULT popup contentSize for RJ2050PrintSettingsViewController.
+//
+// You can override this by setting the "popoverSize" property (defined in the
+// PrintSettingsViewController superclass) to something different
+// before showing the ViewController.
+//
+// The popoverSize setting will be propagated to all of the "child" ViewControllers
+// of the main ViewController so all of the detail views will be the SAME size as each other.
+//
+// NOTE: iPad1 and iPad2 size = 1024 x 768, iPad3 = 2048 x 1536
+//#define RJ2050POPUPCONTENTSIZE CGSizeMake(400,480)
+#define RJ2050POPUPCONTENTSIZE CGSizeMake(400,548)
+#define RJ2050POPUPCONTENTSIZE_IOS7 CGSizeMake(400,588)
+
+
+/*
+ This class is a subclass of GenericMobileLabelModelPrintSettingsViewController,
+ which implements all the major functionality.
+
+ *** SDK Users:
+ DO NOT INSTANTIATE an instance of GenericMobileLabelModelPrintSettingsViewController.
+ Always instantiate a model-specific class, e.g. RJ2050PrintSettingsViewController
+ */
+
+@interface RJ2050PrintSettingsViewController : GenericMobileLabelModelPrintSettingsViewController
+{
+}
+
+@end
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ2140PrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ2140PrintSettings.h
new file mode 100755
index 0000000..cea6c11
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ2140PrintSettings.h
@@ -0,0 +1,81 @@
+//
+// RJ2140PrintSettings.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/6/16.
+// Copyright (c) 2016 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettings.h"
+
+
+@interface RJ2140PrintSettings : GenericMobileLabelModelPrintSettings
+
+// These definitions are provided for information only. DO NOT MODIFY!
+// spec section 4.3.1 Resolution
+#define RJ2140_RESOLUTION_HORZ 203
+#define RJ2140_RESOLUTION_VERT 203
+// spec section 4.3.6 Raster Line
+#define RJ2140_HEADSIZEDOTS 432
+// spec section "Select compression mode" command
+// NOTE: This should be same as HEADSIZEDOTS/8. And, it should be same as the # of decompressed bytes.
+#define RJ2140_MAX_COMPRESS_LENGTH 54
+
+// NOT in spec. *** Used Windows Printer Driver as reference ***
+// NOTE: MAXPAPERWIDTH DOES exceed HEADSIZEDOTS!!
+#define RJ2140_MIN_PAPERWIDTHDOTS (0.47F * RJ2140_RESOLUTION_HORZ) // 95
+#define RJ2140_MAX_PAPERWIDTHDOTS (2.28F * RJ2140_RESOLUTION_HORZ) // 462.
+// spec section 4.3.4 Maximum and Minimum Lengths
+#define RJ2140_MIN_PAPERLENGTHDOTS 96
+#define RJ2140_MAX_PAPERLENGTHDOTS 7992
+// spec section 4.3.3 Feed Amount
+#ifdef OLD
+// IMPORTANT NOTE: For LABEL papertype ONLY, we allow the MIN marginlengthdots to be set to 0.
+// That is, this MIN value here is ignored when papertype = label is specified.
+// Consider the case of a 1.0x0.5" label. A min margin of 0.12" will take up half of the printable length!!
+// This is why we will allow the margin to be set to 0 in this case.
+// Beware that some labels might clip the top if this is set to 0. But, other settings can be tweaked to
+// make it work (such as by setting a larger paperlength and setting the top margin to non-zero.)
+#define RJ2140_MIN_MARGINLENGTHDOTS 24
+
+#else
+// Allow 0 now for continuous roll too, as the Esc iUw command generated from this can affect AirPrint.
+// However, if this is 0, then the Esc id command will send 0 too. And, the printer may not eject the page
+// enough at the end. So, I am introducing the MIN_PAGEFEEDDOTS definition now, so that if current marginLengthDots
+// is LESS than MIN_PAGEFEEDDOTS, we will send Esc id command using the MIN_PAGEFEEDDOTS value instead.
+// Otherwise, the Esc id command will use the marginLengthDots value as it has in the past.
+//
+// NOTE: If this occurs, the final paper length after tear off will be up to 1/4" longer than the
+// specified paperLengthDots, because the print data will be (up to) the entire paper length, and then the
+// PAGEFEEDDOTS will be added to the final paper length. If you need a specific paperlength, then make sure
+// that marginLengthDots is >= MIN_PAGEFEEDDOTS.
+
+#define RJ2140_MIN_MARGINLENGTHDOTS 0
+// v2.3.0 UPDATE: Instead of forcing this MIN_PAGEFEEDDOTS value on EVERY page, which essentially PREVENTS a "no gap"
+// solution if the FW actually supports it, now we only force it on the LAST page, allowing a 0-margin between pages
+// in case the FW allows it. But, we will force this on the LAST page, to assure the FW will eject the page to tear off
+// in case it doesn't automatically behave that way.
+#define RJ2140_MIN_PAGEFEEDDOTS_LASTPAGE 24
+
+#endif
+
+#define RJ2140_MAX_MARGINLENGTHDOTS 1015
+// Arbitrarily restrict extraFeed to 11" at 203 dpi. There is no reason to be larger.
+#define RJ2140_MAX_EXTRAFEEDDOTS (11*RJ2140_RESOLUTION_VERT)
+
+//*** IMPORTANT ***
+// SDK Users:
+// You should NEVER instantiate an object of the GenericMobileLabelModelPrintSettings class.
+// Instead, you should instantiate one of the model-specific subclasses (i.e. RJ2140PrintSettings).
+//
+// For a list of important properties in the settings that your application needs to set,
+// refer to the GenericMobileLabelModelPrintSettings superclass.
+
+// SDK Designers:
+// The GenericMobileLabelModelPrintSettings class handles all the important work.
+// This subclass only needs to provide the model-specific data to the generic class.
+
+//*** ADDITIONAL PROPERTIES not handled by GenericMobileLabelModelPrintSettings
+@property (nonatomic, assign) BOOL invert180degrees;
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ2140PrintSettingsViewController.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ2140PrintSettingsViewController.h
new file mode 100755
index 0000000..b87f154
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ2140PrintSettingsViewController.h
@@ -0,0 +1,42 @@
+//
+// RJ2140PrintSettingsViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/6/16.
+// Copyright (c) 2016 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettingsViewController.h"
+#import "RJ2140PrintSettings.h"
+
+// This is the DEFAULT popup contentSize for RJ2140PrintSettingsViewController.
+//
+// You can override this by setting the "popoverSize" property (defined in the
+// PrintSettingsViewController superclass) to something different
+// before showing the ViewController.
+//
+// The popoverSize setting will be propagated to all of the "child" ViewControllers
+// of the main ViewController so all of the detail views will be the SAME size as each other.
+//
+// NOTE: iPad1 and iPad2 size = 1024 x 768, iPad3 = 2048 x 1536
+//#define RJ2140POPUPCONTENTSIZE CGSizeMake(400,480)
+#define RJ2140POPUPCONTENTSIZE CGSizeMake(400,548)
+#define RJ2140POPUPCONTENTSIZE_IOS7 CGSizeMake(400,588)
+
+
+/*
+ This class is a subclass of GenericMobileLabelModelPrintSettingsViewController,
+ which implements all the major functionality.
+
+ *** SDK Users:
+ DO NOT INSTANTIATE an instance of GenericMobileLabelModelPrintSettingsViewController.
+ Always instantiate a model-specific class, e.g. RJ2140PrintSettingsViewController
+ */
+
+@interface RJ2140PrintSettingsViewController : GenericMobileLabelModelPrintSettingsViewController
+{
+}
+
+@end
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ2150PrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ2150PrintSettings.h
new file mode 100755
index 0000000..f2b8afd
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ2150PrintSettings.h
@@ -0,0 +1,81 @@
+//
+// RJ2150PrintSettings.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/6/16.
+// Copyright (c) 2016 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettings.h"
+
+
+@interface RJ2150PrintSettings : GenericMobileLabelModelPrintSettings
+
+// These definitions are provided for information only. DO NOT MODIFY!
+// spec section 4.3.1 Resolution
+#define RJ2150_RESOLUTION_HORZ 203
+#define RJ2150_RESOLUTION_VERT 203
+// spec section 4.3.6 Raster Line
+#define RJ2150_HEADSIZEDOTS 432
+// spec section "Select compression mode" command
+// NOTE: This should be same as HEADSIZEDOTS/8. And, it should be same as the # of decompressed bytes.
+#define RJ2150_MAX_COMPRESS_LENGTH 54
+
+// NOT in spec. *** Used Windows Printer Driver as reference ***
+// NOTE: MAXPAPERWIDTH DOES exceed HEADSIZEDOTS!!
+#define RJ2150_MIN_PAPERWIDTHDOTS (0.47F * RJ2150_RESOLUTION_HORZ) // 95
+#define RJ2150_MAX_PAPERWIDTHDOTS (2.28F * RJ2150_RESOLUTION_HORZ) // 462.
+// spec section 4.3.4 Maximum and Minimum Lengths
+#define RJ2150_MIN_PAPERLENGTHDOTS 96
+#define RJ2150_MAX_PAPERLENGTHDOTS 7992
+// spec section 4.3.3 Feed Amount
+#ifdef OLD
+// IMPORTANT NOTE: For LABEL papertype ONLY, we allow the MIN marginlengthdots to be set to 0.
+// That is, this MIN value here is ignored when papertype = label is specified.
+// Consider the case of a 1.0x0.5" label. A min margin of 0.12" will take up half of the printable length!!
+// This is why we will allow the margin to be set to 0 in this case.
+// Beware that some labels might clip the top if this is set to 0. But, other settings can be tweaked to
+// make it work (such as by setting a larger paperlength and setting the top margin to non-zero.)
+#define RJ2150_MIN_MARGINLENGTHDOTS 24
+
+#else
+// Allow 0 now for continuous roll too, as the Esc iUw command generated from this can affect AirPrint.
+// However, if this is 0, then the Esc id command will send 0 too. And, the printer may not eject the page
+// enough at the end. So, I am introducing the MIN_PAGEFEEDDOTS definition now, so that if current marginLengthDots
+// is LESS than MIN_PAGEFEEDDOTS, we will send Esc id command using the MIN_PAGEFEEDDOTS value instead.
+// Otherwise, the Esc id command will use the marginLengthDots value as it has in the past.
+//
+// NOTE: If this occurs, the final paper length after tear off will be up to 1/4" longer than the
+// specified paperLengthDots, because the print data will be (up to) the entire paper length, and then the
+// PAGEFEEDDOTS will be added to the final paper length. If you need a specific paperlength, then make sure
+// that marginLengthDots is >= MIN_PAGEFEEDDOTS.
+
+#define RJ2150_MIN_MARGINLENGTHDOTS 0
+// v2.3.0 UPDATE: Instead of forcing this MIN_PAGEFEEDDOTS value on EVERY page, which essentially PREVENTS a "no gap"
+// solution if the FW actually supports it, now we only force it on the LAST page, allowing a 0-margin between pages
+// in case the FW allows it. But, we will force this on the LAST page, to assure the FW will eject the page to tear off
+// in case it doesn't automatically behave that way.
+#define RJ2150_MIN_PAGEFEEDDOTS_LASTPAGE 24
+
+#endif
+
+#define RJ2150_MAX_MARGINLENGTHDOTS 1015
+// Arbitrarily restrict extraFeed to 11" at 203 dpi. There is no reason to be larger.
+#define RJ2150_MAX_EXTRAFEEDDOTS (11*RJ2150_RESOLUTION_VERT)
+
+//*** IMPORTANT ***
+// SDK Users:
+// You should NEVER instantiate an object of the GenericMobileLabelModelPrintSettings class.
+// Instead, you should instantiate one of the model-specific subclasses (i.e. RJ2150PrintSettings).
+//
+// For a list of important properties in the settings that your application needs to set,
+// refer to the GenericMobileLabelModelPrintSettings superclass.
+
+// SDK Designers:
+// The GenericMobileLabelModelPrintSettings class handles all the important work.
+// This subclass only needs to provide the model-specific data to the generic class.
+
+//*** ADDITIONAL PROPERTIES not handled by GenericMobileLabelModelPrintSettings
+@property (nonatomic, assign) BOOL invert180degrees;
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ2150PrintSettingsViewController.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ2150PrintSettingsViewController.h
new file mode 100755
index 0000000..298653d
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ2150PrintSettingsViewController.h
@@ -0,0 +1,42 @@
+//
+// RJ2150PrintSettingsViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/6/16.
+// Copyright (c) 2016 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettingsViewController.h"
+#import "RJ2150PrintSettings.h"
+
+// This is the DEFAULT popup contentSize for RJ2150PrintSettingsViewController.
+//
+// You can override this by setting the "popoverSize" property (defined in the
+// PrintSettingsViewController superclass) to something different
+// before showing the ViewController.
+//
+// The popoverSize setting will be propagated to all of the "child" ViewControllers
+// of the main ViewController so all of the detail views will be the SAME size as each other.
+//
+// NOTE: iPad1 and iPad2 size = 1024 x 768, iPad3 = 2048 x 1536
+//#define RJ2150POPUPCONTENTSIZE CGSizeMake(400,480)
+#define RJ2150POPUPCONTENTSIZE CGSizeMake(400,548)
+#define RJ2150POPUPCONTENTSIZE_IOS7 CGSizeMake(400,588)
+
+
+/*
+ This class is a subclass of GenericMobileLabelModelPrintSettingsViewController,
+ which implements all the major functionality.
+
+ *** SDK Users:
+ DO NOT INSTANTIATE an instance of GenericMobileLabelModelPrintSettingsViewController.
+ Always instantiate a model-specific class, e.g. RJ2150PrintSettingsViewController
+ */
+
+@interface RJ2150PrintSettingsViewController : GenericMobileLabelModelPrintSettingsViewController
+{
+}
+
+@end
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ3050AIPrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ3050AIPrintSettings.h
new file mode 100755
index 0000000..bd79f9e
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ3050AIPrintSettings.h
@@ -0,0 +1,81 @@
+//
+// RJ3050AiPrintSettings.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/12/12.
+// Copyright (c) 2012 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettings.h"
+
+
+@interface RJ3050AiPrintSettings : GenericMobileLabelModelPrintSettings
+
+// These definitions are provided for information only. DO NOT MODIFY!
+// spec section 4.3.1 Resolution
+#define RJ3050Ai_RESOLUTION_HORZ 203
+#define RJ3050Ai_RESOLUTION_VERT 203
+// spec section 4.3.6 Raster Line
+#define RJ3050Ai_HEADSIZEDOTS 576
+// spec section "Select compression mode" command
+// NOTE: This should be same as HEADSIZEDOTS/8. And, it should be same as the # of decompressed bytes.
+#define RJ3050Ai_MAX_COMPRESS_LENGTH 72
+
+// NOT in spec. *** Used Windows Printer Driver as reference ***
+// NOTE: MAXPAPERWIDTH DOES exceed HEADSIZEDOTS!!
+#define RJ3050Ai_MIN_PAPERWIDTHDOTS (0.47F * RJ3050Ai_RESOLUTION_HORZ) // 95
+#define RJ3050Ai_MAX_PAPERWIDTHDOTS (3.15F * RJ3050Ai_RESOLUTION_HORZ) // 639.
+// spec section 4.3.4 Maximum and Minimum Lengths
+#define RJ3050Ai_MIN_PAPERLENGTHDOTS 96
+#define RJ3050Ai_MAX_PAPERLENGTHDOTS 7992
+// spec section 4.3.3 Feed Amount
+#ifdef OLD
+// IMPORTANT NOTE: For LABEL papertype ONLY, we allow the MIN marginlengthdots to be set to 0.
+// That is, this MIN value here is ignored when papertype = label is specified.
+// Consider the case of a 1.0x0.5" label. A min margin of 0.12" will take up half of the printable length!!
+// This is why we will allow the margin to be set to 0 in this case.
+// Beware that some labels might clip the top if this is set to 0. But, other settings can be tweaked to
+// make it work (such as by setting a larger paperlength and setting the top margin to non-zero.)
+#define RJ3050Ai_MIN_MARGINLENGTHDOTS 24
+
+#else
+// Allow 0 now for continuous roll too, as the Esc iUw command generated from this can affect AirPrint.
+// However, if this is 0, then the Esc id command will send 0 too. And, the printer may not eject the page
+// enough at the end. So, I am introducing the MIN_PAGEFEEDDOTS definition now, so that if current marginLengthDots
+// is LESS than MIN_PAGEFEEDDOTS, we will send Esc id command using the MIN_PAGEFEEDDOTS value instead.
+// Otherwise, the Esc id command will use the marginLengthDots value as it has in the past.
+//
+// NOTE: If this occurs, the final paper length after tear off will be up to 1/4" longer than the
+// specified paperLengthDots, because the print data will be (up to) the entire paper length, and then the
+// PAGEFEEDDOTS will be added to the final paper length. If you need a specific paperlength, then make sure
+// that marginLengthDots is >= MIN_PAGEFEEDDOTS.
+
+#define RJ3050Ai_MIN_MARGINLENGTHDOTS 0
+// v2.3.0 UPDATE: Instead of forcing this MIN_PAGEFEEDDOTS value on EVERY page, which essentially PREVENTS a "no gap"
+// solution if the FW actually supports it, now we only force it on the LAST page, allowing a 0-margin between pages
+// in case the FW allows it. But, we will force this on the LAST page, to assure the FW will eject the page to tear off
+// in case it doesn't automatically behave that way.
+#define RJ3050Ai_MIN_PAGEFEEDDOTS_LASTPAGE 24
+
+#endif
+
+#define RJ3050Ai_MAX_MARGINLENGTHDOTS 1015
+// Arbitrarily restrict extraFeed to 11" at 203 dpi. There is no reason to be larger.
+#define RJ3050Ai_MAX_EXTRAFEEDDOTS (11*RJ3050Ai_RESOLUTION_VERT)
+
+//*** IMPORTANT ***
+// SDK Users:
+// You should NEVER instantiate an object of the GenericMobileLabelModelPrintSettings class.
+// Instead, you should instantiate one of the model-specific subclasses (i.e. RJ3050AiPrintSettings).
+//
+// For a list of important properties in the settings that your application needs to set,
+// refer to the GenericMobileLabelModelPrintSettings superclass.
+
+// SDK Designers:
+// The GenericMobileLabelModelPrintSettings class handles all the important work.
+// This subclass only needs to provide the model-specific data to the generic class.
+
+//*** ADDITIONAL PROPERTIES not handled by GenericMobileLabelModelPrintSettings
+@property (nonatomic, assign) BOOL invert180degrees;
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ3050AiPrintSettingsViewController.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ3050AiPrintSettingsViewController.h
new file mode 100755
index 0000000..bf9f35a
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ3050AiPrintSettingsViewController.h
@@ -0,0 +1,42 @@
+//
+// RJ3050AiPrintSettingsViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 1/30/13.
+// Copyright (c) 2013 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettingsViewController.h"
+#import "RJ3050AiPrintSettings.h"
+
+// This is the DEFAULT popup contentSize for RJ3050AiPrintSettingsViewController.
+//
+// You can override this by setting the "popoverSize" property (defined in the
+// PrintSettingsViewController superclass) to something different
+// before showing the ViewController.
+//
+// The popoverSize setting will be propagated to all of the "child" ViewControllers
+// of the main ViewController so all of the detail views will be the SAME size as each other.
+//
+// NOTE: iPad1 and iPad2 size = 1024 x 768, iPad3 = 2048 x 1536
+//#define RJ3050AiPOPUPCONTENTSIZE CGSizeMake(400,480)
+#define RJ3050AiPOPUPCONTENTSIZE CGSizeMake(400,548)
+#define RJ3050AiPOPUPCONTENTSIZE_IOS7 CGSizeMake(400,588)
+
+
+/*
+ This class is a subclass of GenericMobileLabelModelPrintSettingsViewController,
+ which implements all the major functionality.
+
+ *** SDK Users:
+ DO NOT INSTANTIATE an instance of GenericMobileLabelModelPrintSettingsViewController.
+ Always instantiate a model-specific class, e.g. RJ3050AiPrintSettingsViewController
+ */
+
+@interface RJ3050AiPrintSettingsViewController : GenericMobileLabelModelPrintSettingsViewController
+{
+}
+
+@end
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ3050PrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ3050PrintSettings.h
new file mode 100755
index 0000000..e8fbaf4
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ3050PrintSettings.h
@@ -0,0 +1,81 @@
+//
+// RJ3050PrintSettings.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/12/12.
+// Copyright (c) 2012 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettings.h"
+
+
+@interface RJ3050PrintSettings : GenericMobileLabelModelPrintSettings
+
+// These definitions are provided for information only. DO NOT MODIFY!
+// spec section 4.3.1 Resolution
+#define RJ3050_RESOLUTION_HORZ 203
+#define RJ3050_RESOLUTION_VERT 203
+// spec section 4.3.6 Raster Line
+#define RJ3050_HEADSIZEDOTS 576
+// spec section "Select compression mode" command
+// NOTE: This should be same as HEADSIZEDOTS/8. And, it should be same as the # of decompressed bytes.
+#define RJ3050_MAX_COMPRESS_LENGTH 72
+
+// NOT in spec. *** Used Windows Printer Driver as reference ***
+// NOTE: MAXPAPERWIDTH DOES exceed HEADSIZEDOTS!!
+#define RJ3050_MIN_PAPERWIDTHDOTS (0.47F * RJ3050_RESOLUTION_HORZ) // 95
+#define RJ3050_MAX_PAPERWIDTHDOTS (3.15F * RJ3050_RESOLUTION_HORZ) // 639.
+// spec section 4.3.4 Maximum and Minimum Lengths
+#define RJ3050_MIN_PAPERLENGTHDOTS 96
+#define RJ3050_MAX_PAPERLENGTHDOTS 7992
+// spec section 4.3.3 Feed Amount
+#ifdef OLD
+// IMPORTANT NOTE: For LABEL papertype ONLY, we allow the MIN marginlengthdots to be set to 0.
+// That is, this MIN value here is ignored when papertype = label is specified.
+// Consider the case of a 1.0x0.5" label. A min margin of 0.12" will take up half of the printable length!!
+// This is why we will allow the margin to be set to 0 in this case.
+// Beware that some labels might clip the top if this is set to 0. But, other settings can be tweaked to
+// make it work (such as by setting a larger paperlength and setting the top margin to non-zero.)
+#define RJ3050_MIN_MARGINLENGTHDOTS 24
+
+#else
+// Allow 0 now for continuous roll too, as the Esc iUw command generated from this can affect AirPrint.
+// However, if this is 0, then the Esc id command will send 0 too. And, the printer may not eject the page
+// enough at the end. So, I am introducing the MIN_PAGEFEEDDOTS definition now, so that if current marginLengthDots
+// is LESS than MIN_PAGEFEEDDOTS, we will send Esc id command using the MIN_PAGEFEEDDOTS value instead.
+// Otherwise, the Esc id command will use the marginLengthDots value as it has in the past.
+//
+// NOTE: If this occurs, the final paper length after tear off will be up to 1/4" longer than the
+// specified paperLengthDots, because the print data will be (up to) the entire paper length, and then the
+// PAGEFEEDDOTS will be added to the final paper length. If you need a specific paperlength, then make sure
+// that marginLengthDots is >= MIN_PAGEFEEDDOTS.
+
+#define RJ3050_MIN_MARGINLENGTHDOTS 0
+// v2.3.0 UPDATE: Instead of forcing this MIN_PAGEFEEDDOTS value on EVERY page, which essentially PREVENTS a "no gap"
+// solution if the FW actually supports it, now we only force it on the LAST page, allowing a 0-margin between pages
+// in case the FW allows it. But, we will force this on the LAST page, to assure the FW will eject the page to tear off
+// in case it doesn't automatically behave that way.
+#define RJ3050_MIN_PAGEFEEDDOTS_LASTPAGE 24
+
+#endif
+
+#define RJ3050_MAX_MARGINLENGTHDOTS 1015
+// Arbitrarily restrict extraFeed to 11" at 203 dpi. There is no reason to be larger.
+#define RJ3050_MAX_EXTRAFEEDDOTS (11*RJ3050_RESOLUTION_VERT)
+
+//*** IMPORTANT ***
+// SDK Users:
+// You should NEVER instantiate an object of the GenericMobileLabelModelPrintSettings class.
+// Instead, you should instantiate one of the model-specific subclasses (i.e. RJ3050PrintSettings).
+//
+// For a list of important properties in the settings that your application needs to set,
+// refer to the GenericMobileLabelModelPrintSettings superclass.
+
+// SDK Designers:
+// The GenericMobileLabelModelPrintSettings class handles all the important work.
+// This subclass only needs to provide the model-specific data to the generic class.
+
+//*** ADDITIONAL PROPERTIES not handled by GenericMobileLabelModelPrintSettings
+@property (nonatomic, assign) BOOL invert180degrees;
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ3050PrintSettingsViewController.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ3050PrintSettingsViewController.h
new file mode 100755
index 0000000..03b69fb
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ3050PrintSettingsViewController.h
@@ -0,0 +1,42 @@
+//
+// RJ3050PrintSettingsViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 1/30/13.
+// Copyright (c) 2013 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettingsViewController.h"
+#import "RJ3050PrintSettings.h"
+
+// This is the DEFAULT popup contentSize for RJ3050PrintSettingsViewController.
+//
+// You can override this by setting the "popoverSize" property (defined in the
+// PrintSettingsViewController superclass) to something different
+// before showing the ViewController.
+//
+// The popoverSize setting will be propagated to all of the "child" ViewControllers
+// of the main ViewController so all of the detail views will be the SAME size as each other.
+//
+// NOTE: iPad1 and iPad2 size = 1024 x 768, iPad3 = 2048 x 1536
+//#define RJ3050POPUPCONTENTSIZE CGSizeMake(400,480)
+#define RJ3050POPUPCONTENTSIZE CGSizeMake(400,548)
+#define RJ3050POPUPCONTENTSIZE_IOS7 CGSizeMake(400,588)
+
+
+/*
+ This class is a subclass of GenericMobileLabelModelPrintSettingsViewController,
+ which implements all the major functionality.
+
+ *** SDK Users:
+ DO NOT INSTANTIATE an instance of GenericMobileLabelModelPrintSettingsViewController.
+ Always instantiate a model-specific class, e.g. RJ3050PrintSettingsViewController
+ */
+
+@interface RJ3050PrintSettingsViewController : GenericMobileLabelModelPrintSettingsViewController
+{
+}
+
+@end
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ3150AiPrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ3150AiPrintSettings.h
new file mode 100755
index 0000000..9fb1a8a
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ3150AiPrintSettings.h
@@ -0,0 +1,82 @@
+//
+// RJ3150AiPrintSettings.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/12/12.
+// Copyright (c) 2012 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettings.h"
+
+
+@interface RJ3150AiPrintSettings : GenericMobileLabelModelPrintSettings
+
+// These definitions are provided for information only. DO NOT MODIFY!
+// spec section 4.3.1 Resolution
+#define RJ3150Ai_RESOLUTION_HORZ 203
+#define RJ3150Ai_RESOLUTION_VERT 203
+// spec section 4.3.6 Raster Line
+#define RJ3150Ai_HEADSIZEDOTS 576
+// spec section "Select compression mode" command
+// NOTE: This should be same as HEADSIZEDOTS/8. And, it should be same as the # of decompressed bytes.
+#define RJ3150Ai_MAX_COMPRESS_LENGTH 72
+
+// NOT in spec. *** Used Windows Printer Driver as reference ***
+// NOTE: MAXPAPERWIDTH DOES exceed HEADSIZEDOTS!!
+#define RJ3150Ai_MIN_PAPERWIDTHDOTS (0.47F * RJ3150Ai_RESOLUTION_HORZ) // 95
+#define RJ3150Ai_MAX_PAPERWIDTHDOTS (3.15F * RJ3150Ai_RESOLUTION_HORZ) // 639.
+// spec section 4.3.4 Maximum and Minimum Lengths
+#define RJ3150Ai_MIN_PAPERLENGTHDOTS 96
+#define RJ3150Ai_MAX_PAPERLENGTHDOTS 7992
+// spec section 4.3.3 Feed Amount
+#ifdef OLD
+// IMPORTANT NOTE: For LABEL papertype ONLY, we allow the MIN marginlengthdots to be set to 0.
+// That is, this MIN value here is ignored when papertype = label is specified.
+// Consider the case of a 1.0x0.5" label. A min margin of 0.12" will take up half of the printable length!!
+// This is why we will allow the margin to be set to 0 in this case.
+// Beware that some labels might clip the top if this is set to 0. But, other settings can be tweaked to
+// make it work (such as by setting a larger paperlength and setting the top margin to non-zero.)
+#define RJ3150Ai_MIN_MARGINLENGTHDOTS 24
+
+#else
+// Allow 0 now for continuous roll too, as the Esc iUw command generated from this can affect AirPrint.
+// However, if this is 0, then the Esc id command will send 0 too. And, the printer may not eject the page
+// enough at the end. So, I am introducing the MIN_PAGEFEEDDOTS definition now, so that if current marginLengthDots
+// is LESS than MIN_PAGEFEEDDOTS, we will send Esc id command using the MIN_PAGEFEEDDOTS value instead.
+// Otherwise, the Esc id command will use the marginLengthDots value as it has in the past.
+//
+// NOTE: If this occurs, the final paper length after tear off will be up to 1/4" longer than the
+// specified paperLengthDots, because the print data will be (up to) the entire paper length, and then the
+// PAGEFEEDDOTS will be added to the final paper length. If you need a specific paperlength, then make sure
+// that marginLengthDots is >= MIN_PAGEFEEDDOTS.
+
+#define RJ3150Ai_MIN_MARGINLENGTHDOTS 0
+// v2.3.0 UPDATE: Instead of forcing this MIN_PAGEFEEDDOTS value on EVERY page, which essentially PREVENTS a "no gap"
+// solution if the FW actually supports it, now we only force it on the LAST page, allowing a 0-margin between pages
+// in case the FW allows it. But, we will force this on the LAST page, to assure the FW will eject the page to tear off
+// in case it doesn't automatically behave that way.
+#define RJ3150Ai_MIN_PAGEFEEDDOTS_LASTPAGE 24
+
+#endif
+
+#define RJ3150Ai_MAX_MARGINLENGTHDOTS 1015
+// Arbitrarily restrict extraFeed to 11" at 203 dpi. There is no reason to be larger.
+#define RJ3150Ai_MAX_EXTRAFEEDDOTS (11*RJ3150Ai_RESOLUTION_VERT)
+
+//*** IMPORTANT ***
+// SDK Users:
+// You should NEVER instantiate an object of the GenericMobileLabelModelPrintSettings class.
+// Instead, you should instantiate one of the model-specific subclasses (i.e. RJ3150AiPrintSettings).
+//
+// For a list of important properties in the settings that your application needs to set,
+// refer to the GenericMobileLabelModelPrintSettings superclass.
+
+// SDK Designers:
+// The GenericMobileLabelModelPrintSettings class handles all the important work.
+// This subclass only needs to provide the model-specific data to the generic class.
+
+//*** ADDITIONAL PROPERTIES not handled by GenericMobileLabelModelPrintSettings
+@property (nonatomic, assign) BOOL peelerEnabled;
+@property (nonatomic, assign) BOOL invert180degrees;
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ3150AiPrintSettingsViewController.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ3150AiPrintSettingsViewController.h
new file mode 100755
index 0000000..b74f14e
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ3150AiPrintSettingsViewController.h
@@ -0,0 +1,42 @@
+//
+// RJ3150AiPrintSettingsViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 1/30/13.
+// Copyright (c) 2013 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettingsViewController.h"
+#import "RJ3150AiPrintSettings.h"
+
+// This is the DEFAULT popup contentSize for RJ3150AiPrintSettingsViewController.
+//
+// You can override this by setting the "popoverSize" property (defined in the
+// PrintSettingsViewController superclass) to something different
+// before showing the ViewController.
+//
+// The popoverSize setting will be propagated to all of the "child" ViewControllers
+// of the main ViewController so all of the detail views will be the SAME size as each other.
+//
+// NOTE: iPad1 and iPad2 size = 1024 x 768, iPad3 = 2048 x 1536
+//#define RJ3150AiPOPUPCONTENTSIZE CGSizeMake(400,480)
+#define RJ3150AiPOPUPCONTENTSIZE CGSizeMake(400,548)
+#define RJ3150AiPOPUPCONTENTSIZE_IOS7 CGSizeMake(400,588)
+
+
+/*
+ This class is a subclass of GenericMobileLabelModelPrintSettingsViewController,
+ which implements all the major functionality.
+
+ *** SDK Users:
+ DO NOT INSTANTIATE an instance of GenericMobileLabelModelPrintSettingsViewController.
+ Always instantiate a model-specific class, e.g. RJ3150AiPrintSettingsViewController
+ */
+
+@interface RJ3150AiPrintSettingsViewController : GenericMobileLabelModelPrintSettingsViewController
+{
+}
+
+@end
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ3150PrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ3150PrintSettings.h
new file mode 100755
index 0000000..561e7c0
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ3150PrintSettings.h
@@ -0,0 +1,82 @@
+//
+// RJ3150PrintSettings.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/12/12.
+// Copyright (c) 2012 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettings.h"
+
+
+@interface RJ3150PrintSettings : GenericMobileLabelModelPrintSettings
+
+// These definitions are provided for information only. DO NOT MODIFY!
+// spec section 4.3.1 Resolution
+#define RJ3150_RESOLUTION_HORZ 203
+#define RJ3150_RESOLUTION_VERT 203
+// spec section 4.3.6 Raster Line
+#define RJ3150_HEADSIZEDOTS 576
+// spec section "Select compression mode" command
+// NOTE: This should be same as HEADSIZEDOTS/8. And, it should be same as the # of decompressed bytes.
+#define RJ3150_MAX_COMPRESS_LENGTH 72
+
+// NOT in spec. *** Used Windows Printer Driver as reference ***
+// NOTE: MAXPAPERWIDTH DOES exceed HEADSIZEDOTS!!
+#define RJ3150_MIN_PAPERWIDTHDOTS (0.47F * RJ3150_RESOLUTION_HORZ) // 95
+#define RJ3150_MAX_PAPERWIDTHDOTS (3.15F * RJ3150_RESOLUTION_HORZ) // 639.
+// spec section 4.3.4 Maximum and Minimum Lengths
+#define RJ3150_MIN_PAPERLENGTHDOTS 96
+#define RJ3150_MAX_PAPERLENGTHDOTS 7992
+// spec section 4.3.3 Feed Amount
+#ifdef OLD
+// IMPORTANT NOTE: For LABEL papertype ONLY, we allow the MIN marginlengthdots to be set to 0.
+// That is, this MIN value here is ignored when papertype = label is specified.
+// Consider the case of a 1.0x0.5" label. A min margin of 0.12" will take up half of the printable length!!
+// This is why we will allow the margin to be set to 0 in this case.
+// Beware that some labels might clip the top if this is set to 0. But, other settings can be tweaked to
+// make it work (such as by setting a larger paperlength and setting the top margin to non-zero.)
+#define RJ3150_MIN_MARGINLENGTHDOTS 24
+
+#else
+// Allow 0 now for continuous roll too, as the Esc iUw command generated from this can affect AirPrint.
+// However, if this is 0, then the Esc id command will send 0 too. And, the printer may not eject the page
+// enough at the end. So, I am introducing the MIN_PAGEFEEDDOTS definition now, so that if current marginLengthDots
+// is LESS than MIN_PAGEFEEDDOTS, we will send Esc id command using the MIN_PAGEFEEDDOTS value instead.
+// Otherwise, the Esc id command will use the marginLengthDots value as it has in the past.
+//
+// NOTE: If this occurs, the final paper length after tear off will be up to 1/4" longer than the
+// specified paperLengthDots, because the print data will be (up to) the entire paper length, and then the
+// PAGEFEEDDOTS will be added to the final paper length. If you need a specific paperlength, then make sure
+// that marginLengthDots is >= MIN_PAGEFEEDDOTS.
+
+#define RJ3150_MIN_MARGINLENGTHDOTS 0
+// v2.3.0 UPDATE: Instead of forcing this MIN_PAGEFEEDDOTS value on EVERY page, which essentially PREVENTS a "no gap"
+// solution if the FW actually supports it, now we only force it on the LAST page, allowing a 0-margin between pages
+// in case the FW allows it. But, we will force this on the LAST page, to assure the FW will eject the page to tear off
+// in case it doesn't automatically behave that way.
+#define RJ3150_MIN_PAGEFEEDDOTS_LASTPAGE 24
+
+#endif
+
+#define RJ3150_MAX_MARGINLENGTHDOTS 1015
+// Arbitrarily restrict extraFeed to 11" at 203 dpi. There is no reason to be larger.
+#define RJ3150_MAX_EXTRAFEEDDOTS (11*RJ3150_RESOLUTION_VERT)
+
+//*** IMPORTANT ***
+// SDK Users:
+// You should NEVER instantiate an object of the GenericMobileLabelModelPrintSettings class.
+// Instead, you should instantiate one of the model-specific subclasses (i.e. RJ3150PrintSettings).
+//
+// For a list of important properties in the settings that your application needs to set,
+// refer to the GenericMobileLabelModelPrintSettings superclass.
+
+// SDK Designers:
+// The GenericMobileLabelModelPrintSettings class handles all the important work.
+// This subclass only needs to provide the model-specific data to the generic class.
+
+//*** ADDITIONAL PROPERTIES not handled by GenericMobileLabelModelPrintSettings
+@property (nonatomic, assign) BOOL peelerEnabled;
+@property (nonatomic, assign) BOOL invert180degrees;
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ3150PrintSettingsViewController.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ3150PrintSettingsViewController.h
new file mode 100755
index 0000000..5790717
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ3150PrintSettingsViewController.h
@@ -0,0 +1,42 @@
+//
+// RJ3150PrintSettingsViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 1/30/13.
+// Copyright (c) 2013 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettingsViewController.h"
+#import "RJ3150PrintSettings.h"
+
+// This is the DEFAULT popup contentSize for RJ3150PrintSettingsViewController.
+//
+// You can override this by setting the "popoverSize" property (defined in the
+// PrintSettingsViewController superclass) to something different
+// before showing the ViewController.
+//
+// The popoverSize setting will be propagated to all of the "child" ViewControllers
+// of the main ViewController so all of the detail views will be the SAME size as each other.
+//
+// NOTE: iPad1 and iPad2 size = 1024 x 768, iPad3 = 2048 x 1536
+//#define RJ3150POPUPCONTENTSIZE CGSizeMake(400,480)
+#define RJ3150POPUPCONTENTSIZE CGSizeMake(400,548)
+#define RJ3150POPUPCONTENTSIZE_IOS7 CGSizeMake(400,588)
+
+
+/*
+ This class is a subclass of GenericMobileLabelModelPrintSettingsViewController,
+ which implements all the major functionality.
+
+ *** SDK Users:
+ DO NOT INSTANTIATE an instance of GenericMobileLabelModelPrintSettingsViewController.
+ Always instantiate a model-specific class, e.g. RJ3150PrintSettingsViewController
+ */
+
+@interface RJ3150PrintSettingsViewController : GenericMobileLabelModelPrintSettingsViewController
+{
+}
+
+@end
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ4030AiPrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ4030AiPrintSettings.h
new file mode 100755
index 0000000..2000e01
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ4030AiPrintSettings.h
@@ -0,0 +1,103 @@
+//
+// RJ4030AiPrintSettings.h
+// BMSPrinterKit
+//
+// Created by BMS on 2/9/16.
+// Copyright (c) 2012 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettings.h"
+
+
+@interface RJ4030AiPrintSettings : GenericMobileLabelModelPrintSettings
+
+// These definitions are provided for information only. DO NOT MODIFY!
+// spec section 2.3.1 Resolution
+#define RJ4030Ai_RESOLUTION_HORZ 203
+#define RJ4030Ai_RESOLUTION_VERT 203
+// spec section 2.3.5 Raster Line
+#define RJ4030Ai_HEADSIZEDOTS 832
+// spec section "Select compression mode" command
+// NOTE: This should be same as HEADSIZEDOTS/8. And, it should be same as the # of decompressed bytes.
+// NOTE: Previously, this was 162. But, it appears to be an error in the English Command Ref Guide.
+#define RJ4030Ai_MAX_COMPRESS_LENGTH 104
+
+//////////////////////////////////////////////
+// MIN/MAX PAPERWIDTH values are not in spec.
+// Used Windows Printer Driver as reference (which allows 0.47" min and 4.09" max).
+//
+// v1.1.1 UPDATE: According to Ann, MAX_PAPERWIDTH can actually be 4.64" instead of 4.09".
+// However, the printable width can not exceed 832 dots, so setting the paperWidthDots larger than 4.09"
+// will result in the marginWidthDots being increased automatically, but subsequently reducing paperWidthDots
+// will not automatically result in marginWidthDots being decreased back to its previous value.
+// This can be demonstrated using the PrintSettingsViewController.
+//
+// If someone actually has paper that is 4.64" wide, the printed result will NOT BE ANY DIFFERENT whether
+// we allow 4.09" or 4.64" here, because in either case we can't use more than 832 dots, and this will be
+// centered automatically on the wider paper. So, there is no reason to allow 4.64" wide here, since doing so
+// potentially introduces the issue related to marginWidthDots mentioned above.
+// So, let's leave MAX_PAPERWIDTHDOTS at 832 rather than change to (4.64F * RJ4030Ai_RESOLUTION_HORZ)
+//
+// UPDATE2: According to Ann, MIN_PAPERWIDTH is actually 2.00" rather than 0.47".
+// However, in case for some reason someone actually has narrower paper, let's not force this 2" restriction.
+// So, we will keep this value the same as before as well.
+//
+// NOTE: MAXPAPERWIDTH does NOT exceed HEADSIZEDOTS!! (refer to v1.1.1 UPDATE discussion above. This comment
+// here is only relevant in comparison to RJ3 and TD2 models, which are still allowing paper width to EXCEED
+// the headsize, though perhaps we shouldn't allow this for the other models either.)
+#define RJ4030Ai_MIN_PAPERWIDTHDOTS (0.47F * RJ4030Ai_RESOLUTION_HORZ) // 95, was using 203 in 0.9 SDK
+#define RJ4030Ai_MAX_PAPERWIDTHDOTS 832 // NOTE: WinDriver allows 4.09", which is ~832.
+//////////////////////////////////////////////
+
+// spec section 2.3.4 Maximum and Minimum Lengths
+#define RJ4030Ai_MIN_PAPERLENGTHDOTS 203 // NOTE: spec says 204 dots, but 203 seems OK.
+#define RJ4030Ai_MAX_PAPERLENGTHDOTS 24094
+// spec section 2.3.3 Feed Amount
+#ifdef OLD
+// IMPORTANT NOTE: For LABEL papertype ONLY, we allow the MIN marginlengthdots to be set to 0.
+// That is, this MIN value here is ignored when papertype = label is specified.
+// Consider the case of a 1.0x0.5" label. A min margin of 0.12" will take up half of the printable length!!
+// This is why we will allow the margin to be set to 0 in this case.
+// Beware that some labels might clip the top if this is set to 0. But, other settings can be tweaked to
+// make it work (such as by setting a larger paperlength and setting the top margin to non-zero.)
+#define RJ4030Ai_MIN_MARGINLENGTHDOTS 24
+
+#else
+// Allow 0 now for continuous roll too, as the Esc iUw command generated from this can affect AirPrint.
+// (Of course, AirPrint is N/A for the Bluetooth model. But, I am changing this so it behaves consistently.)
+// However, if this is 0, then the Esc id command will send 0 too. And, the printer may not eject the page
+// enough at the end. So, I am introducing the MIN_PAGEFEEDDOTS definition now, so that if current marginLengthDots
+// is LESS than MIN_PAGEFEEDDOTS, we will send Esc id command using the MIN_PAGEFEEDDOTS value instead.
+// Otherwise, the Esc id command will use the marginLengthDots value as it has in the past.
+//
+// NOTE: If this occurs, the final paper length after tear off will be up to 1/4" longer than the
+// specified paperLengthDots, because the print data will be (up to) the entire paper length, and then the
+// PAGEFEEDDOTS will be added to the final paper length. If you need a specific paperlength, then make sure
+// that marginLengthDots is >= MIN_PAGEFEEDDOTS.
+
+#define RJ4030Ai_MIN_MARGINLENGTHDOTS 0
+// v2.3.0 UPDATE: Instead of forcing this MIN_PAGEFEEDDOTS value on EVERY page, which essentially PREVENTS a "no gap"
+// solution if the FW actually supports it, now we only force it on the LAST page, allowing a 0-margin between pages
+// in case the FW allows it. But, we will force this on the LAST page, to assure the FW will eject the page to tear off
+// in case it doesn't automatically behave that way.
+#define RJ4030Ai_MIN_PAGEFEEDDOTS_LASTPAGE 24
+
+#endif
+
+#define RJ4030Ai_MAX_MARGINLENGTHDOTS 1020 // NOTE: was using 1015 in 0.9 SDK
+// Arbitrarily restrict extraFeed to 11" at 203 dpi. There is no reason to be larger.
+#define RJ4030Ai_MAX_EXTRAFEEDDOTS (11*RJ4030Ai_RESOLUTION_VERT)
+
+//*** IMPORTANT ***
+// SDK Users:
+// You should NEVER instantiate an object of the GenericMobileLabelModelPrintSettings class.
+// Instead, you should instantiate one of the model-specific subclasses (i.e. RJ4030AiPrintSettings).
+//
+// For a list of important properties in the settings that your application needs to set,
+// refer to the GenericMobileLabelModelPrintSettings superclass.
+
+// SDK Designers:
+// The GenericMobileLabelModelPrintSettings class handles all the important work.
+// This subclass only needs to provide the model-specific data to the generic class.
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ4030AiPrintSettingsViewController.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ4030AiPrintSettingsViewController.h
new file mode 100755
index 0000000..fa96e72
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ4030AiPrintSettingsViewController.h
@@ -0,0 +1,41 @@
+//
+// RJ4030AiPrintSettingsViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 2/9/16.
+// Copyright (c) 2013 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettingsViewController.h"
+#import "RJ4030AiPrintSettings.h"
+
+// This is the DEFAULT popup contentSize for RJ4030AiPrintSettingsViewController.
+//
+// You can override this by setting the "popoverSize" property (defined in the
+// PrintSettingsViewController superclass) to something different
+// before showing the ViewController.
+//
+// The popoverSize setting will be propagated to all of the "child" ViewControllers
+// of the main ViewController so all of the detail views will be the SAME size as each other.
+//
+// NOTE: iPad1 and iPad2 size = 1024 x 768, iPad3 = 2048 x 1536
+#define RJ4030AiPOPUPCONTENTSIZE CGSizeMake(400,480)
+#define RJ4030AiPOPUPCONTENTSIZE_IOS7 CGSizeMake(400,588)
+
+
+/*
+ This class is a subclass of GenericMobileLabelModelPrintSettingsViewController,
+ which implements all the major functionality.
+
+ *** SDK Users:
+ DO NOT INSTANTIATE an instance of GenericMobileLabelModelPrintSettingsViewController.
+ Always instantiate a model-specific class, e.g. RJ4030AiPrintSettingsViewController
+ */
+
+@interface RJ4030AiPrintSettingsViewController : GenericMobileLabelModelPrintSettingsViewController
+{
+}
+
+@end
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ4040PrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ4040PrintSettings.h
new file mode 100755
index 0000000..05339cb
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ4040PrintSettings.h
@@ -0,0 +1,102 @@
+//
+// RJ4040PrintSettings.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/12/12.
+// Copyright (c) 2012 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettings.h"
+
+
+@interface RJ4040PrintSettings : GenericMobileLabelModelPrintSettings
+
+// These definitions are provided for information only. DO NOT MODIFY!
+// spec section 2.3.1 Resolution
+#define RJ4040_RESOLUTION_HORZ 203
+#define RJ4040_RESOLUTION_VERT 203
+// spec section 2.3.5 Raster Line
+#define RJ4040_HEADSIZEDOTS 832
+// spec section "Select compression mode" command
+// NOTE: This should be same as HEADSIZEDOTS/8. And, it should be same as the # of decompressed bytes.
+// NOTE: Previously, this was 162. But, it appears to be an error in the English Command Ref Guide.
+#define RJ4040_MAX_COMPRESS_LENGTH 104
+
+//////////////////////////////////////////////
+// MIN/MAX PAPERWIDTH values are not in spec.
+// Used Windows Printer Driver as reference (which allows 0.47" min and 4.09" max).
+//
+// v1.1.1 UPDATE: According to Ann, MAX_PAPERWIDTH can actually be 4.64" instead of 4.09".
+// However, the printable width can not exceed 832 dots, so setting the paperWidthDots larger than 4.09"
+// will result in the marginWidthDots being increased automatically, but subsequently reducing paperWidthDots
+// will not automatically result in marginWidthDots being decreased back to its previous value.
+// This can be demonstrated using the PrintSettingsViewController.
+//
+// If someone actually has paper that is 4.64" wide, the printed result will NOT BE ANY DIFFERENT whether
+// we allow 4.09" or 4.64" here, because in either case we can't use more than 832 dots, and this will be
+// centered automatically on the wider paper. So, there is no reason to allow 4.64" wide here, since doing so
+// potentially introduces the issue related to marginWidthDots mentioned above.
+// So, let's leave MAX_PAPERWIDTHDOTS at 832 rather than change to (4.64F * RJ4040_RESOLUTION_HORZ)
+//
+// UPDATE2: According to Ann, MIN_PAPERWIDTH is actually 2.00" rather than 0.47".
+// However, in case for some reason someone actually has narrower paper, let's not force this 2" restriction.
+// So, we will keep this value the same as before as well.
+//
+// NOTE: MAXPAPERWIDTH does NOT exceed HEADSIZEDOTS!! (refer to v1.1.1 UPDATE discussion above. This comment
+// here is only relevant in comparison to RJ3 and TD2 models, which are still allowing paper width to EXCEED
+// the headsize, though perhaps we shouldn't allow this for the other models either.)
+#define RJ4040_MIN_PAPERWIDTHDOTS (0.47F * RJ4040_RESOLUTION_HORZ) // 95, was using 203 in 0.9 SDK
+#define RJ4040_MAX_PAPERWIDTHDOTS 832 // NOTE: WinDriver allows 4.09", which is ~832.
+//////////////////////////////////////////////
+
+// spec section 2.3.4 Maximum and Minimum Lengths
+#define RJ4040_MIN_PAPERLENGTHDOTS 203 // NOTE: spec says 204 dots, but 203 seems OK.
+#define RJ4040_MAX_PAPERLENGTHDOTS 24094
+// spec section 2.3.3 Feed Amount
+#ifdef OLD
+// IMPORTANT NOTE: For LABEL papertype ONLY, we allow the MIN marginlengthdots to be set to 0.
+// That is, this MIN value here is ignored when papertype = label is specified.
+// Consider the case of a 1.0x0.5" label. A min margin of 0.12" will take up half of the printable length!!
+// This is why we will allow the margin to be set to 0 in this case.
+// Beware that some labels might clip the top if this is set to 0. But, other settings can be tweaked to
+// make it work (such as by setting a larger paperlength and setting the top margin to non-zero.)
+#define RJ4040_MIN_MARGINLENGTHDOTS 24
+
+#else
+// Allow 0 now for continuous roll too, as the Esc iUw command generated from this can affect AirPrint.
+// However, if this is 0, then the Esc id command will send 0 too. And, the printer may not eject the page
+// enough at the end. So, I am introducing the MIN_PAGEFEEDDOTS definition now, so that if current marginLengthDots
+// is LESS than MIN_PAGEFEEDDOTS, we will send Esc id command using the MIN_PAGEFEEDDOTS value instead.
+// Otherwise, the Esc id command will use the marginLengthDots value as it has in the past.
+//
+// NOTE: If this occurs, the final paper length after tear off will be up to 1/4" longer than the
+// specified paperLengthDots, because the print data will be (up to) the entire paper length, and then the
+// PAGEFEEDDOTS will be added to the final paper length. If you need a specific paperlength, then make sure
+// that marginLengthDots is >= MIN_PAGEFEEDDOTS.
+
+#define RJ4040_MIN_MARGINLENGTHDOTS 0
+// v2.3.0 UPDATE: Instead of forcing this MIN_PAGEFEEDDOTS value on EVERY page, which essentially PREVENTS a "no gap"
+// solution if the FW actually supports it, now we only force it on the LAST page, allowing a 0-margin between pages
+// in case the FW allows it. But, we will force this on the LAST page, to assure the FW will eject the page to tear off
+// in case it doesn't automatically behave that way.
+#define RJ4040_MIN_PAGEFEEDDOTS_LASTPAGE 24
+
+#endif
+
+#define RJ4040_MAX_MARGINLENGTHDOTS 1020 // NOTE: was using 1015 in 0.9 SDK
+// Arbitrarily restrict extraFeed to 11" at 203 dpi. There is no reason to be larger.
+#define RJ4040_MAX_EXTRAFEEDDOTS (11*RJ4040_RESOLUTION_VERT)
+
+//*** IMPORTANT ***
+// SDK Users:
+// You should NEVER instantiate an object of the GenericMobileLabelModelPrintSettings class.
+// Instead, you should instantiate one of the model-specific subclasses (i.e. RJ4040PrintSettings).
+//
+// For a list of important properties in the settings that your application needs to set,
+// refer to the GenericMobileLabelModelPrintSettings superclass.
+
+// SDK Designers:
+// The GenericMobileLabelModelPrintSettings class handles all the important work.
+// This subclass only needs to provide the model-specific data to the generic class.
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ4040PrintSettingsViewController.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ4040PrintSettingsViewController.h
new file mode 100755
index 0000000..9a828bd
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ4040PrintSettingsViewController.h
@@ -0,0 +1,41 @@
+//
+// RJ4040PrintSettingsViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 1/30/13.
+// Copyright (c) 2013 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettingsViewController.h"
+#import "RJ4040PrintSettings.h"
+
+// This is the DEFAULT popup contentSize for RJ4040PrintSettingsViewController.
+//
+// You can override this by setting the "popoverSize" property (defined in the
+// PrintSettingsViewController superclass) to something different
+// before showing the ViewController.
+//
+// The popoverSize setting will be propagated to all of the "child" ViewControllers
+// of the main ViewController so all of the detail views will be the SAME size as each other.
+//
+// NOTE: iPad1 and iPad2 size = 1024 x 768, iPad3 = 2048 x 1536
+#define RJ4040POPUPCONTENTSIZE CGSizeMake(400,480)
+#define RJ4040POPUPCONTENTSIZE_IOS7 CGSizeMake(400,588)
+
+
+/*
+ This class is a subclass of GenericMobileLabelModelPrintSettingsViewController,
+ which implements all the major functionality.
+
+ *** SDK Users:
+ DO NOT INSTANTIATE an instance of GenericMobileLabelModelPrintSettingsViewController.
+ Always instantiate a model-specific class, e.g. RJ4040PrintSettingsViewController
+ */
+
+@interface RJ4040PrintSettingsViewController : GenericMobileLabelModelPrintSettingsViewController
+{
+}
+
+@end
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ4230BPrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ4230BPrintSettings.h
new file mode 100755
index 0000000..503bd44
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ4230BPrintSettings.h
@@ -0,0 +1,107 @@
+//
+// RJ4230BPrintSettings.h
+// BMSPrinterKit
+//
+// Created by BMS on 1/19/18.
+// Copyright (c) 2018 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettings.h"
+
+
+@interface RJ4230BPrintSettings : GenericMobileLabelModelPrintSettings
+
+// These definitions are provided for information only. DO NOT MODIFY!
+// spec section 2.3.1 Resolution
+#define RJ4230B_RESOLUTION_HORZ 203
+#define RJ4230B_RESOLUTION_VERT 203
+// spec section 2.3.5 Raster Line
+#define RJ4230B_HEADSIZEDOTS 832
+// spec section "Select compression mode" command
+// NOTE: This should be same as HEADSIZEDOTS/8. And, it should be same as the # of decompressed bytes.
+// NOTE: Previously, this was 162. But, it appears to be an error in the English Command Ref Guide.
+#define RJ4230B_MAX_COMPRESS_LENGTH 104
+
+//////////////////////////////////////////////
+// MIN/MAX PAPERWIDTH values are not in spec.
+// Used Windows Printer Driver as reference (which allows 0.47" min and 4.09" max).
+//
+// v1.1.1 UPDATE: According to Ann, MAX_PAPERWIDTH can actually be 4.64" instead of 4.09".
+// However, the printable width can not exceed 832 dots, so setting the paperWidthDots larger than 4.09"
+// will result in the marginWidthDots being increased automatically, but subsequently reducing paperWidthDots
+// will not automatically result in marginWidthDots being decreased back to its previous value.
+// This can be demonstrated using the PrintSettingsViewController.
+//
+// If someone actually has paper that is 4.64" wide, the printed result will NOT BE ANY DIFFERENT whether
+// we allow 4.09" or 4.64" here, because in either case we can't use more than 832 dots, and this will be
+// centered automatically on the wider paper. So, there is no reason to allow 4.64" wide here, since doing so
+// potentially introduces the issue related to marginWidthDots mentioned above.
+// So, let's leave MAX_PAPERWIDTHDOTS at 832 rather than change to (4.64F * RJ4230B_RESOLUTION_HORZ)
+//
+// UPDATE2: According to Ann, MIN_PAPERWIDTH is actually 2.00" rather than 0.47".
+// However, in case for some reason someone actually has narrower paper, let's not force this 2" restriction.
+// So, we will keep this value the same as before as well.
+//
+// NOTE: MAXPAPERWIDTH does NOT exceed HEADSIZEDOTS!! (refer to v1.1.1 UPDATE discussion above. This comment
+// here is only relevant in comparison to RJ3 and TD2 models, which are still allowing paper width to EXCEED
+// the headsize, though perhaps we shouldn't allow this for the other models either.)
+#define RJ4230B_MIN_PAPERWIDTHDOTS (0.47F * RJ4230B_RESOLUTION_HORZ) // 95, was using 203 in 0.9 SDK
+#define RJ4230B_MAX_PAPERWIDTHDOTS 912 // NOTE: WinDriver allows 4.49", which is ~912.
+//////////////////////////////////////////////
+
+// spec section 2.3.4 Maximum and Minimum Lengths
+#define RJ4230B_MIN_PAPERLENGTHDOTS 203 // NOTE: spec says 204 dots, but 203 seems OK.
+#define RJ4230B_MAX_PAPERLENGTHDOTS 24094 // NOTE: slightly over 3 meters. TODO:verify this value.
+
+// spec section 2.3.3 Feed Amount
+#ifdef OLD
+// IMPORTANT NOTE: For LABEL papertype ONLY, we allow the MIN marginlengthdots to be set to 0.
+// That is, this MIN value here is ignored when papertype = label is specified.
+// Consider the case of a 1.0x0.5" label. A min margin of 0.12" will take up half of the printable length!!
+// This is why we will allow the margin to be set to 0 in this case.
+// Beware that some labels might clip the top if this is set to 0. But, other settings can be tweaked to
+// make it work (such as by setting a larger paperlength and setting the top margin to non-zero.)
+#define RJ4230B_MIN_MARGINLENGTHDOTS 24
+
+#else
+// Allow 0 now for continuous roll too, as the Esc iUw command generated from this can affect AirPrint.
+// (Of course, AirPrint is N/A for the Bluetooth model. But, I am changing this so it behaves consistently.)
+// However, if this is 0, then the Esc id command will send 0 too. And, the printer may not eject the page
+// enough at the end. So, I am introducing the MIN_PAGEFEEDDOTS definition now, so that if current marginLengthDots
+// is LESS than MIN_PAGEFEEDDOTS, we will send Esc id command using the MIN_PAGEFEEDDOTS value instead.
+// Otherwise, the Esc id command will use the marginLengthDots value as it has in the past.
+//
+// NOTE: If this occurs, the final paper length after tear off will be up to 1/4" longer than the
+// specified paperLengthDots, because the print data will be (up to) the entire paper length, and then the
+// PAGEFEEDDOTS will be added to the final paper length. If you need a specific paperlength, then make sure
+// that marginLengthDots is >= MIN_PAGEFEEDDOTS.
+
+#define RJ4230B_MIN_MARGINLENGTHDOTS 0
+// v2.3.0 UPDATE: Instead of forcing this MIN_PAGEFEEDDOTS value on EVERY page, which essentially PREVENTS a "no gap"
+// solution if the FW actually supports it, now we only force it on the LAST page, allowing a 0-margin between pages
+// in case the FW allows it. But, we will force this on the LAST page, to assure the FW will eject the page to tear off
+// in case it doesn't automatically behave that way.
+#define RJ4230B_MIN_PAGEFEEDDOTS_LASTPAGE 24
+
+#endif
+
+#define RJ4230B_MAX_MARGINLENGTHDOTS 1020
+// Arbitrarily restrict extraFeed to 11" at 203 dpi. There is no reason to be larger.
+#define RJ4230B_MAX_EXTRAFEEDDOTS (11*RJ4230B_RESOLUTION_VERT)
+
+//*** IMPORTANT ***
+// SDK Users:
+// You should NEVER instantiate an object of the GenericMobileLabelModelPrintSettings class.
+// Instead, you should instantiate one of the model-specific subclasses (i.e. RJ4230BPrintSettings).
+//
+// For a list of important properties in the settings that your application needs to set,
+// refer to the GenericMobileLabelModelPrintSettings superclass.
+
+// SDK Designers:
+// The GenericMobileLabelModelPrintSettings class handles all the important work.
+// This subclass only needs to provide the model-specific data to the generic class.
+
+//*** ADDITIONAL PROPERTIES not handled by GenericMobileLabelModelPrintSettings
+@property (nonatomic, assign) BOOL invert180degrees;
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ4230BPrintSettingsViewController.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ4230BPrintSettingsViewController.h
new file mode 100755
index 0000000..aca5a1e
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ4230BPrintSettingsViewController.h
@@ -0,0 +1,42 @@
+//
+// RJ4230BPrintSettingsViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 1/19/18.
+// Copyright (c) 2018 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettingsViewController.h"
+#import "RJ4230BPrintSettings.h"
+#import "PrintSettingTableViewController.h"
+
+// This is the DEFAULT popup contentSize for RJ4230BPrintSettingsViewController.
+//
+// You can override this by setting the "popoverSize" property (defined in the
+// PrintSettingsViewController superclass) to something different
+// before showing the ViewController.
+//
+// The popoverSize setting will be propagated to all of the "child" ViewControllers
+// of the main ViewController so all of the detail views will be the SAME size as each other.
+//
+// NOTE: iPad1 and iPad2 size = 1024 x 768, iPad3 = 2048 x 1536
+//#define RJ3050AiPOPUPCONTENTSIZE CGSizeMake(400,480)
+#define RJ4230BPOPUPCONTENTSIZE CGSizeMake(400,548)
+#define RJ4230BPOPUPCONTENTSIZE_IOS7 CGSizeMake(400,588)
+
+
+/*
+ This class is a subclass of GenericMobileLabelModelPrintSettingsViewController,
+ which implements all the major functionality.
+
+ *** SDK Users:
+ DO NOT INSTANTIATE an instance of GenericMobileLabelModelPrintSettingsViewController.
+ Always instantiate a model-specific class, e.g. RJ4230BPrintSettingsViewController
+ */
+@interface RJ4230BPrintSettingsViewController : GenericMobileLabelModelPrintSettingsViewController
+{
+}
+
+@end
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ4250WBPrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ4250WBPrintSettings.h
new file mode 100755
index 0000000..2bea9d8
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ4250WBPrintSettings.h
@@ -0,0 +1,108 @@
+//
+// RJ4250WBPrintSettings.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/19/18.
+// Copyright (c) 2018 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettings.h"
+
+
+@interface RJ4250WBPrintSettings : GenericMobileLabelModelPrintSettings
+
+// These definitions are provided for information only. DO NOT MODIFY!
+// spec section 2.3.1 Resolution
+#define RJ4250WB_RESOLUTION_HORZ 203
+#define RJ4250WB_RESOLUTION_VERT 203
+// spec section 2.3.5 Raster Line
+#define RJ4250WB_HEADSIZEDOTS 832
+// spec section "Select compression mode" command
+// NOTE: This should be same as HEADSIZEDOTS/8. And, it should be same as the # of decompressed bytes.
+// NOTE: Previously, this was 162. But, it appears to be an error in the English Command Ref Guide.
+#define RJ4250WB_MAX_COMPRESS_LENGTH 104
+
+//////////////////////////////////////////////
+// MIN/MAX PAPERWIDTH values are not in spec.
+// Used Windows Printer Driver as reference (which allows 0.47" min and 4.09" max).
+//
+// v1.1.1 UPDATE: According to Ann, MAX_PAPERWIDTH can actually be 4.64" instead of 4.09".
+// However, the printable width can not exceed 832 dots, so setting the paperWidthDots larger than 4.09"
+// will result in the marginWidthDots being increased automatically, but subsequently reducing paperWidthDots
+// will not automatically result in marginWidthDots being decreased back to its previous value.
+// This can be demonstrated using the PrintSettingsViewController.
+//
+// If someone actually has paper that is 4.64" wide, the printed result will NOT BE ANY DIFFERENT whether
+// we allow 4.09" or 4.64" here, because in either case we can't use more than 832 dots, and this will be
+// centered automatically on the wider paper. So, there is no reason to allow 4.64" wide here, since doing so
+// potentially introduces the issue related to marginWidthDots mentioned above.
+// So, let's leave MAX_PAPERWIDTHDOTS at 832 rather than change to (4.64F * RJ4250WB_RESOLUTION_HORZ)
+//
+// UPDATE2: According to Ann, MIN_PAPERWIDTH is actually 2.00" rather than 0.47".
+// However, in case for some reason someone actually has narrower paper, let's not force this 2" restriction.
+// So, we will keep this value the same as before as well.
+//
+// NOTE: MAXPAPERWIDTH does NOT exceed HEADSIZEDOTS!! (refer to v1.1.1 UPDATE discussion above. This comment
+// here is only relevant in comparison to RJ3 and TD2 models, which are still allowing paper width to EXCEED
+// the headsize, though perhaps we shouldn't allow this for the other models either.)
+#define RJ4250WB_MIN_PAPERWIDTHDOTS (0.47F * RJ4250WB_RESOLUTION_HORZ) // 95, was using 203 in 0.9 SDK
+#define RJ4250WB_MAX_PAPERWIDTHDOTS 912 // NOTE: WinDriver allows 4.49", which is ~912.
+//////////////////////////////////////////////
+
+// spec section 2.3.4 Maximum and Minimum Lengths
+#define RJ4250WB_MIN_PAPERLENGTHDOTS 203 // NOTE: spec says 204 dots, but 203 seems OK.
+#define RJ4250WB_MAX_PAPERLENGTHDOTS 24094 // NOTE: slightly over 3 meters. TODO:verify this value.
+
+// spec section 2.3.3 Feed Amount
+#ifdef OLD
+// IMPORTANT NOTE: For LABEL papertype ONLY, we allow the MIN marginlengthdots to be set to 0.
+// That is, this MIN value here is ignored when papertype = label is specified.
+// Consider the case of a 1.0x0.5" label. A min margin of 0.12" will take up half of the printable length!!
+// This is why we will allow the margin to be set to 0 in this case.
+// Beware that some labels might clip the top if this is set to 0. But, other settings can be tweaked to
+// make it work (such as by setting a larger paperlength and setting the top margin to non-zero.)
+#define RJ4250WB_MIN_MARGINLENGTHDOTS 24
+
+#else
+// Allow 0 now for continuous roll too, as the Esc iUw command generated from this can affect AirPrint.
+// (Of course, AirPrint is N/A for the Bluetooth model. But, I am changing this so it behaves consistently.)
+// However, if this is 0, then the Esc id command will send 0 too. And, the printer may not eject the page
+// enough at the end. So, I am introducing the MIN_PAGEFEEDDOTS definition now, so that if current marginLengthDots
+// is LESS than MIN_PAGEFEEDDOTS, we will send Esc id command using the MIN_PAGEFEEDDOTS value instead.
+// Otherwise, the Esc id command will use the marginLengthDots value as it has in the past.
+//
+// NOTE: If this occurs, the final paper length after tear off will be up to 1/4" longer than the
+// specified paperLengthDots, because the print data will be (up to) the entire paper length, and then the
+// PAGEFEEDDOTS will be added to the final paper length. If you need a specific paperlength, then make sure
+// that marginLengthDots is >= MIN_PAGEFEEDDOTS.
+
+#define RJ4250WB_MIN_MARGINLENGTHDOTS 0
+// v2.3.0 UPDATE: Instead of forcing this MIN_PAGEFEEDDOTS value on EVERY page, which essentially PREVENTS a "no gap"
+// solution if the FW actually supports it, now we only force it on the LAST page, allowing a 0-margin between pages
+// in case the FW allows it. But, we will force this on the LAST page, to assure the FW will eject the page to tear off
+// in case it doesn't automatically behave that way.
+#define RJ4250WB_MIN_PAGEFEEDDOTS_LASTPAGE 24
+
+#endif
+
+#define RJ4250WB_MAX_MARGINLENGTHDOTS 1020
+// Arbitrarily restrict extraFeed to 11" at 203 dpi. There is no reason to be larger.
+#define RJ4250WB_MAX_EXTRAFEEDDOTS (11*RJ4250WB_RESOLUTION_VERT)
+
+//*** IMPORTANT ***
+// SDK Users:
+// You should NEVER instantiate an object of the GenericMobileLabelModelPrintSettings class.
+// Instead, you should instantiate one of the model-specific subclasses (i.e. RJ4250WBPrintSettings).
+//
+// For a list of important properties in the settings that your application needs to set,
+// refer to the GenericMobileLabelModelPrintSettings superclass.
+
+// SDK Designers:
+// The GenericMobileLabelModelPrintSettings class handles all the important work.
+// This subclass only needs to provide the model-specific data to the generic class.
+
+//*** ADDITIONAL PROPERTIES not handled by GenericMobileLabelModelPrintSettings
+@property (nonatomic, assign) BOOL invert180degrees;
+
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ4250WBPrintSettingsViewController.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ4250WBPrintSettingsViewController.h
new file mode 100755
index 0000000..6f58e2b
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/RJ4250WBPrintSettingsViewController.h
@@ -0,0 +1,42 @@
+//
+// RJ4250WBPrintSettingsViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/19/18.
+// Copyright (c) 2018 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettingsViewController.h"
+#import "RJ4250WBPrintSettings.h"
+#import "PrintSettingTableViewController.h"
+
+// This is the DEFAULT popup contentSize for RJ4250WBPrintSettingsViewController.
+//
+// You can override this by setting the "popoverSize" property (defined in the
+// PrintSettingsViewController superclass) to something different
+// before showing the ViewController.
+//
+// The popoverSize setting will be propagated to all of the "child" ViewControllers
+// of the main ViewController so all of the detail views will be the SAME size as each other.
+//
+// NOTE: iPad1 and iPad2 size = 1024 x 768, iPad3 = 2048 x 1536
+//#define RJ3050AiPOPUPCONTENTSIZE CGSizeMake(400,480)
+#define RJ4250WBPOPUPCONTENTSIZE CGSizeMake(400,548)
+#define RJ4250WBPOPUPCONTENTSIZE_IOS7 CGSizeMake(400,588)
+
+
+/*
+ This class is a subclass of GenericMobileLabelModelPrintSettingsViewController,
+ which implements all the major functionality.
+
+ *** SDK Users:
+ DO NOT INSTANTIATE an instance of GenericMobileLabelModelPrintSettingsViewController.
+ Always instantiate a model-specific class, e.g. RJ4250WBPrintSettingsViewController
+ */
+@interface RJ4250WBPrintSettingsViewController : GenericMobileLabelModelPrintSettingsViewController
+{
+}
+
+@end
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/TD2120NPrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/TD2120NPrintSettings.h
new file mode 100755
index 0000000..028c312
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/TD2120NPrintSettings.h
@@ -0,0 +1,83 @@
+//
+// TD2120NPrintSettings.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/18/13.
+// Copyright (c) 2013 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettings.h"
+
+
+@interface TD2120NPrintSettings : GenericMobileLabelModelPrintSettings
+
+// These definitions are provided for information only. DO NOT MODIFY!
+#define TD2120N_RESOLUTION_HORZ 203
+#define TD2120N_RESOLUTION_VERT 203
+// spec section 2.3.5 Raster Line
+#define TD2120N_HEADSIZEDOTS 448
+// spec section "Select compression mode" command
+// NOTE: This should be same as HEADSIZEDOTS/8. And, it should be same as the # of decompressed bytes.
+#define TD2120N_MAX_COMPRESS_LENGTH 56
+
+// not in spec. Used Windows Printer Driver as reference.
+// NOTE: MAXPAPERWIDTH can exceed HEADSIZEDOTS!!
+#define TD2120N_MIN_PAPERWIDTHDOTS (0.47F * TD2120N_RESOLUTION_HORZ) // 95
+#define TD2120N_MAX_PAPERWIDTHDOTS (2.48F * TD2120N_RESOLUTION_VERT) // 503
+// spec section 2.3.4 Maximum and Minimum Lengths
+#define TD2120N_MIN_PAPERLENGTHDOTS 96
+#define TD2120N_MAX_PAPERLENGTHDOTS 7992
+// spec section 2.3.3 Feed Amount
+#ifdef OLD
+// IMPORTANT NOTE: For LABEL papertype ONLY, we allow the MIN marginlengthdots to be set to 0.
+// That is, this MIN value here is ignored when papertype = label is specified.
+// Consider the case of a 1.0x0.5" label. A min margin of 0.12" will take up half of the printable length!!
+// This is why we will allow the margin to be set to 0 in this case.
+// Beware that some labels might clip the top if this is set to 0. But, other settings can be tweaked to
+// make it work (such as by setting a larger paperlength and setting the top margin to non-zero.)
+#define TD2120N_MIN_MARGINLENGTHDOTS 24
+
+#else
+
+// Allow 0 now for continuous roll too, as the Esc iUw command generated from this can affect AirPrint.
+// However, if this is 0, then the Esc id command will send 0 too. And, the printer may not eject the page
+// enough at the end. So, I am introducing the MIN_PAGEFEEDDOTS definition now, so that if current marginLengthDots
+// is LESS than MIN_PAGEFEEDDOTS, we will send Esc id command using the MIN_PAGEFEEDDOTS value instead.
+// Otherwise, the Esc id command will use the marginLengthDots value as it has in the past.
+//
+// NOTE: If this occurs, the final paper length after tear off will be up to 1/4" longer than the
+// specified paperLengthDots, because the print data will be (up to) the entire paper length, and then the
+// PAGEFEEDDOTS will be added to the final paper length. If you need a specific paperlength, then make sure
+// that marginLengthDots is >= MIN_PAGEFEEDDOTS.
+
+#define TD2120N_MIN_MARGINLENGTHDOTS 0
+// v2.3.0 UPDATE: Instead of forcing this MIN_PAGEFEEDDOTS value on EVERY page, which essentially PREVENTS a "no gap"
+// solution if the FW actually supports it, now we only force it on the LAST page, allowing a 0-margin between pages
+// in case the FW allows it. But, we will force this on the LAST page, to assure the FW will eject the page to tear off
+// in case it doesn't automatically behave that way.
+#define TD2120N_MIN_PAGEFEEDDOTS_LASTPAGE 24
+
+#endif
+
+#define TD2120N_MAX_MARGINLENGTHDOTS 1015
+// Arbitrarily restrict extraFeed to 11" at 203 dpi. There is no reason to be larger.
+#define TD2120N_MAX_EXTRAFEEDDOTS (11*TD2120N_RESOLUTION_VERT)
+
+//*** IMPORTANT ***
+// SDK Users:
+// You should NEVER instantiate an object of the GenericMobileLabelModelPrintSettings superclass.
+// Instead, you should instantiate one of the model-specific subclasses (i.e. TD2120NPrintSettings).
+//
+// For a list of important properties in the settings that your application needs to set,
+// refer to the GenericMobileLabelModelPrintSettings superclass.
+
+// SDK Designers:
+// The GenericMobileLabelModelPrintSettings superclass handles all the important work.
+// This subclass only needs to provide the model-specific data to the generic class(es).
+
+//*** ADDITIONAL PROPERTIES not handled by GenericMobileLabelModelPrintSettings
+@property (nonatomic, assign) BOOL peelerEnabled;
+@property (nonatomic, assign) BOOL invert180degrees;
+
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/TD2120NPrintSettingsViewController.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/TD2120NPrintSettingsViewController.h
new file mode 100755
index 0000000..ab40884
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/TD2120NPrintSettingsViewController.h
@@ -0,0 +1,42 @@
+//
+// TD2120NPrintSettingsViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/27/13.
+// Copyright (c) 2013 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettingsViewController.h"
+#import "TD2120NPrintSettings.h"
+
+// This is the DEFAULT popup contentSize for TD2120NPrintSettingsViewController.
+//
+// You can override this by setting the "popoverSize" property (defined in the
+// PrintSettingsViewController superclass) to something different
+// before showing the ViewController.
+//
+// The popoverSize setting will be propagated to all of the "child" ViewControllers
+// of the main ViewController so all of the detail views will be the SAME size as each other.
+//
+// NOTE: iPad1 and iPad2 size = 1024 x 768, iPad3 = 2048 x 1536
+//#define TD2120NPOPUPCONTENTSIZE CGSizeMake(400,480)
+#define TD2120NPOPUPCONTENTSIZE CGSizeMake(400,548)
+#define TD2120NPOPUPCONTENTSIZE_IOS7 CGSizeMake(400,588)
+
+
+/*
+ This class is a subclass of GenericMobileLabelModelPrintSettingsViewController,
+ which implements all the major functionality.
+
+ *** SDK Users:
+ DO NOT INSTANTIATE an instance of GenericMobileLabelModelPrintSettingsViewController.
+ Always instantiate a model-specific class, e.g. TD2120NPrintSettingsViewController
+ */
+
+@interface TD2120NPrintSettingsViewController : GenericMobileLabelModelPrintSettingsViewController
+{
+}
+
+@end
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/TD2130NPrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/TD2130NPrintSettings.h
new file mode 100755
index 0000000..a095e94
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/TD2130NPrintSettings.h
@@ -0,0 +1,82 @@
+//
+// TD2130NPrintSettings.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/18/13.
+// Copyright (c) 2013 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettings.h"
+
+
+@interface TD2130NPrintSettings : GenericMobileLabelModelPrintSettings
+
+// These definitions are provided for information only. DO NOT MODIFY!
+// spec section 2.3.1 Resolution
+#define TD2130N_RESOLUTION_HORZ 300
+#define TD2130N_RESOLUTION_VERT 300
+// spec section 2.3.5 Raster Line
+#define TD2130N_HEADSIZEDOTS 672
+// spec section "Select compression mode" command
+// NOTE: This should be same as HEADSIZEDOTS/8. And, it should be same as the # of decompressed bytes.
+#define TD2130N_MAX_COMPRESS_LENGTH 84
+
+// not in spec. Used Windows Printer Driver as reference.
+// NOTE: MAXPAPERWIDTH can exceed HEADSIZEDOTS!!
+#define TD2130N_MIN_PAPERWIDTHDOTS (0.47F * TD2130N_RESOLUTION_HORZ) // 141
+#define TD2130N_MAX_PAPERWIDTHDOTS (2.48F * TD2130N_RESOLUTION_VERT) // 744
+// spec section 2.3.4 Maximum and Minimum Lengths
+#define TD2130N_MIN_PAPERLENGTHDOTS 142
+#define TD2130N_MAX_PAPERLENGTHDOTS 11811
+// spec section 2.3.3 Feed Amount
+#ifdef OLD
+// IMPORTANT NOTE: For LABEL papertype ONLY, we allow the MIN marginlengthdots to be set to 0.
+// That is, this MIN value here is ignored when papertype = label is specified.
+// Consider the case of a 1.0x0.5" label. A min margin of 0.12" will take up half of the printable length!!
+// This is why we will allow the margin to be set to 0 in this case.
+// Beware that some labels might clip the top if this is set to 0. But, other settings can be tweaked to
+// make it work (such as by setting a larger paperlength and setting the top margin to non-zero.)
+#define TD2130N_MIN_MARGINLENGTHDOTS 35
+
+#else
+// Allow 0 now for continuous roll too, as the Esc iUw command generated from this can affect AirPrint.
+// However, if this is 0, then the Esc id command will send 0 too. And, the printer may not eject the page
+// enough at the end. So, I am introducing the MIN_PAGEFEEDDOTS definition now, so that if current marginLengthDots
+// is LESS than MIN_PAGEFEEDDOTS, we will send Esc id command using the MIN_PAGEFEEDDOTS value instead.
+// Otherwise, the Esc id command will use the marginLengthDots value as it has in the past.
+//
+// NOTE: If this occurs, the final paper length after tear off will be up to 1/4" longer than the
+// specified paperLengthDots, because the print data will be (up to) the entire paper length, and then the
+// PAGEFEEDDOTS will be added to the final paper length. If you need a specific paperlength, then make sure
+// that marginLengthDots is >= MIN_PAGEFEEDDOTS.
+
+#define TD2130N_MIN_MARGINLENGTHDOTS 0
+// v2.3.0 UPDATE: Instead of forcing this MIN_PAGEFEEDDOTS value on EVERY page, which essentially PREVENTS a "no gap"
+// solution if the FW actually supports it, now we only force it on the LAST page, allowing a 0-margin between pages
+// in case the FW allows it. But, we will force this on the LAST page, to assure the FW will eject the page to tear off
+// in case it doesn't automatically behave that way.
+#define TD2130N_MIN_PAGEFEEDDOTS_LASTPAGE 35
+
+#endif
+
+#define TD2130N_MAX_MARGINLENGTHDOTS 1500
+// Arbitrarily restrict extraFeed to 11" at 203 dpi. There is no reason to be larger.
+#define TD2130N_MAX_EXTRAFEEDDOTS (11*TD2130N_RESOLUTION_VERT)
+
+//*** IMPORTANT ***
+// SDK Users:
+// You should NEVER instantiate an object of the GenericMobileLabelModelPrintSettings superclass.
+// Instead, you should instantiate one of the model-specific subclasses (i.e. TD2130NPrintSettings).
+//
+// For a list of important properties in the settings that your application needs to set,
+// refer to the GenericMobileLabelModelPrintSettings superclass.
+
+// SDK Designers:
+// The GenericMobileLabelModelPrintSettings superclass handles all the important work.
+// This subclass only needs to provide the model-specific data to the generic class(es).
+
+//*** ADDITIONAL PROPERTIES not handled by GenericMobileLabelModelPrintSettings
+@property (nonatomic, assign) BOOL peelerEnabled;
+@property (nonatomic, assign) BOOL invert180degrees;
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/TD2130NPrintSettingsViewController.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/TD2130NPrintSettingsViewController.h
new file mode 100755
index 0000000..ded2089
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/TD2130NPrintSettingsViewController.h
@@ -0,0 +1,42 @@
+//
+// TD2130NPrintSettingsViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/27/13.
+// Copyright (c) 2013 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettingsViewController.h"
+#import "TD2130NPrintSettings.h"
+
+// This is the DEFAULT popup contentSize for TD2130NPrintSettingsViewController.
+//
+// You can override this by setting the "popoverSize" property (defined in the
+// PrintSettingsViewController superclass) to something different
+// before showing the ViewController.
+//
+// The popoverSize setting will be propagated to all of the "child" ViewControllers
+// of the main ViewController so all of the detail views will be the SAME size as each other.
+//
+// NOTE: iPad1 and iPad2 size = 1024 x 768, iPad3 = 2048 x 1536
+//#define TD2130NPOPUPCONTENTSIZE CGSizeMake(400,480)
+#define TD2130NPOPUPCONTENTSIZE CGSizeMake(400,548)
+#define TD2130NPOPUPCONTENTSIZE_IOS7 CGSizeMake(400,588)
+
+
+/*
+ This class is a subclass of GenericMobileLabelModelPrintSettingsViewController,
+ which implements all the major functionality.
+
+ *** SDK Users:
+ DO NOT INSTANTIATE an instance of GenericMobileLabelModelPrintSettingsViewController.
+ Always instantiate a model-specific class, e.g. TD2130NPrintSettingsViewController
+ */
+
+@interface TD2130NPrintSettingsViewController : GenericMobileLabelModelPrintSettingsViewController
+{
+}
+
+@end
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/TD4550DNWBPrintSettings.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/TD4550DNWBPrintSettings.h
new file mode 100755
index 0000000..5a5f47f
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/TD4550DNWBPrintSettings.h
@@ -0,0 +1,76 @@
+//
+// TD4550DNWBPrintSettings.h
+// BMSPrinterKit
+//
+// Created by BMS on 5/16/19.
+// Copyright (c) 2019 Brother Mobile Solutions. All rights reserved.
+
+//
+
+#import "GenericMobileLabelModelPrintSettings.h"
+
+
+@interface TD4550DNWBPrintSettings : GenericMobileLabelModelPrintSettings
+
+// These definitions are provided for information only. DO NOT MODIFY!
+// spec section 4.3.1 Resolution
+#define TD4550DNWB_RESOLUTION_HORZ 300
+#define TD4550DNWB_RESOLUTION_VERT 300
+// spec section 4.3.5 Raster Line
+#define TD4550DNWB_HEADSIZEDOTS 1280 // 4.2666" at 300 dpi
+// spec section "Select compression mode" command
+// NOTE: This should be same as HEADSIZEDOTS/8. And, it should be same as the # of decompressed bytes.
+#define TD4550DNWB_MAX_COMPRESS_LENGTH 160
+
+//////////////////////////////////////////////
+// MIN/MAX PAPERWIDTH values are ** NOT ** in spec.
+// Used Windows Printer Driver as reference (which allows 0.75" min and 4.65" max).
+//
+#define TD4550DNWB_MIN_PAPERWIDTHDOTS (0.75F * TD4550DNWB_RESOLUTION_HORZ)
+#define TD4550DNWB_MAX_PAPERWIDTHDOTS (4.65F * TD4550DNWB_RESOLUTION_HORZ)
+//////////////////////////////////////////////
+
+//*** spec section 4.3.4 Maximum and Minimum Lengths
+#define TD4550DNWB_MIN_PAPERLENGTHDOTS 142
+#define TD4550DNWB_MAX_PAPERLENGTHDOTS 35433
+
+//*** spec section 4.3.3 Feed Amount
+//
+// Instead of forcing MIN_PAGEFEEDDOTS value on EVERY page, which essentially PREVENTS a "no gap"
+// solution if the FW actually supports it, now we only force it on the LAST page, allowing a 0-margin between pages
+// in case the FW allows it. But, we will force this on the LAST page, to assure the FW will eject the page to tear off
+// in case it doesn't automatically behave that way.
+#define TD4550DNWB_MIN_MARGINLENGTHDOTS 0
+#define TD4550DNWB_MIN_PAGEFEEDDOTS_LASTPAGE 35
+
+#define TD4550DNWB_MAX_MARGINLENGTHDOTS 1500 // 5" at 300 dpi
+// Arbitrarily restrict extraFeed to 11" at 203 dpi. There is no reason to be larger.
+#define TD4550DNWB_MAX_EXTRAFEEDDOTS (11*TD4550DNWB_RESOLUTION_VERT)
+
+#define TD4550DNWB_MAX_AUTOCUT_NUMLABELS 255 // NOTE: Windows driver uses 99 here, spec says 255.
+
+
+
+//*** IMPORTANT ***
+// SDK Users:
+// You should NEVER instantiate an object of the GenericMobileLabelModelPrintSettings class.
+// Instead, you should instantiate one of the model-specific subclasses (i.e. TD4550DNWBPrintSettings).
+//
+// For a list of important properties in the settings that your application needs to set,
+// refer to the GenericMobileLabelModelPrintSettings superclass.
+
+// SDK Designers:
+// The GenericMobileLabelModelPrintSettings class handles all the important work.
+// This subclass only needs to provide the model-specific data to the generic class.
+
+//*** ADDITIONAL PROPERTIES not handled by GenericMobileLabelModelPrintSettings
+@property (nonatomic, assign) BOOL peelerEnabled;
+@property (nonatomic, assign) BOOL invert180degrees;
+
+// The following are used with the cutter
+@property (nonatomic, assign) BOOL cutAtEndOfJobEnabled; // true: cuts at end of last page of job
+@property (nonatomic, assign) BOOL autoCutEnabled; // true: automatically cuts every N labels, as specified by autoCutEveryNLabels
+@property (nonatomic, assign) unsigned int autoCutEveryNLabels; // default is 1 -> autocut each label. Set value to print N labels before cutting. Allowed Range is 1 to TD4550DNWB_MAX_AUTOCUT_NUMLABELS.
+
+
+@end
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/TD4550DNWBPrintSettingsViewController.h b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/TD4550DNWBPrintSettingsViewController.h
new file mode 100755
index 0000000..b63641d
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Headers/TD4550DNWBPrintSettingsViewController.h
@@ -0,0 +1,42 @@
+//
+// TD4550DNWBPrintSettingsViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 5/16/19.
+// Copyright (c) 2019 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericMobileLabelModelPrintSettingsViewController.h"
+#import "TD4550DNWBPrintSettings.h"
+#import "PrintSettingTableViewController.h"
+
+// This is the DEFAULT popup contentSize for TD4550DNWBPrintSettingsViewController.
+//
+// You can override this by setting the "popoverSize" property (defined in the
+// PrintSettingsViewController superclass) to something different
+// before showing the ViewController.
+//
+// The popoverSize setting will be propagated to all of the "child" ViewControllers
+// of the main ViewController so all of the detail views will be the SAME size as each other.
+//
+// NOTE: iPad1 and iPad2 size = 1024 x 768, iPad3 = 2048 x 1536
+//#define RJ3050AiPOPUPCONTENTSIZE CGSizeMake(400,480)
+#define TD4550DNWBPOPUPCONTENTSIZE CGSizeMake(400,548)
+#define TD4550DNWBPOPUPCONTENTSIZE_IOS7 CGSizeMake(400,588)
+
+
+/*
+ This class is a subclass of GenericMobileLabelModelPrintSettingsViewController,
+ which implements all the major functionality.
+
+ *** SDK Users:
+ DO NOT INSTANTIATE an instance of GenericMobileLabelModelPrintSettingsViewController.
+ Always instantiate a model-specific class, e.g. TD4550DNWBPrintSettingsViewController
+ */
+@interface TD4550DNWBPrintSettingsViewController : GenericMobileLabelModelPrintSettingsViewController
+{
+}
+
+@end
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/IPAddressHelp.pdf b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/IPAddressHelp.pdf
new file mode 100644
index 0000000..063c7a7
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/IPAddressHelp.pdf differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/IPAddressViewController.nib b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/IPAddressViewController.nib
new file mode 100644
index 0000000..2fb4141
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/IPAddressViewController.nib differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Info.plist b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Info.plist
new file mode 100644
index 0000000..c257c2e
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/Info.plist differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/MarginViewController.nib b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/MarginViewController.nib
new file mode 100644
index 0000000..b84a569
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/MarginViewController.nib differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/PJCustomPaperViewController.nib b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/PJCustomPaperViewController.nib
new file mode 100644
index 0000000..54cf307
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/PJCustomPaperViewController.nib differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/PrintProgressViewControllerWithFilename_BMSSDK~ipad.nib b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/PrintProgressViewControllerWithFilename_BMSSDK~ipad.nib
new file mode 100644
index 0000000..26926b9
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/PrintProgressViewControllerWithFilename_BMSSDK~ipad.nib differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/PrintProgressViewControllerWithFilename_BMSSDK~iphone.nib b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/PrintProgressViewControllerWithFilename_BMSSDK~iphone.nib
new file mode 100644
index 0000000..fbaa358
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/PrintProgressViewControllerWithFilename_BMSSDK~iphone.nib differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/PrintProgressViewController_BMSSDK~ipad.nib b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/PrintProgressViewController_BMSSDK~ipad.nib
new file mode 100644
index 0000000..667a2ba
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/PrintProgressViewController_BMSSDK~ipad.nib differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/PrintProgressViewController_BMSSDK~iphone.nib b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/PrintProgressViewController_BMSSDK~iphone.nib
new file mode 100644
index 0000000..928ccaf
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/PrintProgressViewController_BMSSDK~iphone.nib differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/PrinterList.plist b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/PrinterList.plist
new file mode 100644
index 0000000..93ea3ff
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/PrinterList.plist differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/ThresholdViewController.nib b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/ThresholdViewController.nib
new file mode 100644
index 0000000..4bbb881
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/ThresholdViewController.nib differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bsj673ad.ptd b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bsj673ad.ptd
new file mode 100755
index 0000000..3b275e1
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bsj673ad.ptd differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bspe55ad.ptd b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bspe55ad.ptd
new file mode 100755
index 0000000..595bdf0
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bspe55ad.ptd differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bspp75ad.ptd b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bspp75ad.ptd
new file mode 100755
index 0000000..14aa119
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bspp75ad.ptd differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bsq71wad.ptd b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bsq71wad.ptd
new file mode 100755
index 0000000..49d1632
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bsq71wad.ptd differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bsq72wad.ptd b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bsq72wad.ptd
new file mode 100755
index 0000000..124f2b4
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bsq72wad.ptd differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bsr305ad.ptd b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bsr305ad.ptd
new file mode 100755
index 0000000..bfb0685
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bsr305ad.ptd differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bsr315ad.ptd b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bsr315ad.ptd
new file mode 100755
index 0000000..ec2eef3
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bsr315ad.ptd differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bsr403ad.txt b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bsr403ad.txt
new file mode 100755
index 0000000..51b9216
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bsr403ad.txt
@@ -0,0 +1,91 @@
+;******************************************************
+;
+; Brother RJ-4030 PTD Source File
+;
+; Copyright (C) 2011 Brother Industries, Ltd.
+;
+;
+;******************************************************
+[Version]
+FormatVersion=1.02.00.00
+ModelVersion=1.00.00.00
+OutputFileName="bsr403ad.ptd"
+0
+
+[Model]
+bySeriesCode = 0x37
+byModelCode = 0x31
+dmDeviceName = "Brother RJ-4030"
+dwHeadPinNum = 832
+dwDeviceAbility01 = 0
+dwDeviceAbility02 = 0
+wMinCopies = 1
+wMaxCopies = 9999
+wMinCutEveryNum = 1
+wMaxCutEveryNum = 99
+nDefaultPaperSize = 420
+nDefaultPaperLength = 1524
+nDefaultPaperLengthRes = 1218
+wResolutionNum = 1
+wResolutions = 203,203
+0
+
+[Paper00]
+szPaperName_mm = "RD 102mm x 152mm"
+szPaperName_Inch = "RD 4" x 6""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = "6.00""
+nType = 0x4b
+nPaperSize = 420
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 812
+nImageAreaWidthRes = 788
+nPaperLength = 1524
+nImageAreaLength = 1405
+nPaperLengthRes = 1218
+nImageAreaLengthRes = 1123
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 48
+wPinOffsetLeft = 22
+wPinOffsetRight = 22
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00000480
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 6
+byRollWidMm = 106
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 420
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 152mm"
+szSizeIN = "4" x 6""
+MediaAtrInfo = 0
+lblPitchDot = 1270
+markNoChkValu = 0
+reserved_12_ = 48,0,0,0,0,0,1,0,0,0,0,0
+0
+
+
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bsr403aiad.txt b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bsr403aiad.txt
new file mode 100755
index 0000000..cf62c07
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bsr403aiad.txt
@@ -0,0 +1,91 @@
+;******************************************************
+;
+; Brother RJ-4030 PTD Source File
+;
+; Copyright (C) 2011 Brother Industries, Ltd.
+;
+;
+;******************************************************
+[Version]
+FormatVersion=1.02.00.00
+ModelVersion=1.00.00.00
+OutputFileName="bsr403aiad.ptd"
+0
+
+[Model]
+bySeriesCode = 0x37
+byModelCode = 0x35
+dmDeviceName = "Brother RJ-4030Ai"
+dwHeadPinNum = 832
+dwDeviceAbility01 = 0
+dwDeviceAbility02 = 0
+wMinCopies = 1
+wMaxCopies = 9999
+wMinCutEveryNum = 1
+wMaxCutEveryNum = 99
+nDefaultPaperSize = 420
+nDefaultPaperLength = 1524
+nDefaultPaperLengthRes = 1218
+wResolutionNum = 1
+wResolutions = 203,203
+0
+
+[Paper00]
+szPaperName_mm = "RD 102mm x 152mm"
+szPaperName_Inch = "RD 4" x 6""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = "6.00""
+nType = 0x4b
+nPaperSize = 420
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 812
+nImageAreaWidthRes = 788
+nPaperLength = 1524
+nImageAreaLength = 1405
+nPaperLengthRes = 1218
+nImageAreaLengthRes = 1123
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 48
+wPinOffsetLeft = 22
+wPinOffsetRight = 22
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00000480
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 6
+byRollWidMm = 106
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 420
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 152mm"
+szSizeIN = "4" x 6""
+MediaAtrInfo = 0
+lblPitchDot = 1270
+markNoChkValu = 0
+reserved_12_ = 48,0,0,0,0,0,1,0,0,0,0,0
+0
+
+
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bsr404ad.ptd b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bsr404ad.ptd
new file mode 100755
index 0000000..73e51f1
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bsr404ad.ptd differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bsr404ad.txt b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bsr404ad.txt
new file mode 100755
index 0000000..26109fa
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bsr404ad.txt
@@ -0,0 +1,91 @@
+;******************************************************
+;
+; Brother RJ-4040 PTD Source File
+;
+; Copyright (C) 2011 Brother Industries, Ltd.
+;
+;
+;******************************************************
+[Version]
+FormatVersion=1.02.00.00
+ModelVersion=1.00.00.00
+OutputFileName="bsr404ad.ptd"
+0
+
+[Model]
+bySeriesCode = 0x37
+byModelCode = 0x32
+dmDeviceName = "Brother RJ-4040"
+dwHeadPinNum = 832
+dwDeviceAbility01 = 0
+dwDeviceAbility02 = 0
+wMinCopies = 1
+wMaxCopies = 9999
+wMinCutEveryNum = 1
+wMaxCutEveryNum = 99
+nDefaultPaperSize = 420
+nDefaultPaperLength = 1524
+nDefaultPaperLengthRes = 1218
+wResolutionNum = 1
+wResolutions = 203,203
+0
+
+[Paper00]
+szPaperName_mm = "RD 102mm x 152mm"
+szPaperName_Inch = "RD 4" x 6""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = "6.00""
+nType = 0x4b
+nPaperSize = 420
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 812
+nImageAreaWidthRes = 788
+nPaperLength = 1524
+nImageAreaLength = 1405
+nPaperLengthRes = 1218
+nImageAreaLengthRes = 1123
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 48
+wPinOffsetLeft = 22
+wPinOffsetRight = 22
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00000480
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 6
+byRollWidMm = 106
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 420
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 152mm"
+szSizeIN = "4" x 6""
+MediaAtrInfo = 0
+lblPitchDot = 1270
+markNoChkValu = 0
+reserved_12_ = 48,0,0,0,0,0,1,0,0,0,0,0
+0
+
+
+
+
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bsr423ad.txt b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bsr423ad.txt
new file mode 100755
index 0000000..00f7e63
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bsr423ad.txt
@@ -0,0 +1,666 @@
+;******************************************************
+;
+; Brother RJ-4230B PTD Source File
+;
+;
+;******************************************************
+[Version]
+FormatVersion=1.03.00.00
+ModelVersion=1.00.00.00
+OutputFileName="bsr423ad.ptd"
+0
+
+[Model]
+bySeriesCode=0x37
+byModelCode=0x43
+dmDeviceName="Brother RJ-4230B"
+dwHeadPinNum=832
+dwDeviceAbility01=0x00060031
+dwDeviceAbility02=0x00000009
+wMinCopies=1
+wMaxCopies=9999
+wMinCutEveryNum=1
+wMaxCutEveryNum=1
+nDefaultPaperSize=415
+nDefaultPaperLength=5080
+nDefaultPaperLengthRes=4060
+wResolutionNum=1
+wResolutions=203,203
+nDefaultResolution=0
+nPTPaperResolution=0
+nDefaultPaperMargin=30
+nDefaultPaperMarginRes=24
+nDefaultLandscape=1
+dwOptionAbility01=0x0000C2C0
+dwOptionAbility02=0x00000000
+dwDefaultEnabledOptionAbility01=0x00000080
+dwDefaultEnabledOptionAbility02=0x00000000
+dwCommandAbility01=0x006106F6
+dwCommandAbility02=0x00000000
+nMinPaperLength=120
+nMaxPaperLength=30000
+nMinMargin=0
+nMaxMargin=1270
+dwBufferFullLine=-1
+dwBufferFullSize=-1
+0
+
+[Paper00]
+szPaperName_mm = "RD 58mm"
+szPaperName_Inch = "RD 2.2""
+szPaperWidthString_Inch = "2.20""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 426
+nPaperWidth = 580
+nImageAreaWidth = 551
+nPaperWidthRes = 464
+nImageAreaWidthRes = 440
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 196
+wPinOffsetRight = 196
+nMaxFeed = 1015
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 4
+byRollWidMm = 58
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 426
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "58mm"
+szSizeIN = "2.2""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,0,24,0,0,0,0
+0
+
+[Paper01]
+szPaperName_mm = "RD 80mm"
+szPaperName_Inch = "RD 3.15""
+szPaperWidthString_Inch = "3.15""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 441
+nPaperWidth = 800
+nImageAreaWidth = 721
+nPaperWidthRes = 640
+nImageAreaWidthRes = 576
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 32
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 128
+wPinOffsetRight = 128
+nMaxFeed = 1015
+nMaxLength = 10000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 4
+byRollWidMm = 80
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 441
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "80mm"
+szSizeIN = "3.15""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,0,24,0,0,0,0
+0
+
+[Paper02]
+szPaperName_mm = "RD 102mm"
+szPaperName_Inch = "RD 4""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 415
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 812
+nImageAreaWidthRes = 788
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 22
+wPinOffsetRight = 22
+nMaxFeed = 1015
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 4
+byRollWidMm = 102
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 415
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm"
+szSizeIN = "4""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,0,24,0,0,0,0
+0
+
+
+[Paper03]
+szPaperName_mm = "RD 50mm x 85mm"
+szPaperName_Inch = "RD 1.9" x 3.3""
+szPaperWidthString_Inch = "1.90""
+szPaperLengthString_Inch = "3.30""
+nType = 0x4b
+nPaperSize = 427
+nPaperWidth = 500
+nImageAreaWidth = 470
+nPaperWidthRes = 400
+nImageAreaWidthRes = 376
+nPaperLength = 850
+nImageAreaLength = 791
+nPaperLengthRes = 679
+nImageAreaLengthRes = 632
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 228
+wPinOffsetRight = 228
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 7
+byRollWidMm = 54
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 427
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "50mm x 85mm"
+szSizeIN = "1.9" x 3.3""
+MediaAtrInfo = 0
+lblPitchDot = 709
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,1,24,0,0,0,0
+0
+
+
+[Paper04]
+szPaperName_mm = "RD 60mm x 92mm"
+szPaperName_Inch = "RD 2.3" x 3.6""
+szPaperWidthString_Inch = "2.30""
+szPaperLengthString_Inch = "3.60""
+nType = 0x4b
+nPaperSize = 428
+nPaperWidth = 600
+nImageAreaWidth = 571
+nPaperWidthRes = 480
+nImageAreaWidthRes = 456
+nPaperLength = 920
+nImageAreaLength = 861
+nPaperLengthRes = 735
+nImageAreaLengthRes = 688
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 188
+wPinOffsetRight = 188
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 7
+byRollWidMm = 64
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 428
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "60mm x 92mm"
+szSizeIN = "2.3" x 3.6""
+MediaAtrInfo = 0
+lblPitchDot = 779
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,1,24,0,0,0,0
+0
+
+
+[Paper05]
+szPaperName_mm = "RD 80mm x 115mm"
+szPaperName_Inch = "RD 3.1" x 4.5""
+szPaperWidthString_Inch = "3.10""
+szPaperLengthString_Inch = "4.50""
+nType = 0x4b
+nPaperSize = 429
+nPaperWidth = 800
+nImageAreaWidth = 771
+nPaperWidthRes = 639
+nImageAreaWidthRes = 616
+nPaperLength = 1150
+nImageAreaLength = 1081
+nPaperLengthRes = 919
+nImageAreaLengthRes = 864
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 28
+wPinOffsetLeft = 108
+wPinOffsetRight = 108
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 7
+byRollWidMm = 84
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 429
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "80mm x 115mm"
+szSizeIN = "3.1" x 4.5""
+MediaAtrInfo = 0
+lblPitchDot = 948
+markNoChkValu = 0
+reserved_12_ = 28,0,0,0,0,0,1,28,0,0,0,0
+0
+
+[Paper06]
+szPaperName_mm = "RD 102mm x 26mm"
+szPaperName_Inch = "RD 4" x 1""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = "1.00""
+nType = 0x4b
+nPaperSize = 423
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 812
+nImageAreaWidthRes = 788
+nPaperLength = 256
+nImageAreaLength = 195
+nPaperLengthRes = 205
+nImageAreaLengthRes = 156
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 22
+wPinOffsetRight = 22
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 7
+byRollWidMm = 106
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 423
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 26mm"
+szSizeIN = "4" x 1""
+MediaAtrInfo = 0
+lblPitchDot = 229
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,1,0,0,0,0,0
+0
+
+[Paper07]
+szPaperName_mm = "RD 102mm x 50mm"
+szPaperName_Inch = "RD 4" x 2""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = "2.00""
+nType = 0x4b
+nPaperSize = 419
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 812
+nImageAreaWidthRes = 788
+nPaperLength = 499
+nImageAreaLength = 439
+nPaperLengthRes = 399
+nImageAreaLengthRes = 351
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 22
+wPinOffsetRight = 22
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 7
+byRollWidMm = 106
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 419
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 50mm"
+szSizeIN = "4" x 2""
+MediaAtrInfo = 0
+lblPitchDot = 423
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,1,24,0,0,0,0
+0
+
+
+[Paper08]
+szPaperName_mm = "RD 102mm x 76mm"
+szPaperName_Inch = "RD 4" x 3""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = "3.00""
+nType = 0x4b
+nPaperSize = 424
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 812
+nImageAreaWidthRes = 788
+nPaperLength = 762
+nImageAreaLength = 702
+nPaperLengthRes = 609
+nImageAreaLengthRes = 561
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 22
+wPinOffsetRight = 22
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 7
+byRollWidMm = 106
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 424
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 76mm"
+szSizeIN = "4" x 3""
+MediaAtrInfo = 0
+lblPitchDot = 635
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,1,24,0,0,0,0
+0
+
+[Paper09]
+szPaperName_mm = "RD 102mm x 102mm"
+szPaperName_Inch = "RD 4" x 4""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = "4.00""
+nType = 0x4b
+nPaperSize = 425
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 812
+nImageAreaWidthRes = 788
+nPaperLength = 1016
+nImageAreaLength = 956
+nPaperLengthRes = 812
+nImageAreaLengthRes = 764
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 22
+wPinOffsetRight = 22
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 7
+byRollWidMm = 106
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 425
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 102mm"
+szSizeIN = "4" x 4""
+MediaAtrInfo = 0
+lblPitchDot = 847
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,1,24,0,0,0,0
+0
+
+[Paper10]
+szPaperName_mm = "RD 102mm x 152mm"
+szPaperName_Inch = "RD 4" x 6""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = "6.00""
+nType = 0x4b
+nPaperSize = 420
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 812
+nImageAreaWidthRes = 788
+nPaperLength = 1524
+nImageAreaLength = 1405
+nPaperLengthRes = 1218
+nImageAreaLengthRes = 1123
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 48
+wPinOffsetLeft = 22
+wPinOffsetRight = 22
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 7
+byRollWidMm = 106
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 420
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 152mm"
+szSizeIN = "4" x 6""
+MediaAtrInfo = 0
+lblPitchDot = 1270
+markNoChkValu = 0
+reserved_12_ = 48,0,0,0,0,0,1,48,0,0,0,0
+0
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bsr425ad.txt b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bsr425ad.txt
new file mode 100755
index 0000000..e9dd7b0
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bsr425ad.txt
@@ -0,0 +1,610 @@
+;******************************************************
+;
+; Brother RJ-4250WB PTD Source File
+;
+;
+;******************************************************
+[Version]
+FormatVersion=1.03.00.00
+ModelVersion=1.00.00.00
+OutputFileName="bsr425ad.ptd"
+0
+
+[Model]
+bySeriesCode=0x37
+byModelCode=0x44
+dmDeviceName="Brother RJ-4250WB"
+dwHeadPinNum=832
+dwDeviceAbility01=0x00160031
+dwDeviceAbility02=0x00000009
+wMinCopies=1
+wMaxCopies=9999
+wMinCutEveryNum=1
+wMaxCutEveryNum=1
+nDefaultPaperSize=420
+nDefaultPaperLength=1524
+nDefaultPaperLengthRes=1218
+wResolutionNum=1
+wResolutions=203,203
+nDefaultResolution=0
+nPTPaperResolution=0
+nDefaultPaperMargin=30
+nDefaultPaperMarginRes=24
+nDefaultLandscape=1
+dwOptionAbility01=0x0000C2C0
+dwOptionAbility02=0x00000000
+dwDefaultEnabledOptionAbility01=0x00000080
+dwDefaultEnabledOptionAbility02=0x00000000
+dwCommandAbility01=0x006106F6
+dwCommandAbility02=0x00000000
+nMinPaperLength=120
+nMaxPaperLength=30000
+nMinMargin=0
+nMaxMargin=1270
+dwBufferFullLine=-1
+dwBufferFullSize=-1
+0
+
+[Paper00]
+szPaperName_mm = "RD 58mm"
+szPaperName_Inch = "RD 2.2""
+szPaperWidthString_Inch = "2.20""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 426
+nPaperWidth = 580
+nImageAreaWidth = 551
+nPaperWidthRes = 464
+nImageAreaWidthRes = 440
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 196
+wPinOffsetRight = 196
+nMaxFeed = 1015
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 4
+byRollWidMm = 58
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 426
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "58mm"
+szSizeIN = "2.2""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,0,24,0,0,0,0
+0
+
+[Paper01]
+szPaperName_mm = "RD 102mm"
+szPaperName_Inch = "RD 4""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 415
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 812
+nImageAreaWidthRes = 788
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 22
+wPinOffsetRight = 22
+nMaxFeed = 1015
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 4
+byRollWidMm = 102
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 415
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm"
+szSizeIN = "4""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,0,24,0,0,0,0
+0
+
+
+[Paper02]
+szPaperName_mm = "RD 50mm x 85mm"
+szPaperName_Inch = "RD 1.9" x 3.3""
+szPaperWidthString_Inch = "1.90""
+szPaperLengthString_Inch = "3.30""
+nType = 0x4b
+nPaperSize = 427
+nPaperWidth = 500
+nImageAreaWidth = 470
+nPaperWidthRes = 400
+nImageAreaWidthRes = 376
+nPaperLength = 850
+nImageAreaLength = 791
+nPaperLengthRes = 679
+nImageAreaLengthRes = 632
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 228
+wPinOffsetRight = 228
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 7
+byRollWidMm = 54
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 427
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "50mm x 85mm"
+szSizeIN = "1.9" x 3.3""
+MediaAtrInfo = 0
+lblPitchDot = 709
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,1,24,0,0,0,0
+0
+
+
+[Paper03]
+szPaperName_mm = "RD 60mm x 92mm"
+szPaperName_Inch = "RD 2.3" x 3.6""
+szPaperWidthString_Inch = "2.30""
+szPaperLengthString_Inch = "3.60""
+nType = 0x4b
+nPaperSize = 428
+nPaperWidth = 600
+nImageAreaWidth = 571
+nPaperWidthRes = 480
+nImageAreaWidthRes = 456
+nPaperLength = 920
+nImageAreaLength = 861
+nPaperLengthRes = 735
+nImageAreaLengthRes = 688
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 188
+wPinOffsetRight = 188
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 7
+byRollWidMm = 64
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 428
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "60mm x 92mm"
+szSizeIN = "2.3" x 3.6""
+MediaAtrInfo = 0
+lblPitchDot = 779
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,1,24,0,0,0,0
+0
+
+
+[Paper04]
+szPaperName_mm = "RD 80mm x 115mm"
+szPaperName_Inch = "RD 3.1" x 4.5""
+szPaperWidthString_Inch = "3.10""
+szPaperLengthString_Inch = "4.50""
+nType = 0x4b
+nPaperSize = 429
+nPaperWidth = 800
+nImageAreaWidth = 771
+nPaperWidthRes = 639
+nImageAreaWidthRes = 616
+nPaperLength = 1150
+nImageAreaLength = 1081
+nPaperLengthRes = 919
+nImageAreaLengthRes = 864
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 28
+wPinOffsetLeft = 108
+wPinOffsetRight = 108
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 7
+byRollWidMm = 84
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 429
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "80mm x 115mm"
+szSizeIN = "3.1" x 4.5""
+MediaAtrInfo = 0
+lblPitchDot = 948
+markNoChkValu = 0
+reserved_12_ = 28,0,0,0,0,0,1,28,0,0,0,0
+0
+
+[Paper05]
+szPaperName_mm = "RD 102mm x 26mm"
+szPaperName_Inch = "RD 4" x 1""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = "1.00""
+nType = 0x4b
+nPaperSize = 423
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 812
+nImageAreaWidthRes = 788
+nPaperLength = 256
+nImageAreaLength = 195
+nPaperLengthRes = 205
+nImageAreaLengthRes = 156
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 22
+wPinOffsetRight = 22
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 7
+byRollWidMm = 106
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 423
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 26mm"
+szSizeIN = "4" x 1""
+MediaAtrInfo = 0
+lblPitchDot = 229
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,1,0,0,0,0,0
+0
+
+[Paper06]
+szPaperName_mm = "RD 102mm x 50mm"
+szPaperName_Inch = "RD 4" x 2""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = "2.00""
+nType = 0x4b
+nPaperSize = 419
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 812
+nImageAreaWidthRes = 788
+nPaperLength = 499
+nImageAreaLength = 439
+nPaperLengthRes = 399
+nImageAreaLengthRes = 351
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 22
+wPinOffsetRight = 22
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 7
+byRollWidMm = 106
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 419
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 50mm"
+szSizeIN = "4" x 2""
+MediaAtrInfo = 0
+lblPitchDot = 423
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,1,24,0,0,0,0
+0
+
+
+[Paper07]
+szPaperName_mm = "RD 102mm x 76mm"
+szPaperName_Inch = "RD 4" x 3""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = "3.00""
+nType = 0x4b
+nPaperSize = 424
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 812
+nImageAreaWidthRes = 788
+nPaperLength = 762
+nImageAreaLength = 702
+nPaperLengthRes = 609
+nImageAreaLengthRes = 561
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 22
+wPinOffsetRight = 22
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 7
+byRollWidMm = 106
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 424
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 76mm"
+szSizeIN = "4" x 3""
+MediaAtrInfo = 0
+lblPitchDot = 635
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,1,24,0,0,0,0
+0
+
+[Paper08]
+szPaperName_mm = "RD 102mm x 102mm"
+szPaperName_Inch = "RD 4" x 4""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = "4.00""
+nType = 0x4b
+nPaperSize = 425
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 812
+nImageAreaWidthRes = 788
+nPaperLength = 1016
+nImageAreaLength = 956
+nPaperLengthRes = 812
+nImageAreaLengthRes = 764
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 22
+wPinOffsetRight = 22
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 7
+byRollWidMm = 106
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 425
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 102mm"
+szSizeIN = "4" x 4""
+MediaAtrInfo = 0
+lblPitchDot = 847
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,1,24,0,0,0,0
+0
+
+[Paper09]
+szPaperName_mm = "RD 102mm x 152mm"
+szPaperName_Inch = "RD 4" x 6""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = "6.00""
+nType = 0x4b
+nPaperSize = 420
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 812
+nImageAreaWidthRes = 788
+nPaperLength = 1524
+nImageAreaLength = 1405
+nPaperLengthRes = 1218
+nImageAreaLengthRes = 1123
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 48
+wPinOffsetLeft = 22
+wPinOffsetRight = 22
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 7
+byRollWidMm = 106
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 420
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 152mm"
+szSizeIN = "4" x 6""
+MediaAtrInfo = 0
+lblPitchDot = 1270
+markNoChkValu = 0
+reserved_12_ = 48,0,0,0,0,0,1,48,0,0,0,0
+0
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bst212ad.ptd b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bst212ad.ptd
new file mode 100755
index 0000000..e37f078
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bst212ad.ptd differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bst213ad.ptd b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bst213ad.ptd
new file mode 100755
index 0000000..c4fa4a8
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bst213ad.ptd differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bst40ad.txt b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bst40ad.txt
new file mode 100755
index 0000000..461bcb2
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bst40ad.txt
@@ -0,0 +1,482 @@
+;******************************************************
+; Brother TD-4000 PTD Source File
+;
+; Copyright (C) 2009 Brother Industries, Ltd.
+;
+;
+;******************************************************
+[Version]
+FormatVersion=1.02.00.00
+ModelVersion=1.00.00.00
+OutputFileName="bst40ad.ptd"
+0
+
+[Model]
+bySeriesCode = 0x35
+byModelCode = 0x31
+dmDeviceName = "Brother TD-4000"
+dwHeadPinNum = 1296
+dwDeviceAbility01 = 0
+dwDeviceAbility02 = 0
+wMinCopies = 1
+wMaxCopies = 9999
+wMinCutEveryNum = 1
+wMaxCutEveryNum = 99
+nDefaultPaperSize = 421
+nDefaultPaperLength = 256
+nDefaultPaperLengthRes = 302
+wResolutionNum = 1
+wResolutions = 300,300
+0
+
+[Paper00]
+szPaperName_mm = "RD 76mm x 26mm"
+szPaperName_Inch = "RD 3" x 1""
+szPaperWidthString_Inch = "3""
+szPaperLengthString_Inch = "1""
+nType = 0x4b
+nPaperSize = 421
+nPaperWidth = 762
+nImageAreaWidth = 732
+nPaperWidthRes = 900
+nImageAreaWidthRes = 864
+nPaperLength = 256
+nImageAreaLength = 196
+nPaperLengthRes = 302
+nImageAreaLengthRes = 232
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 376
+wPinOffsetRight = 56
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 254
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00000080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 2
+byRollWidMm = 80
+byHeadDivide = 0x0A
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 421
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "76mm x 26mm"
+szSizeIN = "3" x 1""
+MediaAtrInfo = 0
+lblPitchDot = 337
+markNoChkValu = 210
+reserved_12_ = 35,0,0,0,0,0,0,0,0,0,0,0
+0
+
+[Paper01]
+szPaperName_mm = "RD 51mm x 26mm"
+szPaperName_Inch = "RD 2" x 1""
+szPaperWidthString_Inch = "2""
+szPaperLengthString_Inch = "1""
+nType = 0x4b
+nPaperSize = 422
+nPaperWidth = 508
+nImageAreaWidth = 478
+nPaperWidthRes = 600
+nImageAreaWidthRes = 564
+nPaperLength = 256
+nImageAreaLength = 196
+nPaperLengthRes = 302
+nImageAreaLengthRes = 232
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 676
+wPinOffsetRight = 56
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 254
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00000080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 2
+byRollWidMm = 55
+byHeadDivide = 0x06
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 422
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "51mm x 26mm"
+szSizeIN = "2" x 1""
+MediaAtrInfo = 0
+lblPitchDot = 337
+markNoChkValu = 210
+reserved_12_ = 35,0,0,0,0,0,0,0,0,0,0,0
+0
+
+[Paper02]
+szPaperName_mm = "RD 102mm x 50mm"
+szPaperName_Inch = "RD 4" x 2""
+szPaperWidthString_Inch = "4""
+szPaperLengthString_Inch = "2""
+nType = 0x4b
+nPaperSize = 419
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 1200
+nImageAreaWidthRes = 1164
+nPaperLength = 499
+nImageAreaLength = 439
+nPaperLengthRes = 589
+nImageAreaLengthRes = 519
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 76
+wPinOffsetRight = 56
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 254
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00000080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 2
+byRollWidMm = 106
+byHeadDivide = 0x0A
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 419
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 50mm"
+szSizeIN = "4" x 2""
+MediaAtrInfo = 0
+lblPitchDot = 625
+markNoChkValu = 210
+reserved_12_ = 35,0,0,0,0,0,0,0,0,0,0,0
+0
+
+[Paper03]
+szPaperName_mm = "RD 102mm x 152mm"
+szPaperName_Inch = "RD 4" x 6""
+szPaperWidthString_Inch = "4""
+szPaperLengthString_Inch = "2""
+nType = 0x4b
+nPaperSize = 420
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 1200
+nImageAreaWidthRes = 1164
+nPaperLength = 1524
+nImageAreaLength = 1463
+nPaperLengthRes = 1800
+nImageAreaLengthRes = 1728
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 36
+wPinOffsetLeft = 76
+wPinOffsetRight = 56
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 254
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00000080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 2
+byRollWidMm = 106
+byHeadDivide = 0x0A
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 420
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 152mm"
+szSizeIN = "4" x 6""
+MediaAtrInfo = 0
+lblPitchDot = 1874
+markNoChkValu = 210
+reserved_12_ = 36,0,0,0,0,0,0,0,0,0,0,0
+0
+
+
+[Paper04]
+szPaperName_mm = "RD 58mm"
+szPaperName_Inch = "RD 2.28""
+szPaperWidthString_Inch = "2.28""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 426
+nPaperWidth = 580
+nImageAreaWidth = 549
+nPaperWidthRes = 685
+nImageAreaWidthRes = 649
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 615
+wPinOffsetRight = 32
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 254
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00000081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 2
+byRollWidMm = 58
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 426
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "58mm"
+szSizeIN = "2.28""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 35,0,0,0,0,0,0,0,0,0,0,0
+0
+
+
+[Paper05]
+szPaperName_mm = "RD 76mm"
+szPaperName_Inch = "RD 2.9""
+szPaperWidthString_Inch = "2.9""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 439
+nPaperWidth = 760
+nImageAreaWidth = 729
+nPaperWidthRes = 897
+nImageAreaWidthRes = 861
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 379
+wPinOffsetRight = 56
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 254
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00000081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 2
+byRollWidMm = 80
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 439
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "76mm"
+szSizeIN = "2.9""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 35,0,0,0,0,0,0,0,0,0,0,0
+0
+
+
+[Paper06]
+szPaperName_mm = "RD 90mm"
+szPaperName_Inch = "RD 3.5""
+szPaperWidthString_Inch = "3.5""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 440
+nPaperWidth = 900
+nImageAreaWidth = 870
+nPaperWidthRes = 1063
+nImageAreaWidthRes = 1027
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 213
+wPinOffsetRight = 56
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 254
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00000081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 2
+byRollWidMm = 94
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 440
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "90mm"
+szSizeIN = "3.5""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 35,0,0,0,0,0,0,0,0,0,0,0
+0
+
+
+[Paper07]
+szPaperName_mm = "RD 102mm"
+szPaperName_Inch = "RD 4""
+szPaperWidthString_Inch = "4""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 415
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 1200
+nImageAreaWidthRes = 1164
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 76
+wPinOffsetRight = 56
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 254
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00000081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 2
+byRollWidMm = 106
+byHeadDivide = 0x0A
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 415
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm"
+szSizeIN = "4""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 35,0,0,0,0,0,0,0,0,0,0,0
+0
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bst41nad.txt b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bst41nad.txt
new file mode 100755
index 0000000..4a20415
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bst41nad.txt
@@ -0,0 +1,310 @@
+;******************************************************
+; Brother TD-4100N PTD Source File
+;
+; Copyright (C) 2009 Brother Industries, Ltd.
+;
+;
+;******************************************************
+[Version]
+FormatVersion=1.02.00.00
+ModelVersion=1.00.00.00
+OutputFileName="bst41nad.ptd"
+0
+
+[Model]
+bySeriesCode = 0x35
+byModelCode = 0x32
+dmDeviceName = "Brother TD-4100N"
+dwHeadPinNum = 1296
+dwDeviceAbility01 = 0
+dwDeviceAbility02 = 0
+wMinCopies = 1
+wMaxCopies = 9999
+wMinCutEveryNum = 1
+wMaxCutEveryNum = 99
+nDefaultPaperSize = 421
+nDefaultPaperLength = 256
+nDefaultPaperLengthRes = 302
+wResolutionNum = 1
+wResolutions = 300,300
+0
+
+[Paper00]
+szPaperName_mm = "RD 76mm x 26mm"
+szPaperName_Inch = "RD 3" x 1""
+szPaperWidthString_Inch = "3""
+szPaperLengthString_Inch = "1""
+nType = 0x4b
+nPaperSize = 421
+nPaperWidth = 762
+nImageAreaWidth = 732
+nPaperWidthRes = 900
+nImageAreaWidthRes = 864
+nPaperLength = 256
+nImageAreaLength = 196
+nPaperLengthRes = 302
+nImageAreaLengthRes = 232
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 376
+wPinOffsetRight = 56
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 254
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00000080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 2
+byRollWidMm = 80
+byHeadDivide = 0x0A
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 421
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "76mm x 26mm"
+szSizeIN = "3" x 1""
+MediaAtrInfo = 0
+lblPitchDot = 337
+markNoChkValu = 210
+reserved_12_ = 35,0,0,0,0,0,0,0,0,0,0,0
+0
+
+[Paper01]
+szPaperName_mm = "RD 51mm x 26mm"
+szPaperName_Inch = "RD 2" x 1""
+szPaperWidthString_Inch = "2""
+szPaperLengthString_Inch = "1""
+nType = 0x4b
+nPaperSize = 422
+nPaperWidth = 508
+nImageAreaWidth = 478
+nPaperWidthRes = 600
+nImageAreaWidthRes = 564
+nPaperLength = 256
+nImageAreaLength = 196
+nPaperLengthRes = 302
+nImageAreaLengthRes = 232
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 676
+wPinOffsetRight = 56
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 254
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00000080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 2
+byRollWidMm = 55
+byHeadDivide = 0x06
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 422
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "51mm x 26mm"
+szSizeIN = "2" x 1""
+MediaAtrInfo = 0
+lblPitchDot = 337
+markNoChkValu = 210
+reserved_12_ = 35,0,0,0,0,0,0,0,0,0,0,0
+0
+
+[Paper02]
+szPaperName_mm = "RD 102mm x 50mm"
+szPaperName_Inch = "RD 4" x 2""
+szPaperWidthString_Inch = "4""
+szPaperLengthString_Inch = "2""
+nType = 0x4b
+nPaperSize = 419
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 1200
+nImageAreaWidthRes = 1164
+nPaperLength = 499
+nImageAreaLength = 439
+nPaperLengthRes = 589
+nImageAreaLengthRes = 519
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 76
+wPinOffsetRight = 56
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 254
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00000080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 2
+byRollWidMm = 106
+byHeadDivide = 0x0A
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 419
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 50mm"
+szSizeIN = "4" x 2""
+MediaAtrInfo = 0
+lblPitchDot = 625
+markNoChkValu = 210
+reserved_12_ = 35,0,0,0,0,0,0,0,0,0,0,0
+0
+
+[Paper03]
+szPaperName_mm = "RD 102mm x 152mm"
+szPaperName_Inch = "RD 4" x 6""
+szPaperWidthString_Inch = "4""
+szPaperLengthString_Inch = "2""
+nType = 0x4b
+nPaperSize = 420
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 1200
+nImageAreaWidthRes = 1164
+nPaperLength = 1524
+nImageAreaLength = 1463
+nPaperLengthRes = 1800
+nImageAreaLengthRes = 1728
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 36
+wPinOffsetLeft = 76
+wPinOffsetRight = 56
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 254
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00000080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 2
+byRollWidMm = 106
+byHeadDivide = 0x0A
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 420
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 152mm"
+szSizeIN = "4" x 6""
+MediaAtrInfo = 0
+lblPitchDot = 1874
+markNoChkValu = 210
+reserved_12_ = 36,0,0,0,0,0,0,0,0,0,0,0
+0
+
+[Paper04]
+szPaperName_mm = "RD 102mm"
+szPaperName_Inch = "RD 4""
+szPaperWidthString_Inch = "4""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 415
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 1200
+nImageAreaWidthRes = 1164
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 76
+wPinOffsetRight = 56
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 254
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00000081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 2
+byRollWidMm = 106
+byHeadDivide = 0x0A
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 415
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm"
+szSizeIN = "4""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 35,0,0,0,0,0,0,0,0,0,0,0
+0
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bst441ad.txt b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bst441ad.txt
new file mode 100755
index 0000000..fe09688
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bst441ad.txt
@@ -0,0 +1,495 @@
+;******************************************************
+;
+; Brother TD-4410D PTD Source File
+;
+;
+;******************************************************
+[Version]
+FormatVersion=1.03.00.00
+ModelVersion=1.00.00.00
+OutputFileName="bst441ad.ptd"
+0
+
+[Model]
+bySeriesCode=0x35
+byModelCode=0x37
+dmDeviceName="Brother TD-4410D"
+dwHeadPinNum=832
+dwDeviceAbility01=0x10040032
+dwDeviceAbility02=0x00000009
+wMinCopies=1
+wMaxCopies=9999
+wMinCutEveryNum=1
+wMaxCutEveryNum=1
+nDefaultPaperSize=420
+nDefaultPaperLength=1524
+nDefaultPaperLengthRes=1218
+wResolutionNum=1
+wResolutions=203,203
+nDefaultResolution=0
+nPTPaperResolution=0
+nDefaultPaperMargin=30
+nDefaultPaperMarginRes=24
+nDefaultLandscape=1
+dwOptionAbility01=0x0004C6E2
+dwOptionAbility02=0x00000000
+dwDefaultEnabledOptionAbility01=0x00000080
+dwDefaultEnabledOptionAbility02=0x00000000
+dwCommandAbility01=0x006006F6
+dwCommandAbility02=0x00000000
+nMinPaperLength=120
+nMaxPaperLength=30000
+nMinMargin=0
+nMaxMargin=1270
+dwBufferFullLine=-1
+dwBufferFullSize=-1
+0
+
+[Paper00]
+szPaperName_mm = "RD 102mm x 152mm"
+szPaperName_Inch = "RD 4" x 6""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = "6.00""
+nType = 0x4b
+nPaperSize = 420
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 812
+nImageAreaWidthRes = 788
+nPaperLength = 1524
+nImageAreaLength = 1405
+nPaperLengthRes = 1218
+nImageAreaLengthRes = 1123
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 22
+wPinOffsetRight = 22
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 15
+byRollWidMm = 106
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 420
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 152mm"
+szSizeIN = "4" x 6""
+MediaAtrInfo = 0
+lblPitchDot = 1270
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,1,24,0,0,0,0
+0
+
+[Paper01]
+szPaperName_mm = "RD 102mm x 50mm"
+szPaperName_Inch = "RD 4" x 2""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = "2.00""
+nType = 0x4b
+nPaperSize = 419
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 812
+nImageAreaWidthRes = 788
+nPaperLength = 499
+nImageAreaLength = 439
+nPaperLengthRes = 399
+nImageAreaLengthRes = 351
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 22
+wPinOffsetRight = 22
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 15
+byRollWidMm = 106
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 419
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 50mm"
+szSizeIN = "4" x 2""
+MediaAtrInfo = 0
+lblPitchDot = 423
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,1,24,0,0,0,0
+0
+
+[Paper02]
+szPaperName_mm = "RD 76mm x 26mm"
+szPaperName_Inch = "RD 3" x 1""
+szPaperWidthString_Inch = "3""
+szPaperLengthString_Inch = "1""
+nType = 0x4b
+nPaperSize = 421
+nPaperWidth = 762
+nImageAreaWidth = 732
+nPaperWidthRes = 609
+nImageAreaWidthRes = 585
+nPaperLength = 256
+nImageAreaLength = 196
+nPaperLengthRes = 204
+nImageAreaLengthRes = 156
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 124
+wPinOffsetRight = 123
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 254
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 15
+byRollWidMm = 80
+byHeadDivide = 0x0A
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 421
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "76mm x 26mm"
+szSizeIN = "3" x 1""
+MediaAtrInfo = 0
+lblPitchDot = 337
+markNoChkValu = 210
+reserved_12_ = 24,0,0,0,0,0,1,24,0,0,0,0
+0
+
+
+[Paper03]
+szPaperName_mm = "RD 51mm x 26mm"
+szPaperName_Inch = "RD 2" x 1""
+szPaperWidthString_Inch = "2""
+szPaperLengthString_Inch = "1""
+nType = 0x4b
+nPaperSize = 422
+nPaperWidth = 508
+nImageAreaWidth = 478
+nPaperWidthRes = 406
+nImageAreaWidthRes = 382
+nPaperLength = 256
+nImageAreaLength = 196
+nPaperLengthRes = 204
+nImageAreaLengthRes = 156
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 225
+wPinOffsetRight = 225
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 254
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 15
+byRollWidMm = 55
+byHeadDivide = 0x06
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 422
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "51mm x 26mm"
+szSizeIN = "2" x 1""
+MediaAtrInfo = 0
+lblPitchDot = 337
+markNoChkValu = 210
+reserved_12_ = 24,0,0,0,0,0,1,24,0,0,0,0
+0
+
+[Paper04]
+szPaperName_mm = "RD 102mm"
+szPaperName_Inch = "RD 4""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 415
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 812
+nImageAreaWidthRes = 788
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 22
+wPinOffsetRight = 22
+nMaxFeed = 1015
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 4
+byRollWidMm = 102
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 415
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm"
+szSizeIN = "4""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,0,0,0,0,0,0
+0
+
+[Paper05]
+szPaperName_mm = "RD 90mm"
+szPaperName_Inch = "RD 3.5""
+szPaperWidthString_Inch = "3.5""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 440
+nPaperWidth = 900
+nImageAreaWidth = 870
+nPaperWidthRes = 719
+nImageAreaWidthRes = 695
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 69
+wPinOffsetRight = 68
+nMaxFeed = 1015
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 15
+byRollWidMm = 94
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 440
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "90mm"
+szSizeIN = "3.5""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,0,0,0,0,0,0
+0
+
+[Paper06]
+szPaperName_mm = "RD 76mm"
+szPaperName_Inch = "RD 2.9""
+szPaperWidthString_Inch = "2.9""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 439
+nPaperWidth = 760
+nImageAreaWidth = 729
+nPaperWidthRes = 607
+nImageAreaWidthRes = 583
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 125
+wPinOffsetRight = 124
+nMaxFeed = 1015
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 15
+byRollWidMm = 80
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 439
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "76mm"
+szSizeIN = "2.9""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,0,0,0,0,0,0
+0
+
+[Paper07]
+szPaperName_mm = "RD 58mm"
+szPaperName_Inch = "RD 2.2""
+szPaperWidthString_Inch = "2.20""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 426
+nPaperWidth = 580
+nImageAreaWidth = 551
+nPaperWidthRes = 464
+nImageAreaWidthRes = 440
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 196
+wPinOffsetRight = 196
+nMaxFeed = 1015
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 13
+byRollWidMm = 58
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 426
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "58mm"
+szSizeIN = "2.2""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,0,0,0,0,0,0
+0
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bst442ad.txt b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bst442ad.txt
new file mode 100755
index 0000000..7cff8ef
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bst442ad.txt
@@ -0,0 +1,495 @@
+;******************************************************
+;
+; Brother TD-4420DN PTD Source File
+;
+;
+;******************************************************
+[Version]
+FormatVersion=1.03.00.00
+ModelVersion=1.00.00.00
+OutputFileName="bst442ad.ptd"
+0
+
+[Model]
+bySeriesCode=0x35
+byModelCode=0x38
+dmDeviceName="Brother TD-4420DN"
+dwHeadPinNum=832
+dwDeviceAbility01=0x100C0032
+dwDeviceAbility02=0x00000009
+wMinCopies=1
+wMaxCopies=9999
+wMinCutEveryNum=1
+wMaxCutEveryNum=1
+nDefaultPaperSize=420
+nDefaultPaperLength=1524
+nDefaultPaperLengthRes=1218
+wResolutionNum=1
+wResolutions=203,203
+nDefaultResolution=0
+nPTPaperResolution=0
+nDefaultPaperMargin=30
+nDefaultPaperMarginRes=24
+nDefaultLandscape=1
+dwOptionAbility01=0x0004C6E2
+dwOptionAbility02=0x00000000
+dwDefaultEnabledOptionAbility01=0x00000080
+dwDefaultEnabledOptionAbility02=0x00000000
+dwCommandAbility01=0x006006F6
+dwCommandAbility02=0x00000000
+nMinPaperLength=120
+nMaxPaperLength=30000
+nMinMargin=0
+nMaxMargin=1270
+dwBufferFullLine=-1
+dwBufferFullSize=-1
+0
+
+[Paper00]
+szPaperName_mm = "RD 102mm x 152mm"
+szPaperName_Inch = "RD 4" x 6""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = "6.00""
+nType = 0x4b
+nPaperSize = 420
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 812
+nImageAreaWidthRes = 788
+nPaperLength = 1524
+nImageAreaLength = 1405
+nPaperLengthRes = 1218
+nImageAreaLengthRes = 1123
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 22
+wPinOffsetRight = 22
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 15
+byRollWidMm = 106
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 420
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 152mm"
+szSizeIN = "4" x 6""
+MediaAtrInfo = 0
+lblPitchDot = 1270
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,1,24,0,0,0,0
+0
+
+[Paper01]
+szPaperName_mm = "RD 102mm x 50mm"
+szPaperName_Inch = "RD 4" x 2""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = "2.00""
+nType = 0x4b
+nPaperSize = 419
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 812
+nImageAreaWidthRes = 788
+nPaperLength = 499
+nImageAreaLength = 439
+nPaperLengthRes = 399
+nImageAreaLengthRes = 351
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 22
+wPinOffsetRight = 22
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 15
+byRollWidMm = 106
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 419
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 50mm"
+szSizeIN = "4" x 2""
+MediaAtrInfo = 0
+lblPitchDot = 423
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,1,24,0,0,0,0
+0
+
+[Paper02]
+szPaperName_mm = "RD 76mm x 26mm"
+szPaperName_Inch = "RD 3" x 1""
+szPaperWidthString_Inch = "3""
+szPaperLengthString_Inch = "1""
+nType = 0x4b
+nPaperSize = 421
+nPaperWidth = 762
+nImageAreaWidth = 732
+nPaperWidthRes = 609
+nImageAreaWidthRes = 585
+nPaperLength = 256
+nImageAreaLength = 196
+nPaperLengthRes = 204
+nImageAreaLengthRes = 156
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 124
+wPinOffsetRight = 123
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 254
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 15
+byRollWidMm = 80
+byHeadDivide = 0x0A
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 421
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "76mm x 26mm"
+szSizeIN = "3" x 1""
+MediaAtrInfo = 0
+lblPitchDot = 337
+markNoChkValu = 210
+reserved_12_ = 24,0,0,0,0,0,1,24,0,0,0,0
+0
+
+
+[Paper03]
+szPaperName_mm = "RD 51mm x 26mm"
+szPaperName_Inch = "RD 2" x 1""
+szPaperWidthString_Inch = "2""
+szPaperLengthString_Inch = "1""
+nType = 0x4b
+nPaperSize = 422
+nPaperWidth = 508
+nImageAreaWidth = 478
+nPaperWidthRes = 406
+nImageAreaWidthRes = 382
+nPaperLength = 256
+nImageAreaLength = 196
+nPaperLengthRes = 204
+nImageAreaLengthRes = 156
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 225
+wPinOffsetRight = 225
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 254
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 15
+byRollWidMm = 55
+byHeadDivide = 0x06
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 422
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "51mm x 26mm"
+szSizeIN = "2" x 1""
+MediaAtrInfo = 0
+lblPitchDot = 337
+markNoChkValu = 210
+reserved_12_ = 24,0,0,0,0,0,1,24,0,0,0,0
+0
+
+[Paper04]
+szPaperName_mm = "RD 102mm"
+szPaperName_Inch = "RD 4""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 415
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 812
+nImageAreaWidthRes = 788
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 22
+wPinOffsetRight = 22
+nMaxFeed = 1015
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 4
+byRollWidMm = 102
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 415
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm"
+szSizeIN = "4""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,0,0,0,0,0,0
+0
+
+[Paper05]
+szPaperName_mm = "RD 90mm"
+szPaperName_Inch = "RD 3.5""
+szPaperWidthString_Inch = "3.5""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 440
+nPaperWidth = 900
+nImageAreaWidth = 870
+nPaperWidthRes = 719
+nImageAreaWidthRes = 695
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 69
+wPinOffsetRight = 68
+nMaxFeed = 1015
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 15
+byRollWidMm = 94
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 440
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "90mm"
+szSizeIN = "3.5""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,0,0,0,0,0,0
+0
+
+[Paper06]
+szPaperName_mm = "RD 76mm"
+szPaperName_Inch = "RD 2.9""
+szPaperWidthString_Inch = "2.9""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 439
+nPaperWidth = 760
+nImageAreaWidth = 729
+nPaperWidthRes = 607
+nImageAreaWidthRes = 583
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 125
+wPinOffsetRight = 124
+nMaxFeed = 1015
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 15
+byRollWidMm = 80
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 439
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "76mm"
+szSizeIN = "2.9""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,0,0,0,0,0,0
+0
+
+[Paper07]
+szPaperName_mm = "RD 58mm"
+szPaperName_Inch = "RD 2.2""
+szPaperWidthString_Inch = "2.20""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 426
+nPaperWidth = 580
+nImageAreaWidth = 551
+nPaperWidthRes = 464
+nImageAreaWidthRes = 440
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 12
+nPhysicalOffsetY = 24
+wPinOffsetLeft = 196
+wPinOffsetRight = 196
+nMaxFeed = 1015
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 13
+byRollWidMm = 58
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 426
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "58mm"
+szSizeIN = "2.2""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 24,0,0,0,0,0,0,0,0,0,0,0
+0
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bst451ad.txt b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bst451ad.txt
new file mode 100755
index 0000000..07eba39
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bst451ad.txt
@@ -0,0 +1,495 @@
+;******************************************************
+;
+; Brother TD-4510D PTD Source File
+;
+;
+;******************************************************
+[Version]
+FormatVersion=1.03.00.00
+ModelVersion=1.00.00.00
+OutputFileName="bst451ad.ptd"
+0
+
+[Model]
+bySeriesCode=0x35
+byModelCode=0x39
+dmDeviceName="Brother TD-4510D"
+dwHeadPinNum=1280
+dwDeviceAbility01=0x10040032
+dwDeviceAbility02=0x00000009
+wMinCopies=1
+wMaxCopies=9999
+wMinCutEveryNum=1
+wMaxCutEveryNum=1
+nDefaultPaperSize=415
+nDefaultPaperLength=0
+nDefaultPaperLengthRes=0
+wResolutionNum=1
+wResolutions=300,300
+nDefaultResolution=0
+nPTPaperResolution=0
+nDefaultPaperMargin=30
+nDefaultPaperMarginRes=35
+nDefaultLandscape=1
+dwOptionAbility01=0x0004C6E2
+dwOptionAbility02=0x00000000
+dwDefaultEnabledOptionAbility01=0x00000080
+dwDefaultEnabledOptionAbility02=0x00000000
+dwCommandAbility01=0x006006F6
+dwCommandAbility02=0x00000000
+nMinPaperLength=120
+nMaxPaperLength=30000
+nMinMargin=0
+nMaxMargin=1270
+dwBufferFullLine=-1
+dwBufferFullSize=-1
+0
+
+[Paper00]
+szPaperName_mm = "RD 102mm x 152mm"
+szPaperName_Inch = "RD 4" x 6""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = "6.00""
+nType = 0x4b
+nPaperSize = 420
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 1200
+nImageAreaWidthRes = 1164
+nPaperLength = 1524
+nImageAreaLength = 1405
+nPaperLengthRes = 1800
+nImageAreaLengthRes = 1728
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 36
+wPinOffsetLeft = 58
+wPinOffsetRight = 58
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 10
+byRollWidMm = 106
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 420
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 152mm"
+szSizeIN = "4" x 6""
+MediaAtrInfo = 0
+lblPitchDot = 1270
+markNoChkValu = 0
+reserved_12_ = 36,0,0,0,0,0,1,36,0,0,0,0
+0
+
+[Paper01]
+szPaperName_mm = "RD 102mm x 50mm"
+szPaperName_Inch = "RD 4" x 2""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = "2.00""
+nType = 0x4b
+nPaperSize = 419
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 1200
+nImageAreaWidthRes = 1164
+nPaperLength = 499
+nImageAreaLength = 439
+nPaperLengthRes = 589
+nImageAreaLengthRes = 519
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 58
+wPinOffsetRight = 58
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 10
+byRollWidMm = 106
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 419
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 50mm"
+szSizeIN = "4" x 2""
+MediaAtrInfo = 0
+lblPitchDot = 423
+markNoChkValu = 0
+reserved_12_ = 35,0,0,0,0,0,1,35,0,0,0,0
+0
+
+[Paper02]
+szPaperName_mm = "RD 76mm x 26mm"
+szPaperName_Inch = "RD 3" x 1""
+szPaperWidthString_Inch = "3""
+szPaperLengthString_Inch = "1""
+nType = 0x4b
+nPaperSize = 421
+nPaperWidth = 762
+nImageAreaWidth = 732
+nPaperWidthRes = 900
+nImageAreaWidthRes = 864
+nPaperLength = 256
+nImageAreaLength = 196
+nPaperLengthRes = 302
+nImageAreaLengthRes = 232
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 208
+wPinOffsetRight = 208
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 254
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 10
+byRollWidMm = 80
+byHeadDivide = 0x0A
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 421
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "76mm x 26mm"
+szSizeIN = "3" x 1""
+MediaAtrInfo = 0
+lblPitchDot = 337
+markNoChkValu = 210
+reserved_12_ = 35,0,0,0,0,0,1,35,0,0,0,0
+0
+
+
+[Paper03]
+szPaperName_mm = "RD 51mm x 26mm"
+szPaperName_Inch = "RD 2" x 1""
+szPaperWidthString_Inch = "2""
+szPaperLengthString_Inch = "1""
+nType = 0x4b
+nPaperSize = 422
+nPaperWidth = 508
+nImageAreaWidth = 478
+nPaperWidthRes = 600
+nImageAreaWidthRes = 564
+nPaperLength = 256
+nImageAreaLength = 196
+nPaperLengthRes = 302
+nImageAreaLengthRes = 232
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 358
+wPinOffsetRight = 358
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 254
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 10
+byRollWidMm = 55
+byHeadDivide = 0x06
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 422
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "51mm x 26mm"
+szSizeIN = "2" x 1""
+MediaAtrInfo = 0
+lblPitchDot = 337
+markNoChkValu = 210
+reserved_12_ = 35,0,0,0,0,0,1,35,0,0,0,0
+0
+
+[Paper04]
+szPaperName_mm = "RD 102mm"
+szPaperName_Inch = "RD 4""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 415
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 1200
+nImageAreaWidthRes = 1164
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 58
+wPinOffsetRight = 58
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 10
+byRollWidMm = 102
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 415
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm"
+szSizeIN = "4""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 35,0,0,0,0,0,0,0,0,0,0,0
+0
+
+[Paper05]
+szPaperName_mm = "RD 90mm"
+szPaperName_Inch = "RD 3.5""
+szPaperWidthString_Inch = "3.5""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 440
+nPaperWidth = 900
+nImageAreaWidth = 870
+nPaperWidthRes = 1063
+nImageAreaWidthRes = 1027
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 127
+wPinOffsetRight = 126
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 10
+byRollWidMm = 94
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 440
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "90mm"
+szSizeIN = "3.5""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 35,0,0,0,0,0,0,0,0,0,0,0
+0
+
+[Paper06]
+szPaperName_mm = "RD 76mm"
+szPaperName_Inch = "RD 2.9""
+szPaperWidthString_Inch = "2.9""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 439
+nPaperWidth = 760
+nImageAreaWidth = 729
+nPaperWidthRes = 897
+nImageAreaWidthRes = 861
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 210
+wPinOffsetRight = 209
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 10
+byRollWidMm = 80
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 439
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "76mm"
+szSizeIN = "2.9""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 35,0,0,0,0,0,0,0,0,0,0,0
+0
+
+[Paper07]
+szPaperName_mm = "RD 58mm"
+szPaperName_Inch = "RD 2.2""
+szPaperWidthString_Inch = "2.20""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 426
+nPaperWidth = 580
+nImageAreaWidth = 551
+nPaperWidthRes = 685
+nImageAreaWidthRes = 649
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 316
+wPinOffsetRight = 315
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 8
+byRollWidMm = 58
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 426
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "58mm"
+szSizeIN = "2.2""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 35,0,0,0,0,0,0,0,0,0,0,0
+0
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bst452ad.txt b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bst452ad.txt
new file mode 100755
index 0000000..a2f01b2
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bst452ad.txt
@@ -0,0 +1,495 @@
+;******************************************************
+;
+; Brother TD-4520DN PTD Source File
+;
+;
+;******************************************************
+[Version]
+FormatVersion=1.03.00.00
+ModelVersion=1.00.00.00
+OutputFileName="bst452ad.ptd"
+0
+
+[Model]
+bySeriesCode=0x35
+byModelCode=0x41
+dmDeviceName="Brother TD-4520DN"
+dwHeadPinNum=1280
+dwDeviceAbility01=0x100C0032
+dwDeviceAbility02=0x00000009
+wMinCopies=1
+wMaxCopies=9999
+wMinCutEveryNum=1
+wMaxCutEveryNum=1
+nDefaultPaperSize=415
+nDefaultPaperLength=0
+nDefaultPaperLengthRes=0
+wResolutionNum=1
+wResolutions=300,300
+nDefaultResolution=0
+nPTPaperResolution=0
+nDefaultPaperMargin=30
+nDefaultPaperMarginRes=35
+nDefaultLandscape=1
+dwOptionAbility01=0x0004C6E2
+dwOptionAbility02=0x00000000
+dwDefaultEnabledOptionAbility01=0x00000080
+dwDefaultEnabledOptionAbility02=0x00000000
+dwCommandAbility01=0x006006F6
+dwCommandAbility02=0x00000000
+nMinPaperLength=120
+nMaxPaperLength=30000
+nMinMargin=0
+nMaxMargin=1270
+dwBufferFullLine=-1
+dwBufferFullSize=-1
+0
+
+[Paper00]
+szPaperName_mm = "RD 102mm x 152mm"
+szPaperName_Inch = "RD 4" x 6""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = "6.00""
+nType = 0x4b
+nPaperSize = 420
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 1200
+nImageAreaWidthRes = 1164
+nPaperLength = 1524
+nImageAreaLength = 1405
+nPaperLengthRes = 1800
+nImageAreaLengthRes = 1728
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 36
+wPinOffsetLeft = 58
+wPinOffsetRight = 58
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 10
+byRollWidMm = 106
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 420
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 152mm"
+szSizeIN = "4" x 6""
+MediaAtrInfo = 0
+lblPitchDot = 1270
+markNoChkValu = 0
+reserved_12_ = 36,0,0,0,0,0,1,36,0,0,0,0
+0
+
+[Paper01]
+szPaperName_mm = "RD 102mm x 50mm"
+szPaperName_Inch = "RD 4" x 2""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = "2.00""
+nType = 0x4b
+nPaperSize = 419
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 1200
+nImageAreaWidthRes = 1164
+nPaperLength = 499
+nImageAreaLength = 439
+nPaperLengthRes = 589
+nImageAreaLengthRes = 519
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 58
+wPinOffsetRight = 58
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 10
+byRollWidMm = 106
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 419
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 50mm"
+szSizeIN = "4" x 2""
+MediaAtrInfo = 0
+lblPitchDot = 423
+markNoChkValu = 0
+reserved_12_ = 35,0,0,0,0,0,1,35,0,0,0,0
+0
+
+[Paper02]
+szPaperName_mm = "RD 76mm x 26mm"
+szPaperName_Inch = "RD 3" x 1""
+szPaperWidthString_Inch = "3""
+szPaperLengthString_Inch = "1""
+nType = 0x4b
+nPaperSize = 421
+nPaperWidth = 762
+nImageAreaWidth = 732
+nPaperWidthRes = 900
+nImageAreaWidthRes = 864
+nPaperLength = 256
+nImageAreaLength = 196
+nPaperLengthRes = 302
+nImageAreaLengthRes = 232
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 208
+wPinOffsetRight = 208
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 254
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 10
+byRollWidMm = 80
+byHeadDivide = 0x0A
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 421
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "76mm x 26mm"
+szSizeIN = "3" x 1""
+MediaAtrInfo = 0
+lblPitchDot = 337
+markNoChkValu = 210
+reserved_12_ = 35,0,0,0,0,0,1,35,0,0,0,0
+0
+
+
+[Paper03]
+szPaperName_mm = "RD 51mm x 26mm"
+szPaperName_Inch = "RD 2" x 1""
+szPaperWidthString_Inch = "2""
+szPaperLengthString_Inch = "1""
+nType = 0x4b
+nPaperSize = 422
+nPaperWidth = 508
+nImageAreaWidth = 478
+nPaperWidthRes = 600
+nImageAreaWidthRes = 564
+nPaperLength = 256
+nImageAreaLength = 196
+nPaperLengthRes = 302
+nImageAreaLengthRes = 232
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 358
+wPinOffsetRight = 358
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 254
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 10
+byRollWidMm = 55
+byHeadDivide = 0x06
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 422
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "51mm x 26mm"
+szSizeIN = "2" x 1""
+MediaAtrInfo = 0
+lblPitchDot = 337
+markNoChkValu = 210
+reserved_12_ = 35,0,0,0,0,0,1,35,0,0,0,0
+0
+
+[Paper04]
+szPaperName_mm = "RD 102mm"
+szPaperName_Inch = "RD 4""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 415
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 1200
+nImageAreaWidthRes = 1164
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 58
+wPinOffsetRight = 58
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 10
+byRollWidMm = 102
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 415
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm"
+szSizeIN = "4""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 35,0,0,0,0,0,0,0,0,0,0,0
+0
+
+[Paper05]
+szPaperName_mm = "RD 90mm"
+szPaperName_Inch = "RD 3.5""
+szPaperWidthString_Inch = "3.5""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 440
+nPaperWidth = 900
+nImageAreaWidth = 870
+nPaperWidthRes = 1063
+nImageAreaWidthRes = 1027
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 127
+wPinOffsetRight = 126
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 10
+byRollWidMm = 94
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 440
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "90mm"
+szSizeIN = "3.5""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 35,0,0,0,0,0,0,0,0,0,0,0
+0
+
+[Paper06]
+szPaperName_mm = "RD 76mm"
+szPaperName_Inch = "RD 2.9""
+szPaperWidthString_Inch = "2.9""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 439
+nPaperWidth = 760
+nImageAreaWidth = 729
+nPaperWidthRes = 897
+nImageAreaWidthRes = 861
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 210
+wPinOffsetRight = 209
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 10
+byRollWidMm = 80
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 439
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "76mm"
+szSizeIN = "2.9""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 35,0,0,0,0,0,0,0,0,0,0,0
+0
+
+[Paper07]
+szPaperName_mm = "RD 58mm"
+szPaperName_Inch = "RD 2.2""
+szPaperWidthString_Inch = "2.20""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 426
+nPaperWidth = 580
+nImageAreaWidth = 551
+nPaperWidthRes = 685
+nImageAreaWidthRes = 649
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 316
+wPinOffsetRight = 315
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 8
+byRollWidMm = 58
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 426
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "58mm"
+szSizeIN = "2.2""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 35,0,0,0,0,0,0,0,0,0,0,0
+0
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bst455ad.txt b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bst455ad.txt
new file mode 100755
index 0000000..b3f5ea0
--- /dev/null
+++ b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/bst455ad.txt
@@ -0,0 +1,495 @@
+;******************************************************
+;
+; Brother TD-4550DNWB PTD Source File
+;
+;
+;******************************************************
+[Version]
+FormatVersion=1.03.00.00
+ModelVersion=1.00.00.00
+OutputFileName="bst455ad.ptd"
+0
+
+[Model]
+bySeriesCode=0x35
+byModelCode=0x42
+dmDeviceName="Brother TD-4550DNWB"
+dwHeadPinNum=1280
+dwDeviceAbility01=0x101E0032
+dwDeviceAbility02=0x00000009
+wMinCopies=1
+wMaxCopies=9999
+wMinCutEveryNum=1
+wMaxCutEveryNum=1
+nDefaultPaperSize=415
+nDefaultPaperLength=0
+nDefaultPaperLengthRes=0
+wResolutionNum=1
+wResolutions=300,300
+nDefaultResolution=0
+nPTPaperResolution=0
+nDefaultPaperMargin=30
+nDefaultPaperMarginRes=35
+nDefaultLandscape=1
+dwOptionAbility01=0x0004C6E2
+dwOptionAbility02=0x00000000
+dwDefaultEnabledOptionAbility01=0x00000080
+dwDefaultEnabledOptionAbility02=0x00000000
+dwCommandAbility01=0x006006F6
+dwCommandAbility02=0x00000000
+nMinPaperLength=120
+nMaxPaperLength=30000
+nMinMargin=0
+nMaxMargin=1270
+dwBufferFullLine=-1
+dwBufferFullSize=-1
+0
+
+[Paper00]
+szPaperName_mm = "RD 102mm x 152mm"
+szPaperName_Inch = "RD 4" x 6""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = "6.00""
+nType = 0x4b
+nPaperSize = 420
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 1200
+nImageAreaWidthRes = 1164
+nPaperLength = 1524
+nImageAreaLength = 1405
+nPaperLengthRes = 1800
+nImageAreaLengthRes = 1728
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 36
+wPinOffsetLeft = 58
+wPinOffsetRight = 58
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 10
+byRollWidMm = 106
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 420
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 152mm"
+szSizeIN = "4" x 6""
+MediaAtrInfo = 0
+lblPitchDot = 1270
+markNoChkValu = 0
+reserved_12_ = 36,0,0,0,0,0,1,36,0,0,0,0
+0
+
+[Paper01]
+szPaperName_mm = "RD 102mm x 50mm"
+szPaperName_Inch = "RD 4" x 2""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = "2.00""
+nType = 0x4b
+nPaperSize = 419
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 1200
+nImageAreaWidthRes = 1164
+nPaperLength = 499
+nImageAreaLength = 439
+nPaperLengthRes = 589
+nImageAreaLengthRes = 519
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 58
+wPinOffsetRight = 58
+nMaxFeed = 0
+nMaxLength = 0
+nMinLength = 0
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 10
+byRollWidMm = 106
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 419
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm x 50mm"
+szSizeIN = "4" x 2""
+MediaAtrInfo = 0
+lblPitchDot = 423
+markNoChkValu = 0
+reserved_12_ = 35,0,0,0,0,0,1,35,0,0,0,0
+0
+
+[Paper02]
+szPaperName_mm = "RD 76mm x 26mm"
+szPaperName_Inch = "RD 3" x 1""
+szPaperWidthString_Inch = "3""
+szPaperLengthString_Inch = "1""
+nType = 0x4b
+nPaperSize = 421
+nPaperWidth = 762
+nImageAreaWidth = 732
+nPaperWidthRes = 900
+nImageAreaWidthRes = 864
+nPaperLength = 256
+nImageAreaLength = 196
+nPaperLengthRes = 302
+nImageAreaLengthRes = 232
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 208
+wPinOffsetRight = 208
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 254
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 10
+byRollWidMm = 80
+byHeadDivide = 0x0A
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 421
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "76mm x 26mm"
+szSizeIN = "3" x 1""
+MediaAtrInfo = 0
+lblPitchDot = 337
+markNoChkValu = 210
+reserved_12_ = 35,0,0,0,0,0,1,35,0,0,0,0
+0
+
+
+[Paper03]
+szPaperName_mm = "RD 51mm x 26mm"
+szPaperName_Inch = "RD 2" x 1""
+szPaperWidthString_Inch = "2""
+szPaperLengthString_Inch = "1""
+nType = 0x4b
+nPaperSize = 422
+nPaperWidth = 508
+nImageAreaWidth = 478
+nPaperWidthRes = 600
+nImageAreaWidthRes = 564
+nPaperLength = 256
+nImageAreaLength = 196
+nPaperLengthRes = 302
+nImageAreaLengthRes = 232
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 358
+wPinOffsetRight = 358
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 254
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008080
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 10
+byRollWidMm = 55
+byHeadDivide = 0x06
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 422
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "51mm x 26mm"
+szSizeIN = "2" x 1""
+MediaAtrInfo = 0
+lblPitchDot = 337
+markNoChkValu = 210
+reserved_12_ = 35,0,0,0,0,0,1,35,0,0,0,0
+0
+
+[Paper04]
+szPaperName_mm = "RD 102mm"
+szPaperName_Inch = "RD 4""
+szPaperWidthString_Inch = "4.00""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 415
+nPaperWidth = 1016
+nImageAreaWidth = 986
+nPaperWidthRes = 1200
+nImageAreaWidthRes = 1164
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 58
+wPinOffsetRight = 58
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 10
+byRollWidMm = 102
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 415
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "102mm"
+szSizeIN = "4""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 35,0,0,0,0,0,0,0,0,0,0,0
+0
+
+[Paper05]
+szPaperName_mm = "RD 90mm"
+szPaperName_Inch = "RD 3.5""
+szPaperWidthString_Inch = "3.5""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 440
+nPaperWidth = 900
+nImageAreaWidth = 870
+nPaperWidthRes = 1063
+nImageAreaWidthRes = 1027
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 127
+wPinOffsetRight = 126
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 10
+byRollWidMm = 94
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 440
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "90mm"
+szSizeIN = "3.5""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 35,0,0,0,0,0,0,0,0,0,0,0
+0
+
+[Paper06]
+szPaperName_mm = "RD 76mm"
+szPaperName_Inch = "RD 2.9""
+szPaperWidthString_Inch = "2.9""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 439
+nPaperWidth = 760
+nImageAreaWidth = 729
+nPaperWidthRes = 897
+nImageAreaWidthRes = 861
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 210
+wPinOffsetRight = 209
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 10
+byRollWidMm = 80
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 439
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "76mm"
+szSizeIN = "2.9""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 35,0,0,0,0,0,0,0,0,0,0,0
+0
+
+[Paper07]
+szPaperName_mm = "RD 58mm"
+szPaperName_Inch = "RD 2.2""
+szPaperWidthString_Inch = "2.20""
+szPaperLengthString_Inch = ""
+nType = 0x4a
+nPaperSize = 426
+nPaperWidth = 580
+nImageAreaWidth = 551
+nPaperWidthRes = 685
+nImageAreaWidthRes = 649
+nPaperLength = 0
+nImageAreaLength = 0
+nPaperLengthRes = 0
+nImageAreaLengthRes = 0
+nPhysicalOffsetX = 18
+nPhysicalOffsetY = 35
+wPinOffsetLeft = 316
+wPinOffsetRight = 315
+nMaxFeed = 1500
+nMaxLength = 30000
+nMinLength = 120
+wSplit = 0
+nClipInfoLeft = 0
+nClipInfoTop = 0
+nClipInfoRight = 0
+nClipInfoBottom = 0
+nVirtualOffsetX = 0
+nVirtualOffsetY = 0
+nCompatiblePaperSizes = 0,0,0,0
+dwPaperAbility01 = 0x00008081
+dwPaperAbility02 = 0x00000000
+byReserved001 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+nSensorID = 63
+byEnergyRank = 8
+byRollWidMm = 58
+byHeadDivide = 0
+nDieStartPlus = 0
+nDieStartRevPlus = 0
+wDieStartFwdPlus = 0
+nAfterFeedPlus = 0
+wPafMediaID = 426
+PresetBlkPos1_1 = 0,0,0,0,0
+PresetBlkPos2_1 = 0,0,0,0,0
+PresetBlkPos2_2 = 0,0,0,0,0
+PresetBlkPos3_1 = 0,0,0,0,0
+PresetBlkPos3_2 = 0,0,0,0,0
+PresetBlkPos3_3 = 0,0,0,0,0
+szSizeMM = "58mm"
+szSizeIN = "2.2""
+MediaAtrInfo = 0
+lblPitchDot = 0
+markNoChkValu = 0
+reserved_12_ = 35,0,0,0,0,0,0,0,0,0,0,0
+0
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/checkbox_checked.png b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/checkbox_checked.png
new file mode 100644
index 0000000..ae99888
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/checkbox_checked.png differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/checkbox_unchecked.png b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/checkbox_unchecked.png
new file mode 100644
index 0000000..aeec54c
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/checkbox_unchecked.png differ
diff --git a/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/en.lproj/InfoPlist.strings b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/en.lproj/InfoPlist.strings
new file mode 100644
index 0000000..3967e06
Binary files /dev/null and b/Frameworks/BRLMPrinterKit.xcframework/ios-arm64_i386_x86_64-simulator/BRLMPrinterKit.framework/en.lproj/InfoPlist.strings differ
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/Info.plist b/Frameworks/BRLMPrinterKitW.xcframework/Info.plist
new file mode 100644
index 0000000..0b8e362
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/Info.plist
@@ -0,0 +1,42 @@
+
+
+
+
+ AvailableLibraries
+
+
+ LibraryIdentifier
+ ios-arm64_i386_x86_64-simulator
+ LibraryPath
+ BRLMPrinterKitW.framework
+ SupportedArchitectures
+
+ arm64
+ i386
+ x86_64
+
+ SupportedPlatform
+ ios
+ SupportedPlatformVariant
+ simulator
+
+
+ LibraryIdentifier
+ ios-arm64_armv7
+ LibraryPath
+ BRLMPrinterKitW.framework
+ SupportedArchitectures
+
+ arm64
+ armv7
+
+ SupportedPlatform
+ ios
+
+
+ CFBundlePackageType
+ XFWK
+ XCFrameworkFormatVersion
+ 1.0
+
+
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/BRLMPrinterKitW b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/BRLMPrinterKitW
new file mode 100755
index 0000000..f21f350
Binary files /dev/null and b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/BRLMPrinterKitW differ
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/BluetoothViewController.nib b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/BluetoothViewController.nib
new file mode 100644
index 0000000..f9f52de
Binary files /dev/null and b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/BluetoothViewController.nib differ
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/CutterViewController.nib b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/CutterViewController.nib
new file mode 100644
index 0000000..5a09086
Binary files /dev/null and b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/CutterViewController.nib differ
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/ExtraFeedViewController.nib b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/ExtraFeedViewController.nib
new file mode 100644
index 0000000..e37371b
Binary files /dev/null and b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/ExtraFeedViewController.nib differ
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/GenericMobileLabelModelPaperSizeViewController.nib b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/GenericMobileLabelModelPaperSizeViewController.nib
new file mode 100644
index 0000000..2aae781
Binary files /dev/null and b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/GenericMobileLabelModelPaperSizeViewController.nib differ
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BMSPrinterDriver.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BMSPrinterDriver.h
new file mode 100755
index 0000000..d4eede7
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BMSPrinterDriver.h
@@ -0,0 +1,727 @@
+//
+// BMSPrinterDriver.h
+// BMSPrinterKit
+//
+// Created by BMS on 10/2/12.
+// Copyright (c) 2012 Brother Mobile Solutions, Inc. All rights reserved.
+//
+
+#import
+#import
+#import // for UIViewController definition
+
+#ifndef REMOVE_BRPTOUCH_SDK
+// NOTE: This is now preprocessor definition in the RemoveBRPtouchSDK version of the project.
+
+// NOTE: We can NOT use the following "framework" syntax here (i.e. )
+// However, we CAN use the "BRPtouchPrinterKit.h" syntax, since we have added the BIL SDK .h
+// files to our project.
+//#import
+#import "BRPtouchPrinterKit.h"
+
+#endif
+
+#import "PrintSettings.h"
+
+//*** NOTIFICATIONS
+// Register for these if you wish to receive notifications for the following messages.
+// Typically, you will only want to register for these if you are creating your own Custom Progress View.
+
+// *************************************************************************************
+// 1. Use this notification instead of sendData return value if you are making a Progress ViewController.
+// With PJ7 printers, especially PJ-763MFi, "sendDataToChannel" may not return immediately on the final band,
+// because it needs to check printer status to wait for the page to be printed before more data can be sent.
+// This notification will be sent as soon as the data has been sent, allowing you to update your Progress GUI quicker.
+// NOTE: KEY_BYTESWRITTEN is used when processing the SENDDATA notification.
+// NOTE: If you are creating a ProgressView, this notification will work with ALL print APIs, even "simple" ones.
+// So, it's recommended to use this instead of the return value of "sendDataToChannel". Refer to CustomProgress in SDK Sample.
+#define NOTIFICATION_SENDDATA @"SendDataNotification"
+#define NOTIFICATION_SENDDATA_KEY_BYTESWRITTEN @"Bytes Written"
+// *************************************************************************************
+
+// *************************************************************************************
+// 2. MFi Bluetooth models MUST process STATUS RESPONSES for each page BEFORE sending data for the next page.
+// This is being done to fix problems related to data handshake that cause Apple to disconnect the MFi device.
+// The status response will not come until the page has been printed, which may take some time.
+//
+// This notification lets you know when this event occurs, in case you are creating a custom progress and want
+// to inform the user. Even though you probably already know this will happen, the sendDataToChannel API will not return
+// until the status response has been received. So, this notification allows you to update your Progress GUI
+// at the moment this event occurs.
+//
+// * NOTE: SDK 2.1 decided NOT to send this notification for RJ-4030Ai (and other new RJ models). So, it is only being sent for PJ-763MFi.
+//
+// The main reason why is that RJ4 pages typically send AND print much faster than PJ pages because they are shorter,
+// particularly if you are printing labels. So, if you are printing a large batch of labels, then the progress GUI
+// (at least the one built-in to the SDK) looks strange when processing this message, because it spends most of its
+// time showing this message, instead of some potentially more valuable messages for the user.
+
+// Also, RJ models will always be using Roll Paper (continuous or labels), so it is not necessary (typically) to remind user to insert paper
+// for each page, like it is for PJ users who use Cutsheet paper.
+//
+// So, a better approach for RJ4 may be to add other notifications instead of this one, as we read them.
+// This could allow sending notifications if various errors occur DURING printing, such as "Cover Open",
+// "No Paper", "Printer Overheat", "Low Battery", etc.
+//
+// TODO: Add these new notifications. These could be applicable with PJ763Mfi too, but only if we enable the
+// unsolicited status responses.
+//
+#define NOTIFICATION_WAITING_FOR_STATUSRESPONSE @"WaitStatusResponseNotification"
+// *************************************************************************************
+
+// *************************************************************************************
+// 3. Use NOTIFICATION_PRINTER_STATUS to receive notifications about printer status issues while printing,
+// such as "cooling on/off", "coverOpen", "paperOut", etc.
+// Refer to CustomProgressView in SDK Sample App for example of how to process this notification.
+// The "userInfo" will contain Dictionary with 1 key/value pair.
+// * Use KEY_STATUSNUMBER (NSNumber object) to process the notification.
+//
+// *** IMPORTANT NOTE: For now, this notification is ONLY supported for the BLUETOOTH channel, since it's the only channel
+// that can read printer status for the "unsolicited" responses. In the future, this might be applicable for WIFI.
+#define NOTIFICATION_PRINTER_STATUS @"PrinterStatusNotification"
+#define NOTIFICATION_PRINTER_STATUS_KEY_STATUSNUMBER @"Status Number"
+
+//*** Possible values returned for KEY_STATUSNUMBER
+// These values are sent to Apps that register for NOTIFICATION_PRINTER_STATUS notifications.
+// These values are defined arbitrarily and have no correspondence to the values returned in PTSTATUSINFO.
+// NOTE: Not all status responses will generate a notification. And, not all are supported for each printer and channel.
+// And, you are not required to handle all or any of them.
+
+#define NOTIFICATION_PRINTER_STATUSNUMBER_COOLING_BEGIN 2001
+#define NOTIFICATION_PRINTER_STATUSNUMBER_COOLING_END 2002
+#define NOTIFICATION_PRINTER_STATUSNUMBER_MEDIAEMPTY_BEGIN 2003
+#define NOTIFICATION_PRINTER_STATUSNUMBER_COVEROPEN_BEGIN 2004
+#define NOTIFICATION_PRINTER_STATUSNUMBER_WAITINGFORPEELER_BEGIN 2005 // only sent for printers with peeler available and enabled.
+
+// NOTE: MEDIAEMPTY, COVEROPEN, and WAITINGFORPEELER do NOT have a corresponding "_END" notification.
+// The main reason is that the printers don't generate an "unsolicited" status response notification for these "end" conditions.
+// These conditions can be detected internally, but it's not useful for an app because it requires sending another page(s) of data.
+//
+// --------------------------------
+// With MEDIAEMPTY and COVEROPEN:
+// --------------------------------
+// In a multi-page job, the RJ/TD printers continue to receive data and send status responses indicating that printing is successful.
+// Only on the LAST page of a job does the printer WAIT to send "printing completed" status.
+// So, as long as the job doesn't overflow the internal buffer, the printer can receive all the data for the job before
+// you insert paper or close the cover. Then, if cover is closed or media inserted, printing should complete NORMALLY!!
+// This is why they are NOT being treated as "fatal errors". And, for this reason, you may not even need to handle these notifications.
+//
+// The concerns are:
+// a) a statusResponseTimeout error could occur before media is changed after the final page of data has been sent.
+// So, the print API return code will indicate error.
+// But, everything should print OK anyway after you close the cover or insert more paper.
+// b) If too many pages are sent after the error occurs, the printer's internal buffer may fill up which could cause a "fatal" error.
+//
+// If you wish o prevent these concerns, you will have to use the "Manual APIs".
+//
+// Here is an algorithm that may be useful:
+// 1. When you receive the notification, set a flag indicating mediaEmpty or coverOpen.
+// 2. If flag is set, STOP sending data at the BEGINNING of a page
+// 3."Poll" the printer status manually using "getPTStatus", and check the appropriate bits in the status response
+// to determine when the condition goes away.
+// 4. Allow user to cancel, in case there's a problem with the "polling".
+//
+// Refer to the Custom Progress View in SDK Sample App for an example.
+//
+// --------------------------------
+// With WAITINGFORPEELER:
+// --------------------------------
+// There is no reason to check for the "end" notification anyway, because "sendDataToChannel" will not return
+// until after the label is peeled (or a timeout occurs). But, you can use the "begin" notification to post
+// a notice to users as a reminder they need to peel.
+//
+// *************************************************************************************
+
+
+//*** Used to assure that the CGBitmap is 32-pixel aligned
+// NOTE: Need to cast the division result to (int) in case a float type
+// is passed in for x so we get the expected truncation.
+#define ALIGN32(x) ((int)((x+31)/32) * 32)
+
+// *************************************************************************************
+//*** API Function Possible Return Codes ***
+
+#ifndef REMOVE_BRPTOUCH_SDK
+// NOTE: This is now a preprocessor definition in the RemoveBRPtouchSDK version of the project.
+
+// NOTE: Some API functions will return values defined in BRPtouchPrinter.h,
+// such as RET_TRUE, RET_FALSE, ERROR_TIMEOUT, etc.
+// For clarity, the return codes defined in this module will begin at -1000.
+
+#else
+// When BRPtouch SDK is removed, we need to define these constants.
+
+#define RET_FALSE 0
+#define RET_TRUE 1
+#define ERROR_TIMEOUT -3
+
+#endif
+
+#define RET_PARAMETER_ERROR -1000
+#define RET_FILEPATHURL_ERROR -1001
+#define RET_PDFPAGE_ERROR -1002
+#define RET_PRINTSETTINGS_ERROR -1003
+#define RET_PARENTVIEW_ERROR -1004
+#define RET_DATABUFFER_ERROR -1005
+#define RET_PRINTERMODEL_ERROR -1006
+
+// Channel related errors
+// These are generic for EACH channel (WIFI, BT, FILE)
+#define RET_CHANNEL_NOTOPEN_ERROR -1007 // if use Manual APIs on channel that has not been opened successfully
+#define RET_CHANNEL_CREATE_ERROR -1008 // if error creating WIFI/FILE streams or BluetoothSessionController. Memory related.
+#define RET_CHANNEL_WRITE_ERROR -1009 // error occurred while writing data, such as if channel disconnected
+#define RET_CHANNEL_READ_ERROR -1010 // error occurred while reading data, such as if channel disconnected
+
+// This is used only by WIFI and FILE channel.
+// In previous SDKs, RET_CHANNEL_CREATEERROR was used instead, but now we differentiate between these cases.
+// NOTE: With WIFI channel especially, this can occur when user tries to start a job too quickly after a failure.
+// Generally, using "isPrinterReady" API before calling openChannel can avoid this.
+#define RET_CHANNEL_STREAMSTATUS_ERROR -1011
+
+// These are used only for BT channel
+#define RET_BLUETOOTHCHANNEL_NOCONNECTEDPRINTERS_ERROR -1012 // No BT printers are connected
+#define RET_BLUETOOTHCHANNEL_CHANNELDISCONNECTED_ERROR -1013 // BT Session disconnected while sending data
+#define RET_BLUETOOTHCHANNEL_OPENSESSION_ERROR -1014 // unable to open EASession
+// Added this in SDK 2.1.0 to allow distinguishing this from ERROR_TIMEOUT. Only applicable for MFi models.
+// This error may occur if all data was sent successfully for a page, but the SDK timed out waiting for
+// a status response from the printer, which may occur if paper is not inserted on time to print the whole page
+// before the "statusReponseTimeout" has been reached.
+#define RET_BLUETOOTHCHANNEL_STATUSTIMEOUT_ERROR -1015
+
+// These are also only used with BT channel, since it's currently the only Bi-Di channel.
+// However, these are generally related to errors received when processing printer status.
+// So, in case WIFI is ever able to be Bi-Di, let's use a more generic name for these #define constants
+#define RET_PRINTERSTATUS_ERROR_PRINTERTURNEDOFF -1016
+#define RET_PRINTERSTATUS_ERROR_BATTERYWEAK -1017
+#define RET_PRINTERSTATUS_ERROR_EXPANSIONBUFFERFULL -1018
+#define RET_PRINTERSTATUS_ERROR_COMMUNICATIONERROR -1019
+#define RET_PRINTERSTATUS_ERROR_OVERHEATINGERROR -1020
+#define RET_PRINTERSTATUS_ERROR_MEDIACANNOTBEFED -1021 // This is different from media empty. Treated as an error.
+#define RET_PRINTERSTATUS_ERROR_UNKNOWNERROR -1022 // If status response processor gets unhandled error
+
+
+// *************************************************************************************
+
+
+// *************************************************************************************
+// SENDDATAMODE - new parameter added to "sendDataToChannel" and "sendNSDataToChannel".
+//
+// With Bluetooth Printers, it is REQUIRED to know EXACTLY when the FORM FEED command occurs in the data stream.
+//
+// NOTE: By "Form Feed", this means "the last byte(s) of data sent for a PAGE of data", which cause it to
+// print the page.
+// * for PJ models, this typically means "Esc ~ \0C" or "Esc ^ \0C"
+// * for RJ/TD models, this typically means "\1A" or "\0C".
+//
+// The reason is that BT printers typically send several "status" responses while printing a page.
+// In some cases, the printer will NOT ACCEPT DATA until the page completes printing.
+// And, with Bluetooth MFi, Apple will SHUT DOWN THE CONNECTION if it cannot send data to the printer within
+// about 5 seconds. Yet, Apple seems to take the data in some cases before it reports FALSE for "hasSpaceAvailable".
+// As such, there seems to be a TIMING PROBLEM with either the Printer Firmware or Apple's EASession, or both!!
+// So, we need to AVOID sending data to Apple when the printer will stop accepting it.
+//
+// So the "sendDataToChannel" and "sendNSDataToChannel" APIs need to know when the printer will begin printing a
+// page, so we can stop sending data until all the status responses have been processed.
+//
+// NOTE: WIFI models do NOT send status responses over Port9100 connections.
+// So, it is not possible to handle them in the same way as required with Bluetooth models.
+// In this SDK, status is being IGNORED with WIFI connections. But, in the future, it may be necessary to handle it
+// a different way. So, even WIFI models MAY benefit from this new option eventually.
+//
+// Options:
+// 1. kSendDataMode_NoFormFeed:
+// * This buffer of data does NOT contain a form feed.
+// * So, all bytes will be sent and the method will return immediately (as soon as possible)
+//
+// 2. kSendDataMode_FormFeedAtEnd:
+// * This buffer DOES contain a form feed, and this is at the END of the buffer.
+// * NOTE: This can normally be determined easily, since this will be the last buffer of data for the page,
+// where the data was generated by one of the "generatePrintData" APIs below.
+// * So, the sendDataXX methods will process the printer status before returning.
+// * WARNING: Do not use this mode if you generate/send your own ZPL/CPCL/ESCP data!! Some printers (RJ4030Ai at least)
+// do not send status responses except for Raster Mode data.
+//
+// 3. kSendDataMode_FormFeedIndeterminate:
+// * This buffer MAY OR MAY NOT contain a form feed, and it could be anywhere in the buffer.
+// * So, the code may "search" the data buffer to see if it contains the Form Feed, if applicable.
+// * NOTE: Since PJ models contain a 3-byte FormFeed command, it is possible to find it. However, since
+// other models only have a 1-byte command, it is not practical to try to find the byte in the data,
+// because it could be a valid byte of actual PRINT data, NOT a command byte. It is impossible to
+// distinguish without writing a full parser.
+// So, only PJ763 will treat this differently than the "NoFormFeed" option.
+// * NOTE: However, even with PJ, it is possible for the print data to RANDOMLY contain the 3-bytes as PRINT DATA.
+// If this occurs, it WILL cause a PROBLEM.
+// * NOTE: This case is mostly applicable when sending multiple page PRN data, such as with one of the
+// "sendFile" APIs.
+//
+// * We recommend NOT using this option, if it is at all possible to avoid it.
+//
+// Generally, the SDK will handle this internally for the "Simple APIs", e.g. "printPDFFilePathURL".
+// So, you the ISV will only need to care about this when you are using the "Manual APIs".
+//
+// We recommend using options 1 and 2 only if you are using Manual APIs to send PDF or IMAGE data.
+// However, for PRN data, particularly in a FILE, it may be necessary to use option 3 ("Indeterminate").
+//
+// WARNING: If your app generates its own PRN data (e.g. ESC/P, ZPL, CPCL, etc) which you use with "sendDataToChannel",
+// you might think you can use option 1,2 instead of option 3. However, **DO NOT USE** Option 2 ("FormFeedAtEnd")
+// with RJ4030Ai, unless data is "Raster Mode". Unfortunately, the printer does NOT send "unsolicited status" responses
+// for ESC/P, ZPL, CPCL, etc. So, the SDK will lock up waiting for status responses that will never come, and this will
+// result in a STATUSTIMEOUT_ERROR.
+//
+// Refer to SDK Sample App code for more details of how to use this.
+//
+typedef enum
+{
+ kSendDataMode_NoFormFeed=1,
+ kSendDataMode_FormFeedAtEnd,
+ kSendDataMode_FormFeedIndeterminate,
+} SENDDATAMODE;
+// *************************************************************************************
+
+
+@interface BMSPrinterDriver : NSObject
+{
+
+}
+
+//******** Designated Initializers ********
+- (id) initWithPrintSettings:(PrintSettings *)printSettings; // use this for PDF or IMAGE
+- (id) initWithModel:(PRINTERMODEL)theModel; // use this for PRN file/data
+
+//******** Class Properties ********
+@property (nonatomic, assign) PRINTERMODEL printerModel;
+@property (nonatomic, retain) PrintSettings *printSettings;
+
+// Caller MUST set these as appropriate when printing multiple pages (when using the "Manual APIs").
+@property (nonatomic, assign) BOOL isFirstPage;
+@property (nonatomic, assign) BOOL isLastPage;
+
+//*** Optional Properties:
+
+// *************************************************************************************
+// antiAliasMode:
+//
+// This property is now provided to override the (new) default handling of "anti-aliasing".
+// When Anti-Alias is ENABLED, font characters will be "smoothed" by Apple by adding a "light-gray outline".
+// This is Apple's default behavior, and it was our SDK's default behavior in v1.1.1 and earlier.
+//
+// DEFAULT driver behavior (new in SDK 2.0):
+// * If Halftone is kHalftoneDiffusion, anti-alias is DISABLED, because halftoning may produce "stray dots" on
+// characters that can decrease clarity.
+// * If Halftone is kHalftoneThreshold, anti-alias is ENABLED, because Threshold Value can be used to "thicken"
+// the font characters by increasing the Threshold Value, so that the "light-gray outline" is printed BLACK
+// instead of WHITE as it normally does at the default threshold value of 128.
+//
+// In some cases, you might want to force the anti-alias on/off. This property is provided for that purpose.
+//
+// For example, when printing barcodes, generally you will want to use Threshold halftone because Diffusion
+// could make them unreadable. However, with AntiAlias ENABLED, it could result in thicker bars which MAY
+// confuse a barcode reader. If that happens, then you should force AntiAliasing to be disabled.
+//
+// Another example: some pixels in the anti-alias "gray outline" might be darker gray than the Threshold Value,
+// which would result in "stray dots". So, you could DISABLE anti-alias in this case to remove these
+// stray dots, but then modifying Threshold Value would have NO effect in "thickening" the text characters.
+//
+// In most cases, it is a very subtle change, and most users will not notice the difference either way.
+// But, we are providing this property as an option to an ISV just in case it will be required.
+typedef enum
+{
+ kAntiAliasMode_UseDriverDefault=1,
+ kAntiAliasMode_ForceEnabled,
+ kAntiAliasMode_ForceDisabled,
+} ANTIALIASMODE;
+@property (nonatomic, assign) ANTIALIASMODE antiAliasMode;
+// *************************************************************************************
+
+
+// *************************************************************************************
+// interpolationQuality - Added at SDK 2.3.0
+// Previous SDKs did not set a value when drawing the PDF/Image on the CGContext.
+// So, presumably it was using "kCGInterpolationDefault".
+// However, recent tests indicate that using "kCGInterpolationNone" can produce better quality
+// output, especially when using ErrorDiffusion. So, "none" will be the new default.
+// If ISV notices any problems in output quality with the new SDK, this property is provided to
+// allow you to change this setting to one of the other values.
+// NOTE: Not adding a new enum as we did with ANTIALIASMODE, since Apple already provides one.
+@property (nonatomic, assign) CGInterpolationQuality interpolationQuality;
+// *************************************************************************************
+
+
+// *************************************************************************************
+// statusResponseTimeout:
+//
+// Timeout for Status Response - applicable for MFi (Bluetooth) printer models only.
+// In case STATUS_RESPONSE_TIMEOUT_DEFAULT is not sufficient, we provide this property to allow ISV to change it.
+//
+// Quick Summary:
+// * The value of statusResponseTimeout should be large enough to handle the AMOUNT OF TIME it takes to print a WORST CASE
+// page. The response(s) do not come until the page completes printing.
+// * So, you should consider "WORST CASE" as follows:
+// - page has a lot of graphics, paper may not be inserted, print head overheats while printing the page, etc.
+//
+//
+// IMPORTANT: If you do wish to set this, set it BEFORE calling "openChannel" (if using "Manual APIs") or BEFORE any of the
+// "simple APIs" (e.g. "printPDFFilePathURL").
+// Also, this ONLY applies DURING printing. It does not affect the "getPTStatus" API.
+//
+// NOTES:
+// * This timeout is applicable only when "sendDataToChannel" is called with the kSendDataMode_FormFeedAtEnd, or if
+// kSendDataMode_FormFeedIndeterminate (and SDK code detects that a form feed exists in the data).
+// Since all APIs use this function, it is important to understand this.
+// * Well, it is also applicable if kCloseBluetoothChannelFlushMode_UseStatusRequest is enabled.
+//
+// * PJ763Mfi handles this by sending a status request command and then waiting for the printer response, which does not
+// arrive until the page has completed printing.
+// * RJ4030Ai handles this by reading responses that the printer sends automatically, without sending the request.
+// The final response does not arrive until the page has nearly completed printing.
+// Because these responses come only in Raster Mode, do NOT set "FormFeedAtEnd" unless you are sending Raster mode data.
+//
+// * Bluetooth models seems to require this to avoid what seems to be an Apple Bug with "handshaking" when printing
+// MULTIPLE PAGE jobs, especially with PJ763MFi. This printer will stop taking data for next page while the previous
+// page is being printed. However, the outputStream in EASession does not stop taking data on time.
+// So, if you write to EASession outputStream, but EASession cannot write to the printer within about 5 seconds,
+// then Apple shuts down the MFi connection. So, to get around this problem, the SDK performs this status check
+// between each page.
+
+#define STATUS_RESPONSE_TIMEOUT_DEFAULT 60.0 // max # seconds we wait for a response from printer, by default
+@property (nonatomic, assign) CFTimeInterval statusResponseTimeout;
+// *************************************************************************************
+
+
+// *************************************************************************************
+// closeBluetoothChannelFlushMode:
+//
+// This property will affect only the "closeChannel" API (used by all printing APIs) for the MFi printers only.
+// It is provided JUST IN CASE you run into a problem where Apple disconnects the Bluetooth device, or if all the data
+// seems to have been sent correctly, but the printer doesn't print anything and needs to be power-cycled.
+// If the Bluetooth channel (EASession) is closed before Apple sends all of the data to the printer, one of the two
+// problems mentioned above might occur.
+//
+// 1. kCloseBluetoothChannelFlushMode_UsePrinterDefault (DEFAULT)
+// Each printer model will initialize this to the setting that works best for that model.
+// Choose one of the other settings to override the SDK's default value.
+//
+// 2. kCloseBluetoothChannelFlushMode_None
+// The channel is closed immediately.
+// Because we added the "Status Check" at the END of each page, as determined by kSendDataMode_FormFeedAtEnd,
+// this now seems to work correctly in most cases for RASTER MODE data (PDF, IMAGE, and Raster Mode PRN).
+// This is the default setting for PJ763MFi and RJ/TD Series models.
+//
+// 3. kCloseBluetoothChannelFlushMode_UseStatusRequest
+// Send a status request and wait for the response before closing the channel.
+// This was the best solution, until we added the status check at the end of each page, for each MFi model.
+// This assured that all data was sent before closing the channel, otherwise we would not receive the status response.
+// But, now it is redundant (with Image and PDF printing).
+//
+// IMPORTANT: When sending PRN data (ESC/P, ZPL, CPCL, etc) over MFi Bluetooth, you MUST set this UseStatusRequest option!
+// Otherwise, it is highly likely the channel stream will be shut down before all the data has been sent to the printer.
+// This will result in failure to print the final page, and likely Apple will forcefully disconnect the MFi device.
+//
+// 4. kCloseBluetoothChannelFlushMode_UseFixedDelay
+// This was the first solution before we used the status option. But, the delay needed to be quite large (10 sec) to
+// be reliable. However, this adds this much delay every time the channel is closed.
+//
+// While testing this with a 10 page ESC/P PRN file, because we cannot detect each page break in this case to send the status
+// check during printing, we found that Apple will disconnect the printer when we use the "None" option. So, we provide
+// these other options just in case you run into a problem. In most cases, changing the default will NOT be necessary.
+
+typedef enum
+{
+ kCloseBluetoothChannelFlushMode_UsePrinterDefault=0,
+ kCloseBluetoothChannelFlushMode_None,
+ kCloseBluetoothChannelFlushMode_UseStatusRequest,
+ kCloseBluetoothChannelFlushMode_UseFixedDelay,
+} CLOSE_BLUETOOTHCHANNEL_FLUSH_MODE;
+@property (nonatomic, assign) CLOSE_BLUETOOTHCHANNEL_FLUSH_MODE closeBluetoothChannelFlushMode;
+// *************************************************************************************
+
+
+//******** MAIN API FUNCTIONS ********
+
+// *** BRPtouchSDK function WRAPPERS ***
+// NOTE: These methods are now fully implemented in the BMS SDK. They are no longer wrappers.
+
+// wrappers for sendFile and sendFileEx
+- (int) sendFile: (NSString *)filePath
+ channelType: (CHANNELTYPE)channelType
+ channelString:(NSString *)channelString // IPAddress or BTDeviceName
+ timeout:(int)nTimeout;
+
+- (int) sendFileEx: (NSString *)filePath
+ channelType: (CHANNELTYPE)channelType
+ channelString:(NSString *)channelString // IPAddress or BTDeviceName
+ timeout:(int)nTimeout;
+
+// wrappers for sendData and sendDataEx.
+- (int) sendData:(NSData *)printData
+ channelType:(CHANNELTYPE)channelType
+ channelString:(NSString *)channelString // IPAddress or BTDeviceName
+ timeout:(int)nTimeout;
+
+- (int) sendDataEx:(NSData *)printData
+ channelType:(CHANNELTYPE)channelType
+ channelString:(NSString *)channelString // IPAddress or BTDeviceName
+ timeout:(int)nTimeout;
+
+
+// "wrappers" for isPrinterReady and getPTStatus.
+// * isPrinterReady is useful to check for connectivity before attempting to print.
+// * getPTStatus allows to you determine things like the actual connected model, paper inserted, cover open, etc.
+// Refer to the BRPtouchSDK documentation for more details about the format and meaning of the status response.
+
+// TAG: REMOVE_BRPTOUCH_SDK
+// When using the "RemoveBRPtouchSDK" framework, isPrinterReady and getPTStatus are NOT supported
+// for the WIFI channel, because WIFI channel requires using the BRPtouchSDK API.
+// However, for the Bluetooth channel, these functions are implemented internally to the BMS SDK, so you may still
+// use these two APIs.
+
+- (BOOL)isPrinterReady:(PRINTERMODEL)model
+ channelType:(CHANNELTYPE)channelType
+ channelString:(NSString *)channelString; // IPAddress or BTDeviceName
+
+#ifdef REMOVE_BRPTOUCH_SDK
+typedef struct _PTSTATUSINFO {
+ Byte byHead; // Head mark
+ Byte bySize; // Size
+ Byte byBrotherCode; // Brother code
+ Byte bySeriesCode; // Serial code
+ Byte byModelCode; // Model code
+ Byte byNationCode; // Nation code
+ Byte byFiller; // information about cover
+ Byte byFiller2; // Not used
+ Byte byErrorInf; // Error information 1
+ Byte byErrorInf2; // Error information 2
+ Byte byMediaWidth; // Media width
+ Byte byMediaType; // Media type
+ Byte byColorNum; // The number of colors
+ Byte byFont; // Font
+ Byte byJapanesFont; // Japanese font
+ Byte byMode; // Mode
+ Byte byDensity; // Density
+ Byte byMediaLength; // Media Length
+ Byte byStatusType; // Status Type
+ Byte byPhaseType; // Phase type
+ Byte byPhaseNoHi; // Upper bytes of phase number
+ Byte byPhaseNoLow; // Lower bytes of phase number
+ Byte byNoticeNo; // Notice number
+ Byte byExtByteNum; // Total bytes of extended part
+ Byte byLabelColor; // Color of label
+ Byte byFontColor; // Color of font
+ Byte byHardWareSetting[4]; // Settings of hardware
+ Byte byNoUse[2]; // Not Use
+} PTSTATUSINFO, *LPPTSTATUSINFO;
+#endif
+
+- (int) getPTStatus:(PTSTATUSINFO *)status
+ model:(PRINTERMODEL)model
+ channelType:(CHANNELTYPE)channelType
+ channelString:(NSString *)channelString; // IPAddress or BTDeviceName
+
+// note: wrappers for printImage and printPDFAtPath are NOT provided
+
+
+
+//******* BMS new functionality functions **********
+
+//***** Misc Utilities
+- (CGRect) getPrintableRectFromCurrentSettings;
+- (CGRect) getPaperRectFromCurrentSettings;
+
+//********************************************************************************
+// SIMPLE APIs
+//
+// These printing APIs will handle the whole job for you (including openChannel, sendDataToChannel, closeChannel).
+// See also the "Manual APIs", which give you more control of the printing process.
+
+//***** FILE Printing Functions (see also sendFile and sendFileEx above)
+// NOTE: new prototype in SDK 2.0
+- (int) sendFileWithProgressView:(NSURL *)filePathURL
+ channelType:(CHANNELTYPE)channelType
+ channelString:(NSString *)channelString // IPAddress or BTDeviceName
+ copies:(int)numCopies
+ writeTimeout:(NSTimeInterval)timeout
+ usingParentView:(UIViewController *)parentViewController;
+
+//***** PDF Printing Functions (see also Manual APIs below)
+
+// send PDF file without a ProgresView
+// This is a BLOCKING function only
+// NOTE: SDK 1.1.0 changed this prototype to add "copies" and "collate" parameters.
+// NOTE: The "collate" parameter value only matters when printing multiple copies of a multi-page PDF file.
+- (int) printPDFFilePathURL:(NSURL *)filePathURL
+ firstPage:(int)firstPage
+ lastPage:(int)lastPage
+ timeout:(CFTimeInterval)nTimeout
+ copies:(int)copies
+ collate:(BOOL)bCollate;
+
+// send PDF file with a MODAL ProgressView
+// NOTE: new prototype in SDK 2.0
+- (int) printPDFFileWithProgressView:(NSURL *)filePathURL
+ firstPage:(int)firstPage
+ lastPage:(int)lastPage
+ copies:(int)numCopies
+ collate:(BOOL)bCollate
+ writeTimeout:(NSTimeInterval)timeout
+ usingParentView:(UIViewController *)parentViewController;
+
+// Print an ARRAY of NSURLs that reference a PDF file.
+// All pages from EACH PDF file will be printed.
+// NOTE: The same printSettings will apply to EACH PDF file in the array.
+-(int) printPDFURLArray:(NSArray *)array
+ timeout:(CFTimeInterval)nTimeout
+ copies:(int)copies
+ collate:(BOOL)bCollate;
+
+
+//***** Image Printing Functions (see also Manual APIs below)
+// print Image with a MODAL ProgressView
+// NOTE: new prototype in SDK 2.0
+- (int) printCGImageRefWithProgressView:(CGImageRef)imageRef
+ copies:(int)numCopies
+ writeTimeout:(NSTimeInterval)timeout
+ usingParentView:(UIViewController *)parentViewController;
+
+
+
+// Print 1 or more copies of a single image, without a ProgressView.
+// NOTE: The printCGImageRef:blocking:timeout API has been REMOVED in SDK 2.0.0
+// The printCGImageRef:timeout:copies is now used instead.
+// WARNING: Do NOT use this API to send more than 1 image back-to-back.
+// Instead, see printImageURLArray or sendCGImageRefToChannel below.
+- (int) printCGImageRef:(CGImageRef)imageRef
+ timeout:(CFTimeInterval)nTimeout
+ copies:(int)copies;
+
+// Print an ARRAY of NSURLs that reference an IMAGE file, e.g. JPG, PNG, etc
+// NOTE: The same printSettings will apply to EACH image in the array.
+-(int) printImageURLArray:(NSArray *)array
+ timeout:(CFTimeInterval)nTimeout
+ copies:(int)copies;
+
+//********************************************************************************
+// Manual API Control of the Data Channel. These all work together!!
+//
+// NOTE: ALL "Manual API" prototypes have CHANGED in SDK 2.0!!
+// * Previous SDKs only used WIFI channel, so Manual APIs had "WIFI" in the name.
+// * Since SDK 2.0 now supports WIFI and Bluetooth (and also File), the APIs have all been RENAMED!!
+// * But, they are all very similar to the API names in older SDKs.
+//
+// How to use the Manual APIs:
+// 1. You MUST call openChannelWithTimeout (PDF or Image) or openChannelOfType (PRN) first
+// * For PDF/Image, the printSettings property of BMSPrinterDriver class is used to determine channelType/String
+// * For PRN, printSettings are N/A, so channelType/String need to be specified in the openChannelOfType parameters.
+// 2. Call one (or more) of the other APIs for sending print data to the current channel
+// 3. Call closeChannel
+//
+// Advantages to using the Manual APIs compared to the simpler APIs:
+// 1. Sending data this way allows you to send data in bands and display your own progress indicator.
+// 2. You can use different timeouts for openChannel and sending the data. This allows timing out more quickly if
+// (for example) there is a WIFI connection issue (i.e. not connected to the printer, wrong IPAddress, etc.)
+//
+// *** WARNING: PJ7 models will very likely require a LARGER TIMEOUT for SENDING the print data compared to other models,
+// especially when printing MULTIPLE PAGE jobs. PJ7 will STOP accepting data during printing (i.e. when paper is moving).
+// If the print head overheats during printing, the printer will stop printing until the head cools down, which lengthens
+// the amount of time needed for the timeout.
+// * We recommend setting AT LEAST 60 seconds for the SEND timeout when using PJ7 models, unless you know you will only
+// be printing single page jobs or jobs without a significant page coverage.
+// * We strongly recommend that you test a WORST CASE print job to assure that your SEND timeout setting is large enough.
+
+// Use this with PDF/Image. The printSettings property is used to get the channel info.
+- (int) openChannelWithTimeout:(CFTimeInterval)nTimeout;
+
+// Use this with PRN, since printSettings are N/A.
+- (int) openChannelOfType:(CHANNELTYPE)channelType
+ channelString:(NSString *)channelString // IPAddress or BTDeviceName or FilePath (Print to File)
+ timeout:(CFTimeInterval)nTimeout;
+
+// Data Generation APIs for Image and PDF, so you can retrieve the print data to send in any way that you prefer.
+- (int) generatePrintData:(NSMutableData *)printData
+ fromCGImageRef:(CGImageRef)imageRef;
+
+- (int) generatePrintData:(NSMutableData *)printData
+ fromPDFPageRef:(CGPDFPageRef) pdfPageRef;
+
+// NOTE: ALL other "Manual APIs" below use the CHANNELTYPE specified in printSettings or openChannelOfType.
+
+
+// This must be called when finished sending data to the channel opened by openChannelWithTimeout or
+// openChannelOfType
+// TODO: Consider returning "int" code instead of "void". May need to propagate errors that may occur when closing
+// bluetooth channel back to ISV.
+// But, these errors typically will occur only when kCloseBluetoothChannelFlushMode_UseStatusRequest is specified,
+// and this is not currently the default setting for any of the MFi models. So, "void" is OK for now.
+- (void) closeChannel;
+
+// This is the best API to use if you want to make your own progress indicator.
+- (int) sendDataToChannel:(const uint8_t *)data
+ length:(int)length
+ sendDataMode:(SENDDATAMODE)sendDataMode
+ timeout:(CFTimeInterval)nTimeout
+ errorCode:(int *)pErrorCode;
+
+// similar to sendDataToChannel, but easier to use since you don't have to manage the buffer.
+// However, it is not as useful if you wish to make your own progress indicator.
+// NOTE: The data will actually be sent in 16K bands, and the timeout parameter will apply to each band separately.
+- (int) sendNSDataToChannel:(NSData *)data
+ sendDataMode:(SENDDATAMODE)sendDataMode
+ timeout:(CFTimeInterval)nTimeout;
+
+
+// simple manual API to send a CGImageRef to already open channel. Not useful for progress indicator.
+// But, you can use this to print more than 1 image back-to-back.
+- (int) sendCGImageRefToChannel:(CGImageRef)imageRef
+ timeout:(CFTimeInterval)nTimeout
+ copies:(int)copies;
+
+// simple manual API to send a PDF file URL to already open channel. Not useful for progress indicator.
+// But, you can use this to print more than 1 PDF file back-to-back.
+- (int) sendPDFFilePathURLToChannel:(NSURL *)filePathURL
+ firstPage:(int)firstPage
+ lastPage:(int)lastPage
+ timeout:(CFTimeInterval)nTimeout
+ copies:(int)copies
+ collate:(BOOL)bCollate;
+
+// simple manual API to send a PRN file URL to already open channel. Not useful for progress indicator.
+// But, you can use this to print more than 1 PRN file back-to-back.
+- (int) sendPRNFilePathURLToChannel:(NSURL *)filePathURL
+ timeout:(CFTimeInterval)nTimeout;
+
+// Used with Manual APIs to handle possible "Cancel" button on a Custom Progress ViewController, if desired.
+// Sends data to printer to clear out a partial page and eject the paper.
+// NOTE: Only use this with PDF and IMAGE printing. It is N/A when sending PRN data.
+- (int) sendCancelPrintingDataToChannel;
+
+
+// Primarily used for RJ4 MCR reader applications!!
+- (int) readDataFromChannel:(uint8_t *)buffer
+ maxLength:(int)maxLength
+ errorCode:(int *)pErrorCode;
+
+
+// End of the Manual APIs
+//********************************************************************************
+
+@end
+
+/////////////////////////////////////////////////////////////////////////////
+// This defines the DataControllerProtocol that MUST be used for developing
+// new printer drivers for a printer model. The DataControllers are used to
+// generate model-specific print data based on the current printSettings.
+@protocol DataControllerProtocol
+// everything is required!
+@required
+
+// Properties
+@property (nonatomic, assign) BOOL isFirstPage;
+@property (nonatomic, assign) BOOL isLastPage;
+@property (nonatomic, retain) PrintSettings *printSettings;
+
+// Methods
+- (CGRect) getPaperRectFromCurrentSettings;
+- (CGRect) getPrintableRectFromCurrentSettings;
+- (BOOL) generatePrintData: (NSMutableData *)printData fromCGContextRef: (CGContextRef) context;
+- (BOOL) generateCancelPrintingData:(NSMutableData *)printData;
+@end
+/////////////////////////////////////////////////////////////////////////////
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BMSPrinterKit.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BMSPrinterKit.h
new file mode 100755
index 0000000..26d89ae
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BMSPrinterKit.h
@@ -0,0 +1,60 @@
+//
+// BMSPrinterKit.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/6/12.
+// Copyright (c) 2012 Brother Mobile Solutions. All rights reserved.
+//
+
+
+#ifndef REMOVE_BRPTOUCH_SDK
+#import "BRPtouchPrinterKit.h"
+#endif
+
+#import "BMSPrinterDriver.h"
+
+#import "PrintSettings.h"
+#import "GenericPocketJetPrintSettings.h"
+#import "PJ673PrintSettings.h"
+#import "PJ763MFiPrintSettings.h"
+#import "PJ773PrintSettings.h"
+#import "GenericMobileLabelModelPrintSettings.h"
+#import "RJ4030AiPrintSettings.h"
+#import "RJ4040PrintSettings.h"
+#import "RJ4230BPrintSettings.h"
+#import "RJ4250WBPrintSettings.h"
+#import "RJ3050PrintSettings.h"
+#import "RJ3050AiPrintSettings.h"
+#import "RJ3150PrintSettings.h"
+#import "RJ3150AiPrintSettings.h"
+#import "TD2120NPrintSettings.h"
+#import "TD2130NPrintSettings.h"
+#import "RJ2050PrintSettings.h"
+#import "RJ2140PrintSettings.h"
+#import "RJ2150PrintSettings.h"
+#import "TD4550DNWBPrintSettings.h"
+
+#import "PrintSettingsViewController.h"
+#import "GenericPocketJetPrintSettingsViewController.h"
+#import "PJ673PrintSettingsViewController.h"
+#import "PJ763MFiPrintSettingsViewController.h"
+#import "PJ773PrintSettingsViewController.h"
+#import "GenericMobileLabelModelPrintSettingsViewController.h"
+#import "RJ4030AiPrintSettingsViewController.h"
+#import "RJ4040PrintSettingsViewController.h"
+#import "RJ4230BPrintSettingsViewController.h"
+#import "RJ4250WBPrintSettingsViewController.h"
+#import "RJ3050PrintSettingsViewController.h"
+#import "RJ3050AiPrintSettingsViewController.h"
+#import "RJ3150PrintSettingsViewController.h"
+#import "RJ3150AiPrintSettingsViewController.h"
+#import "TD2120NPrintSettingsViewController.h"
+#import "TD2130NPrintSettingsViewController.h"
+#import "RJ2050PrintSettingsViewController.h"
+#import "RJ2140PrintSettingsViewController.h"
+#import "RJ2150PrintSettingsViewController.h"
+#import "TD4550DNWBPrintSettingsViewController.h"
+
+@interface BMSPrinterKit : NSObject
+
+@end
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRCustomPaperInfoCommand.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRCustomPaperInfoCommand.h
new file mode 100644
index 0000000..1f61e08
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRCustomPaperInfoCommand.h
@@ -0,0 +1,107 @@
+//
+// BRCustomPaperInfoCommand.h
+// BRPtouchPrinterKit
+//
+// Copyright (c) 2018 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+@interface BRCustomPaperInfoCommand : NSObject
+
+typedef enum {
+ Inch = 1,
+ Mm = 2
+}UnitOfLengthParameter;
+
+typedef enum {
+ Roll = 1,
+ DieCut = 2,
+ MarkRoll = 3
+}PaperKindParameter;
+
+typedef enum {
+ InternalError = -1,
+ NoErrorParameters = 0,
+ // Basic
+ TapeWidth = 1,
+ TapeLength = 2,
+ RightMargin = 3,
+ LeftMargin = 4,
+ TopMargin = 5,
+ BottomMargin = 6,
+ LabelPitch = 7,
+ MarkPosition = 8,
+ MarkHeight = 9,
+ DisplayName = 10,
+}ErrorParameterName;
+
+typedef enum {
+ NoError = 0,
+ ExceptionError = 1,
+ OverTheUpperLimit = 2,
+ BelowTheLowerLimit = 3,
+ FailToCreateCommand = 4,
+ FailToReadPTDFile = 5,
+}ErrorParameterDetail;
+
+
+// Basic Settings (readonly)
+@property(nonatomic, strong, readonly) NSString *printerName_;
+@property(readonly) float tapeWidth_;
+@property(readonly) float tapeLength_;
+@property(readonly) float rightMargin_;
+@property(readonly) float leftMagin_;
+@property(readonly) float topMargin_;
+@property(readonly) float bottomMargin_;
+@property(readonly) float labelPitch_;
+@property(readonly) float markPosition_;
+@property(readonly) float markHeight_;
+@property(readonly) UnitOfLengthParameter unitOfLengthParameter_;
+@property(readonly) PaperKindParameter paperKindParameter_;
+
+// Advance Settings
+@property(nonatomic, strong) NSString *displayName;
+@property(readwrite) int energyRank;
+@property(readwrite) float dieStartRevPlus;
+@property(readwrite) float dieStartFwdPlus;
+@property(readwrite) float afterFeedPlus;
+@property(readwrite) float mediaSensorSensitivity;
+@property(readwrite) float mediaSensorIntensity;
+
+- (id) initWithPrinterNameForRoll: (NSString *) printerName
+ tapeWidth: (float) tapeWidth
+ rightMargin: (float) rightMargin
+ leftMagin: (float) leftMagin
+ topMargin: (float) topMargin
+ unitOfLength: (UnitOfLengthParameter) unitOfLengthParameter;
+
+- (id) initWithPrinterNameForDieCut: (NSString *) printerName
+ tapeWidth: (float) tapeWidth
+ tapeLength: (float) tapeLength
+ rightMargin: (float) rightMargin
+ leftMagin: (float) leftMagin
+ topMargin: (float) topMargin
+ bottomMargin: (float) bottomMargin
+ labelPitch: (float) labelPitch
+ unitOfLength: (UnitOfLengthParameter) unitOfLengthParameter;
+
+- (id) initWithPrinterNameForMarkRoll: (NSString *) printerName
+ tapeWidth: (float) tapeWidth
+ tapeLength: (float) tapeLength
+ rightMargin: (float) rightMargin
+ leftMagin: (float) leftMagin
+ topMargin: (float) topMargin
+ bottomMargin: (float) bottomMargin
+ markPosition: (float) markPosition
+ markHeight: (float) markHeight
+ unitOfLength: (UnitOfLengthParameter) unitOfLengthParameter;
+
+- (NSData *) getCustomPaperInfoCommandData: (NSMutableArray **)errorArr;
+
+- (NSString *) valueOfErrorParameter:(ErrorParameterName)errorParameterName;
+- (NSString *) valueOfErrorParameterDetail:(ErrorParameterDetail)errorParameterDetail;
+
+@end
+
+
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMChannel.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMChannel.h
new file mode 100755
index 0000000..2af3eda
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMChannel.h
@@ -0,0 +1,33 @@
+//
+// BRLMPrinterAddress.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+#import "BRLMPrinterDefine.h"
+
+// Set the "serialNumber" that can be getting from EAAccessory.
+// Or set the "Bluetooth Address" that can be getting from your printer (*by self-printing and so on).
+// Please note that it is NOT the serial number of your Printer.
+typedef NSString BRLMExternalAccessorySerialNumber;
+
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMChannel : NSObject
+
+@property (nonatomic, readonly) BRLMChannelType channelType;
+@property (nonatomic, readonly) NSString *channelInfo;
+
+- (instancetype)initWithWifiIPAddress:(NSString *)ipAddress;
+- (instancetype)initWithBluetoothSerialNumber:(BRLMExternalAccessorySerialNumber *)serialNumber;
+- (instancetype)initWithBLELocalName:(NSString *)localName;
+
+- (instancetype)init __unavailable;
+- (instancetype)copy __unavailable;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMCustomPaperSize.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMCustomPaperSize.h
new file mode 100755
index 0000000..1622e67
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMCustomPaperSize.h
@@ -0,0 +1,69 @@
+//
+// BRLMCustomPaperSize.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+#import "BRLMPrintImageSettings.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+typedef NS_ENUM(NSInteger, BRLMCustomPaperSizeLengthUnit) {
+ BRLMCustomPaperSizeLengthUnitInch,
+ BRLMCustomPaperSizeLengthUnitMm,
+ // BRLMCustomPaperSizeLengthUnitDot,
+};
+
+typedef NS_ENUM(NSInteger, BRLMCustomPaperSizePaperKind) {
+ BRLMCustomPaperSizePaperKindRoll,
+ BRLMCustomPaperSizePaperKindDieCut,
+ BRLMCustomPaperSizePaperKindMarkRoll,
+ BRLMCustomPaperSizePaperKindByFile,
+};
+
+typedef struct
+{
+ CGFloat top;
+ CGFloat left;
+ CGFloat bottom;
+ CGFloat right;
+} BRLMCustomPaperSizeMargins;
+BRLMCustomPaperSizeMargins BRLMCustomPaperSizeMarginsMake(CGFloat top, CGFloat left, CGFloat bottom, CGFloat right);
+
+/// immutable
+@interface BRLMCustomPaperSize : NSObject
+
+- (instancetype) initRollWithTapeWidth:(CGFloat) tapeWidth
+ margins:(BRLMCustomPaperSizeMargins)margins // disable bottomMargin
+ unitOfLength:(BRLMCustomPaperSizeLengthUnit) unit;
+
+- (instancetype) initDieCutWithTapeWidth:(CGFloat) tapeWidth
+ tapeLength:(CGFloat) tapeLength
+ margins:(BRLMCustomPaperSizeMargins)margins
+ gapLength:(CGFloat) gapLength
+ unitOfLength:(BRLMCustomPaperSizeLengthUnit) unit;
+
+- (instancetype) initMarkRollWithTapeWidth:(CGFloat) tapeWidth
+ tapeLength:(CGFloat) tapeLength
+ margins:(BRLMCustomPaperSizeMargins)margins
+ markPosition:(CGFloat) markVerticalOffset
+ markHeight:(CGFloat) markLength
+ unitOfLength:(BRLMCustomPaperSizeLengthUnit) unit;
+
+- (instancetype) initWithFile:(NSURL*)filePath;
+
+@property (nonatomic, readonly) BRLMCustomPaperSizePaperKind paperKind;
+@property (nonatomic, nullable, readonly) NSURL *paperBinFilePath;
+@property (nonatomic, readonly) CGFloat tapeWidth;
+@property (nonatomic, readonly) CGFloat tapeLength;
+@property (nonatomic, readonly) BRLMCustomPaperSizeMargins margins;
+@property (nonatomic, readonly) CGFloat gapLength;
+@property (nonatomic, readonly) CGFloat markVerticalOffset;
+@property (nonatomic, readonly) CGFloat markLength;
+@property (nonatomic, readonly) BRLMCustomPaperSizeLengthUnit unit;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMError.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMError.h
new file mode 100644
index 0000000..7bbc920
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMError.h
@@ -0,0 +1,25 @@
+//
+// BRLMError.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMError : NSObject
+
+- (NSString *)description;
+@property(nonatomic, readonly, copy, nullable) NSString *errorRecoverySuggestion;
+
+@property(nonatomic, readonly, copy, nullable) NSDictionary *errorUserInfo;
+
+
+- (instancetype)init __unavailable;
+- (instancetype)copy __unavailable;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMGetStatusError.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMGetStatusError.h
new file mode 100644
index 0000000..83cc882
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMGetStatusError.h
@@ -0,0 +1,27 @@
+//
+// BRLMGetStatusError.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import "BRLMError.h"
+
+typedef NS_ENUM(NSInteger, BRLMGetStatusErrorCode) {
+ BRLMGetStatusErrorCodeNoError,
+ BRLMGetStatusErrorCodePrinterNotFound,
+ BRLMGetStatusErrorCodeTimeout,
+};
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMGetStatusError : BRLMError
+
+@property(nonatomic, readonly) BRLMGetStatusErrorCode code;
+
+- (instancetype)init __unavailable;
+- (instancetype)copy __unavailable;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMMWPrintSettings.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMMWPrintSettings.h
new file mode 100755
index 0000000..ad7d24c
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMMWPrintSettings.h
@@ -0,0 +1,35 @@
+//
+// BRLMMWPrintSettings.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import "BRLMPrintSettingsProtocol.h"
+#import "BRLMPrintImageSettings.h"
+
+#import "BRLMCustomPaperSize.h"
+
+typedef float BRLMMWPrintLengthScale;
+
+
+typedef NS_ENUM(NSInteger, BRLMMWPrintSettingsPaperSize) {
+ BRLMMWPrintSettingsPaperSizeA6,
+ BRLMMWPrintSettingsPaperSizeA7,
+};
+
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMMWPrintSettings : NSObject
+
+
+@property (nonatomic, readonly) BRLMMWPrintSettingsPaperSize paperSize;
+
+// override
+- (nullable instancetype)initDefaultPrintSettingsWithPrinterModel:(BRLMPrinterModel)model;
+- (nullable instancetype)copyWithPrinterModel:(BRLMPrinterModel)model;
+@end
+
+
+NS_ASSUME_NONNULL_END
\ No newline at end of file
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMOpenChannelError.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMOpenChannelError.h
new file mode 100755
index 0000000..19b0f20
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMOpenChannelError.h
@@ -0,0 +1,27 @@
+//
+// BRLMOpenChannelError.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import "BRLMError.h"
+
+typedef NS_ENUM(NSInteger, BRLMOpenChannelErrorCode) {
+ BRLMOpenChannelErrorCodeNoError,
+ BRLMOpenChannelErrorCodeOpenStreamFailure,
+ BRLMOpenChannelErrorCodeTimeout,
+};
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMOpenChannelError : BRLMError
+
+@property(nonatomic, readonly) BRLMOpenChannelErrorCode code;
+
+- (instancetype)init __unavailable;
+- (instancetype)copy __unavailable;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMPJPrintSettings.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMPJPrintSettings.h
new file mode 100755
index 0000000..29f66df
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMPJPrintSettings.h
@@ -0,0 +1,84 @@
+//
+// BRLMPJPrintSettings.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import "BRLMPrintSettingsProtocol.h"
+#import "BRLMPrintImageSettings.h"
+
+#import "BRLMPJPrintSettingsPaperSize.h"
+
+typedef float BRLMPrintSettingsLengthScale;
+
+
+typedef NS_ENUM(NSInteger, BRLMPJPrintSettingsPrintSpeed) {
+ BRLMPJPrintSettingsPrintSpeed2_5inchPerSec,
+ BRLMPJPrintSettingsPrintSpeed1_9inchPerSec,
+ BRLMPJPrintSettingsPrintSpeed1_6inchPerSec,
+ BRLMPJPrintSettingsPrintSpeed1_1inchPerSec,
+};
+
+typedef NS_ENUM(NSInteger, BRLMPJPrintSettingsDensity) {
+ BRLMPJPrintSettingsDensityWeakLevel5,
+ BRLMPJPrintSettingsDensityWeakLevel4,
+ BRLMPJPrintSettingsDensityWeakLevel3,
+ BRLMPJPrintSettingsDensityWeakLevel2,
+ BRLMPJPrintSettingsDensityWeakLevel1,
+ BRLMPJPrintSettingsDensityNeutral,
+ BRLMPJPrintSettingsDensityStrongLevel1,
+ BRLMPJPrintSettingsDensityStrongLevel2,
+ BRLMPJPrintSettingsDensityStrongLevel3,
+ BRLMPJPrintSettingsDensityStrongLevel4,
+ BRLMPJPrintSettingsDensityStrongLevel5,
+ BRLMPJPrintSettingsDensityUsePrinterSetting,
+};
+
+typedef NS_ENUM(NSInteger, BRLMPJPrintSettingsFeedMode) {
+ BRLMPJPrintSettingsFeedModeNoFeed,
+ BRLMPJPrintSettingsFeedModeFixedPage,
+ BRLMPJPrintSettingsFeedModeEndOfPage,
+ BRLMPJPrintSettingsFeedModeEndOfPageRetract,
+};
+
+typedef NS_ENUM(NSInteger, BRLMPJPrintSettingsPaperInsertionPosition) {
+ BRLMPJPrintSettingsPaperInsertionPositionLeft,
+ BRLMPJPrintSettingsPaperInsertionPositionCenter,
+ BRLMPJPrintSettingsPaperInsertionPositionRight,
+};
+
+typedef NS_ENUM(NSInteger, BRLMPJPrintSettingsPaperType) {
+ BRLMPJPrintSettingsPaperTypeRoll,
+ BRLMPJPrintSettingsPaperTypeCutSheet,
+};
+
+typedef NS_ENUM(NSInteger, BRLMPJPrintSettingsRollCase) {
+ BRLMPJPrintSettingsRollCaseNone,
+ BRLMPJPrintSettingsRollCasePARC001_NoAntiCurl,
+ BRLMPJPrintSettingsRollCasePARC001,
+};
+
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMPJPrintSettings : NSObject
+
+
+@property (nonatomic) BRLMPJPrintSettingsPaperSize* paperSize;
+@property (nonatomic) BRLMPJPrintSettingsPaperType paperType;
+@property (nonatomic) BRLMPJPrintSettingsPaperInsertionPosition paperInsertionPosition;
+@property (nonatomic) BRLMPJPrintSettingsFeedMode feedMode;
+@property (nonatomic) BRLMPJPrintSettingsDensity density;
+@property (nonatomic) BRLMPJPrintSettingsRollCase rollCase;
+@property (nonatomic) BRLMPJPrintSettingsPrintSpeed printSpeed;
+@property (nonatomic) BOOL usingCarbonCopyPaper;
+@property (nonatomic) BOOL printDashLine;
+
+// override
+- (nullable instancetype)initDefaultPrintSettingsWithPrinterModel:(BRLMPrinterModel)model;
+- (nullable instancetype)copyWithPrinterModel:(BRLMPrinterModel)model;
+@end
+
+
+NS_ASSUME_NONNULL_END
\ No newline at end of file
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMPJPrintSettingsCustomPaperSize.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMPJPrintSettingsCustomPaperSize.h
new file mode 100644
index 0000000..13114a5
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMPJPrintSettingsCustomPaperSize.h
@@ -0,0 +1,25 @@
+//
+// BRLMPJPrintSettingsCustomPaperSize.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMPJPrintSettingsCustomPaperSize : NSObject
+
+@property (nonatomic, readonly) NSUInteger widthDots;
+@property (nonatomic, readonly) NSUInteger lengthDots;
+@property (nonatomic, readonly) NSUInteger feedDots;
+
+- (instancetype)init __unavailable;
+- (instancetype)copy __unavailable;
+
+- (instancetype)initWithWidthDots:(NSUInteger)width lengthDots:(NSUInteger)length feedDots:(NSUInteger)feed;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMPJPrintSettingsPaperSize.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMPJPrintSettingsPaperSize.h
new file mode 100644
index 0000000..e391d08
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMPJPrintSettingsPaperSize.h
@@ -0,0 +1,35 @@
+//
+// BRLMPJPrintSettingsPaperSize.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+#import "BRLMPJPrintSettingsCustomPaperSize.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+typedef NS_ENUM(NSUInteger, BRLMPJPrintSettingsPaperSizeStandard) {
+ BRLMPJPrintSettingsPaperSizeStandardA4,
+ BRLMPJPrintSettingsPaperSizeStandardLegal,
+ BRLMPJPrintSettingsPaperSizeStandardLetter,
+ BRLMPJPrintSettingsPaperSizeStandardA5,
+ BRLMPJPrintSettingsPaperSizeStandardCustom, // read only
+};
+
+@interface BRLMPJPrintSettingsPaperSize : NSObject
+
+@property (nonatomic, readonly) BRLMPJPrintSettingsPaperSizeStandard paperSizeStandard;
+@property (nonatomic, readonly, nullable) BRLMPJPrintSettingsCustomPaperSize *customPaper;
+
+- (instancetype)init __unavailable;
+- (instancetype)copy __unavailable;
+
+- (instancetype)initWithPaperSizeStandard:(BRLMPJPrintSettingsPaperSizeStandard) paperSizeStandard;
+- (instancetype)initWithCustomPaper:(BRLMPJPrintSettingsCustomPaperSize *)customPaper;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMPTPrintSettings.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMPTPrintSettings.h
new file mode 100755
index 0000000..efbccb9
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMPTPrintSettings.h
@@ -0,0 +1,53 @@
+//
+// BRLMPTPrintSettings.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import "BRLMPrintSettingsProtocol.h"
+#import "BRLMPrintImageSettings.h"
+
+ typedef NS_ENUM(NSInteger, BRLMPTPrintSettingsLabelSize) {
+ BRLMPTPrintSettingsLabelSizeWidth3_5mm,
+ BRLMPTPrintSettingsLabelSizeWidth6mm,
+ BRLMPTPrintSettingsLabelSizeWidth9mm,
+ BRLMPTPrintSettingsLabelSizeWidth12mm,
+ BRLMPTPrintSettingsLabelSizeWidth18mm,
+ BRLMPTPrintSettingsLabelSizeWidth24mm,
+ BRLMPTPrintSettingsLabelSizeWidth36mm,
+ BRLMPTPrintSettingsLabelSizeWidthHS_5_8mm,
+ BRLMPTPrintSettingsLabelSizeWidthHS_8_8mm,
+ BRLMPTPrintSettingsLabelSizeWidthHS_11_7mm,
+ BRLMPTPrintSettingsLabelSizeWidthHS_17_7mm,
+ BRLMPTPrintSettingsLabelSizeWidthHS_23_6mm,
+ BRLMPTPrintSettingsLabelSizeWidthFL_21x45mm,
+ };
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMPTPrintSettings : NSObject
+
+@property (nonatomic) BRLMPTPrintSettingsLabelSize labelSize;
+@property (nonatomic) BOOL cutmarkPrint;
+@property (nonatomic) BOOL autoCut;
+@property (nonatomic) BOOL halfCut;
+@property (nonatomic) BOOL chainPrint;
+@property (nonatomic) BOOL specialTapePrint;
+@property (nonatomic) BRLMPrintSettingsResolution resolution;
+/**
+Description : Specify the page number in “cut each # labels”
+Range(#) : 1 - 255
+Default : 1
+ */
+@property (nonatomic) UInt8 autoCutForEachPageCount;
+@property (nonatomic) BOOL forceVanishingMargin;
+
+
+// override
+- (nullable instancetype)initDefaultPrintSettingsWithPrinterModel:(BRLMPrinterModel)model;
+- (nullable instancetype)copyWithPrinterModel:(BRLMPrinterModel)model;
+@end
+
+
+NS_ASSUME_NONNULL_END
\ No newline at end of file
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMPrintError.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMPrintError.h
new file mode 100644
index 0000000..0be1854
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMPrintError.h
@@ -0,0 +1,52 @@
+//
+// BRLMPrintError.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import "BRLMError.h"
+
+typedef NS_ENUM(NSInteger, BRLMPrintErrorCode) {
+ BRLMPrintErrorCodeNoError,
+ BRLMPrintErrorCodePrintSettingsError,
+ BRLMPrintErrorCodeFilepathURLError,
+ BRLMPrintErrorCodePDFPageError,
+ BRLMPrintErrorCodePrintSettingsNotSupportError,
+ BRLMPrintErrorCodeDataBufferError,
+ BRLMPrintErrorCodePrinterModelError,
+ BRLMPrintErrorCodeCanceled,
+ BRLMPrintErrorCodeChannelTimeout,
+ BRLMPrintErrorCodeSetModelError,
+ BRLMPrintErrorCodeUnsupportedFile,
+ BRLMPrintErrorCodeSetMarginError,
+ BRLMPrintErrorCodeSetLabelSizeError,
+ BRLMPrintErrorCodeCustomPaperSizeError,
+ BRLMPrintErrorCodeSetLengthError,
+ BRLMPrintErrorCodeTubeSettingError,
+ BRLMPrintErrorCodeChannelErrorStreamStatusError,
+ BRLMPrintErrorCodeChannelErrorUnsupportedChannel,
+ BRLMPrintErrorCodePrinterStatusErrorPaperEmpty,
+ BRLMPrintErrorCodePrinterStatusErrorCoverOpen,
+ BRLMPrintErrorCodePrinterStatusErrorBusy,
+ BRLMPrintErrorCodePrinterStatusErrorPrinterTurnedOff,
+ BRLMPrintErrorCodePrinterStatusErrorBatteryWeak,
+ BRLMPrintErrorCodePrinterStatusErrorExpansionBufferFull,
+ BRLMPrintErrorCodePrinterStatusErrorCommunicationError,
+ BRLMPrintErrorCodePrinterStatusErrorPaperJam,
+ BRLMPrintErrorCodePrinterStatusErrorMediaCannotBeFed,
+ BRLMPrintErrorCodePrinterStatusErrorOverHeat,
+ BRLMPrintErrorCodePrinterStatusErrorHighVoltageAdapter,
+ BRLMPrintErrorCodePrinterStatusErrorUnknownError,
+ BRLMPrintErrorCodeUnknownError,
+};
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMPrintError : BRLMError
+
+@property(nonatomic, readonly) BRLMPrintErrorCode code;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMPrintImageSettings.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMPrintImageSettings.h
new file mode 100644
index 0000000..8da4181
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMPrintImageSettings.h
@@ -0,0 +1,77 @@
+//
+// BRLMPrintImageSettings.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+#import "BRLMPrinterDefine.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+
+typedef NS_ENUM(NSInteger, BRLMPrintSettingsCompressMode) {
+ BRLMPrintSettingsCompressModeNone,
+ BRLMPrintSettingsCompressModeTiff,
+ BRLMPrintSettingsCompressModeMode9,
+};
+typedef NS_ENUM(NSInteger, BRLMPrintSettingsHalftone) {
+ BRLMPrintSettingsHalftoneThreshold,
+ BRLMPrintSettingsHalftoneErrorDiffusion,
+ BRLMPrintSettingsHalftonePatternDither,
+};
+typedef NS_ENUM(NSInteger, BRLMPrintSettingsHorizontalAlignment) {
+ BRLMPrintSettingsHorizontalAlignmentLeft,
+ BRLMPrintSettingsHorizontalAlignmentCenter,
+ BRLMPrintSettingsHorizontalAlignmentRight,
+};
+typedef NS_ENUM(NSInteger, BRLMPrintSettingsOrientation) {
+ BRLMPrintSettingsOrientationPortrait,
+ BRLMPrintSettingsOrientationLandscape,
+};
+typedef NS_ENUM(NSInteger, BRLMPrintSettingsPrintQuality) {
+ BRLMPrintSettingsPrintQualityBest,
+ BRLMPrintSettingsPrintQualityFast,
+};
+typedef NS_ENUM(NSInteger, BRLMPrintSettingsResolution) {
+ BRLMPrintSettingsResolutionLow,
+ BRLMPrintSettingsResolutionNormal,
+ BRLMPrintSettingsResolutionHigh,
+};
+typedef NS_ENUM(NSInteger, BRLMPrintSettingsScaleMode) {
+ BRLMPrintSettingsScaleModeActualSize,
+ BRLMPrintSettingsScaleModeFitPageAspect,
+ BRLMPrintSettingsScaleModeFitPaperAspect,
+ BRLMPrintSettingsScaleModeScaleValue,
+};
+typedef NS_ENUM(NSInteger, BRLMPrintSettingsVerticalAlignment) {
+ BRLMPrintSettingsVerticalAlignmentTop,
+ BRLMPrintSettingsVerticalAlignmentCenter,
+ BRLMPrintSettingsVerticalAlignmentBottom,
+};
+
+@protocol BRLMPrintImageSettings
+
+@property (nonatomic, readonly) BRLMPrinterModel printerModel;
+@property (nonatomic) BRLMPrintSettingsScaleMode scaleMode;
+@property (nonatomic) CGFloat scaleValue;
+@property (nonatomic) BRLMPrintSettingsOrientation printOrientation;
+@property (nonatomic) BRLMPrintSettingsHalftone halftone;
+@property (nonatomic) BRLMPrintSettingsHorizontalAlignment hAlignment;
+@property (nonatomic) BRLMPrintSettingsVerticalAlignment vAlignment;
+@property (nonatomic) BRLMPrintSettingsCompressMode compress;
+@property (nonatomic) UInt8 halftoneThreshold;
+@property (nonatomic) NSUInteger numCopies;
+@property (nonatomic) BOOL skipStatusCheck;
+@property (nonatomic) BRLMPrintSettingsPrintQuality printQuality;
+
+
++ (instancetype)new __unavailable;
+- (instancetype)init __unavailable;
+- (instancetype)copy __unavailable;
+
+
+@end
+
+NS_ASSUME_NONNULL_END
\ No newline at end of file
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMPrintSettingsProtocol.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMPrintSettingsProtocol.h
new file mode 100755
index 0000000..2fb4157
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMPrintSettingsProtocol.h
@@ -0,0 +1,25 @@
+//
+// BRLMPrintSettings.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+#import "BRLMPrinterDefine.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@protocol BRLMPrintSettingsProtocol
+
++ (instancetype)new __unavailable;
+- (instancetype)init __unavailable;
+- (instancetype)copy __unavailable;
+
+@required
+- (nullable instancetype)initDefaultPrintSettingsWithPrinterModel:(BRLMPrinterModel)model;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMPrinterClassifier.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMPrinterClassifier.h
new file mode 100644
index 0000000..fac6aba
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMPrinterClassifier.h
@@ -0,0 +1,31 @@
+//
+// BRLMPrinterClassifier.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+#import "BRLMPrinterDefine.h"
+
+typedef NS_ENUM(NSInteger, BRLMPrinterClassifierSeries) {
+ BRLMPrinterClassifierSeriesPJ,
+ BRLMPrinterClassifierSeriesRJ,
+ BRLMPrinterClassifierSeriesTD,
+ BRLMPrinterClassifierSeriesPT,
+ BRLMPrinterClassifierSeriesQL,
+ BRLMPrinterClassifierSeriesMW,
+ BRLMPrinterClassifierSeriesUnknown,
+};
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMPrinterClassifier : NSObject
+
++ (enum BRLMPrinterClassifierSeries)classifyPrinterSerieseFromModel:(BRLMPrinterModel)model;
++ (enum BRLMPrinterModel)transferEnumFromString:(NSString*)modelName;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMPrinterDefine.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMPrinterDefine.h
new file mode 100755
index 0000000..bee784e
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMPrinterDefine.h
@@ -0,0 +1,59 @@
+//
+// BRLMPrinterDefine.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+
+
+typedef NS_ENUM(NSInteger, BRLMChannelType) {
+ BRLMChannelTypeBluetoothMFi,
+ BRLMChannelTypeWiFi,
+ BRLMChannelTypeBluetoothLowEnergy,
+};
+
+typedef NS_ENUM(NSInteger, BRLMPrinterModel) {
+ BRLMPrinterModelPJ_673,
+ BRLMPrinterModelPJ_763MFi,
+ BRLMPrinterModelPJ_773,
+ BRLMPrinterModelMW_145MFi,
+ BRLMPrinterModelMW_260MFi,
+ BRLMPrinterModelMW_170,
+ BRLMPrinterModelMW_270,
+ BRLMPrinterModelRJ_4030Ai,
+ BRLMPrinterModelRJ_4040,
+ BRLMPrinterModelRJ_3050,
+ BRLMPrinterModelRJ_3150,
+ BRLMPrinterModelRJ_3050Ai,
+ BRLMPrinterModelRJ_3150Ai,
+ BRLMPrinterModelRJ_2050,
+ BRLMPrinterModelRJ_2140,
+ BRLMPrinterModelRJ_2150,
+ BRLMPrinterModelRJ_4230B,
+ BRLMPrinterModelRJ_4250WB,
+ BRLMPrinterModelTD_2120N,
+ BRLMPrinterModelTD_2130N,
+ BRLMPrinterModelTD_4100N,
+ BRLMPrinterModelTD_4420DN,
+ BRLMPrinterModelTD_4520DN,
+ BRLMPrinterModelTD_4550DNWB,
+ BRLMPrinterModelQL_710W,
+ BRLMPrinterModelQL_720NW,
+ BRLMPrinterModelQL_810W,
+ BRLMPrinterModelQL_820NWB,
+ BRLMPrinterModelQL_1110NWB,
+ BRLMPrinterModelQL_1115NWB,
+ BRLMPrinterModelPT_E550W,
+ BRLMPrinterModelPT_P750W,
+ BRLMPrinterModelPT_D800W,
+ BRLMPrinterModelPT_E800W,
+ BRLMPrinterModelPT_E850TKW,
+ BRLMPrinterModelPT_P900W,
+ BRLMPrinterModelPT_P950NW,
+ BRLMPrinterModelPT_P300BT,
+ BRLMPrinterModelPT_P710BT,
+ BRLMPrinterModelPT_P715eBT,
+ BRLMPrinterModelPT_P910BT,
+ BRLMPrinterModelUnknown,
+};
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMPrinterDriver.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMPrinterDriver.h
new file mode 100644
index 0000000..bbb0ef8
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMPrinterDriver.h
@@ -0,0 +1,54 @@
+//
+// BRLMPrinterDriver.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+#import "BRLMPrinterDefine.h"
+#import "BRLMPrintError.h"
+#import "BRLMPrintSettingsProtocol.h"
+#import "BRLMPrinterStatus.h"
+#import "BRLMGetStatusError.h"
+
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMGetPrinterStatusResult : NSObject
+@property (nonatomic, readonly) BRLMGetStatusError *error;
+@property (nonatomic, readonly, nullable) BRLMPrinterStatus *status;
+- (instancetype)init __unavailable;
+- (instancetype)copy __unavailable;
+@end
+
+@interface BRLMPrinterDriver : NSObject
+
+- (instancetype)init __attribute__((unavailable("Use [BRLMPrinterDriverGenerator openChannel:] instead")));
+- (instancetype)copy __attribute__((unavailable("Use [BRLMPrinterDriverGenerator openChannel:] instead")));
+
+- (BRLMPrintError *)printImageWithURL:(NSURL *)url settings:(id)settings;
+- (BRLMPrintError *)printImageWithURLs:(NSArray *)urls settings:(id)settings;
+- (BRLMPrintError *)printImageWithImage:(CGImageRef)imageRef settings:(id)settings;
+
+- (BRLMPrintError *)printPDFWithURL:(NSURL *)url settings:(id)settings;
+- (BRLMPrintError *)printPDFWithURLs:(NSArray *)urls settings:(id)settings;
+- (BRLMPrintError *)printPDFWithURL:(NSURL *)url pages:(NSArray *)pages settings:(id)settings;
+
+- (BRLMPrintError *)sendPRNFileWithURL:(NSURL *)url;
+- (BRLMPrintError *)sendPRNFileWithURLs:(NSArray *)urls;
+
+- (void)cancelPrinting;
+
+- (BRLMPrintError *)sendRawData:(NSData *)data;
+
+- (BRLMGetPrinterStatusResult *)getPrinterStatus;
+
+
+- (void)closeChannel;
+
+@end
+
+
+NS_ASSUME_NONNULL_END
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMPrinterDriverGenerator.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMPrinterDriverGenerator.h
new file mode 100755
index 0000000..7e78a37
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMPrinterDriverGenerator.h
@@ -0,0 +1,34 @@
+//
+// BRLMPrinterDriverGenerator.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+#import "BRLMPrinterDriver.h"
+#import "BRLMChannel.h"
+#import "BRLMOpenChannelError.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMPrinterDriverGenerateResult : NSObject
+@property (nonatomic, readonly) BRLMOpenChannelError *error;
+@property (nonatomic, readonly, nullable) BRLMPrinterDriver *driver;
+- (instancetype)init __unavailable;
+- (instancetype)copy __unavailable;
+@end
+
+@interface BRLMPrinterDriverGenerator : NSObject
+
+@property(nonatomic, readonly, nullable) BRLMOpenChannelError *openChannelError;
+
+- (instancetype)init __unavailable;
+- (instancetype)copy __unavailable;
+
++ (BRLMPrinterDriverGenerateResult *)openChannel:(BRLMChannel *)channel;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMPrinterKit+BRPtouchPrinterKit+BMSPrinterKit.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMPrinterKit+BRPtouchPrinterKit+BMSPrinterKit.h
new file mode 100644
index 0000000..f9eedae
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMPrinterKit+BRPtouchPrinterKit+BMSPrinterKit.h
@@ -0,0 +1,18 @@
+//
+// BRLMPrinterKit+BMSPrinterKit.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+//! Project version number for BRLMPrinterKit.
+FOUNDATION_EXPORT double BRLMPrinterKitVersionNumber;
+
+//! Project version string for BRLMPrinterKit.
+FOUNDATION_EXPORT const unsigned char BRLMPrinterKitVersionString[];
+
+#import "BRLMPrinterKit.h"
+#import "BRPtouchPrinterKit.h"
+#import "BMSPrinterKit.h"
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMPrinterKit.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMPrinterKit.h
new file mode 100644
index 0000000..51db651
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMPrinterKit.h
@@ -0,0 +1,32 @@
+//
+// BRLMPrinterKit.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+#import "BRLMPrinterDefine.h"
+
+#import "BRLMPrinterDriver.h"
+#import "BRLMPrinterDriverGenerator.h"
+#import "BRLMError.h"
+#import "BRLMOpenChannelError.h"
+#import "BRLMChannel.h"
+#import "BRLMPrintError.h"
+#import "BRLMGetStatusError.h"
+
+#import "BRLMPrinterStatus.h"
+
+#import "BRLMPrintSettingsProtocol.h"
+#import "BRLMMWPrintSettings.h"
+#import "BRLMPJPrintSettings.h"
+#import "BRLMPTPrintSettings.h"
+#import "BRLMQLPrintSettings.h"
+#import "BRLMRJPrintSettings.h"
+#import "BRLMTDPrintSettings.h"
+#import "BRLMPrinterClassifier.h"
+
+#import "BRLMCustomPaperSize.h"
+#import "BRLMValidatePrintSettings.h"
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMPrinterStatus.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMPrinterStatus.h
new file mode 100755
index 0000000..e2993b2
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMPrinterStatus.h
@@ -0,0 +1,55 @@
+//
+// BRLMPrinterStatus.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+#import "BRLMPrinterDefine.h"
+
+typedef struct {
+ Byte byHead; // Head mark
+ Byte bySize; // Size
+ Byte byBrotherCode; // Brother code
+ Byte bySeriesCode; // Serial code
+ Byte byModelCode; // Model code
+ Byte byNationCode; // Nation code
+ Byte byFiller; // information about cover
+ Byte byFiller2; // Not used
+ Byte byErrorInf; // Error information 1
+ Byte byErrorInf2; // Error information 2
+ Byte byMediaWidth; // Media width
+ Byte byMediaType; // Media type
+ Byte byColorNum; // The number of colors
+ Byte byFont; // Font
+ Byte byJapanesFont; // Japanese font
+ Byte byMode; // Mode
+ Byte byDensity; // Density
+ Byte byMediaLength; // Media Length
+ Byte byStatusType; // Status Type
+ Byte byPhaseType; // Phase type
+ Byte byPhaseNoHi; // Upper bytes of phase number
+ Byte byPhaseNoLow; // Lower bytes of phase number
+ Byte byNoticeNo; // Notice number
+ Byte byExtByteNum; // Total bytes of extended part
+ Byte byLabelColor; // Color of label
+ Byte byFontColor; // Color of font
+ Byte byHardWareSetting[4]; // Settings of hardware
+ Byte byNoUse[2]; // Not Use
+} BRLMPrinterStatusRawDataStructure;
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMPrinterStatus : NSObject
+
+@property (nonatomic, readonly) BRLMPrinterStatusRawDataStructure ptStatus;
+@property (nonatomic, readonly) BRLMPrinterModel model;
+
+- (instancetype)init __unavailable;
+- (instancetype)copy __unavailable;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMQLPrintSettings.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMQLPrintSettings.h
new file mode 100755
index 0000000..93c47ff
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMQLPrintSettings.h
@@ -0,0 +1,64 @@
+//
+// BRLMQLPrintSettings.h
+// BRLMPrinterKit
+//
+// Copyright © 2018 Brother Industries, Ltd. All rights reserved.
+//
+
+#import "BRLMPrintSettingsProtocol.h"
+#import "BRLMPrintImageSettings.h"
+
+ typedef NS_ENUM(NSInteger, BRLMQLPrintSettingsLabelSize) {
+ BRLMQLPrintSettingsLabelSizeDieCutW17H54,
+ BRLMQLPrintSettingsLabelSizeDieCutW17H87,
+ BRLMQLPrintSettingsLabelSizeDieCutW23H23,
+ BRLMQLPrintSettingsLabelSizeDieCutW29H42,
+ BRLMQLPrintSettingsLabelSizeDieCutW29H90,
+ BRLMQLPrintSettingsLabelSizeDieCutW38H90,
+ BRLMQLPrintSettingsLabelSizeDieCutW39H48,
+ BRLMQLPrintSettingsLabelSizeDieCutW52H29,
+ BRLMQLPrintSettingsLabelSizeDieCutW62H29,
+ BRLMQLPrintSettingsLabelSizeDieCutW62H100,
+ BRLMQLPrintSettingsLabelSizeDieCutW60H86,
+ BRLMQLPrintSettingsLabelSizeDieCutW54H29,
+ BRLMQLPrintSettingsLabelSizeDieCutW102H51,
+ BRLMQLPrintSettingsLabelSizeDieCutW102H152,
+ BRLMQLPrintSettingsLabelSizeDieCutW103H164,
+ BRLMQLPrintSettingsLabelSizeRollW12,
+ BRLMQLPrintSettingsLabelSizeRollW29,
+ BRLMQLPrintSettingsLabelSizeRollW38,
+ BRLMQLPrintSettingsLabelSizeRollW50,
+ BRLMQLPrintSettingsLabelSizeRollW54,
+ BRLMQLPrintSettingsLabelSizeRollW62,
+ BRLMQLPrintSettingsLabelSizeRollW62RB,
+ BRLMQLPrintSettingsLabelSizeRollW102,
+ BRLMQLPrintSettingsLabelSizeRollW103,
+ BRLMQLPrintSettingsLabelSizeDTRollW90,
+ BRLMQLPrintSettingsLabelSizeDTRollW102,
+ BRLMQLPrintSettingsLabelSizeDTRollW102H51,
+ BRLMQLPrintSettingsLabelSizeDTRollW102H152,
+ };
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMQLPrintSettings : NSObject
+
+
+@property (nonatomic) BRLMQLPrintSettingsLabelSize labelSize;
+/**
+Description : Specify the page number in “cut each # labels”
+Range(#) : 1 - 255
+Default : 1
+ */
+@property (nonatomic) UInt8 autoCutForEachPageCount;
+@property (nonatomic) BOOL autoCut;
+@property (nonatomic) BOOL cutAtEnd;
+@property (nonatomic) BRLMPrintSettingsResolution resolution;
+
+// override
+- (nullable instancetype)initDefaultPrintSettingsWithPrinterModel:(BRLMPrinterModel)model;
+- (nullable instancetype)copyWithPrinterModel:(BRLMPrinterModel)model;
+@end
+
+
+NS_ASSUME_NONNULL_END
\ No newline at end of file
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMRJPrintSettings.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMRJPrintSettings.h
new file mode 100755
index 0000000..e2d55b3
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMRJPrintSettings.h
@@ -0,0 +1,48 @@
+//
+// BRLMRJPrintSettings.h
+// BRLMPrinterKit
+//
+// Copyright © 2018 Brother Industries, Ltd. All rights reserved.
+//
+
+#import "BRLMPrintSettingsProtocol.h"
+#import "BRLMPrintImageSettings.h"
+
+#import "BRLMCustomPaperSize.h"
+
+
+typedef float BRLMRJPrintLengthScale;
+
+typedef NS_ENUM(NSInteger, BRLMRJPrintSettingsDensity) {
+ BRLMRJPrintSettingsDensityWeakLevel5,
+ BRLMRJPrintSettingsDensityWeakLevel4,
+ BRLMRJPrintSettingsDensityWeakLevel3,
+ BRLMRJPrintSettingsDensityWeakLevel2,
+ BRLMRJPrintSettingsDensityWeakLevel1,
+ BRLMRJPrintSettingsDensityNeutral,
+ BRLMRJPrintSettingsDensityStrongLevel1,
+ BRLMRJPrintSettingsDensityStrongLevel2,
+ BRLMRJPrintSettingsDensityStrongLevel3,
+ BRLMRJPrintSettingsDensityStrongLevel4,
+ BRLMRJPrintSettingsDensityStrongLevel5,
+ BRLMRJPrintSettingsDensityUsePrinterSetting,
+};
+
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMRJPrintSettings : NSObject
+
+
+@property (nonatomic) BRLMCustomPaperSize* customPaperSize;
+@property (nonatomic) BRLMRJPrintSettingsDensity density;
+@property (nonatomic) BOOL rotate180degrees;
+@property (nonatomic) BOOL peelLabel;
+
+// override
+- (nullable instancetype)initDefaultPrintSettingsWithPrinterModel:(BRLMPrinterModel)model;
+- (nullable instancetype)copyWithPrinterModel:(BRLMPrinterModel)model;
+@end
+
+
+NS_ASSUME_NONNULL_END
\ No newline at end of file
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMTDPrintSettings.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMTDPrintSettings.h
new file mode 100755
index 0000000..d2ff1a0
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMTDPrintSettings.h
@@ -0,0 +1,47 @@
+//
+// BRLMTDPrintSettings.h
+// BRLMPrinterKit
+//
+// Copyright © 2018 Brother Industries, Ltd. All rights reserved.
+//
+
+#import "BRLMPrintSettingsProtocol.h"
+#import "BRLMPrintImageSettings.h"
+
+#import "BRLMCustomPaperSize.h"
+
+
+typedef float BRLMTDPrintLengthScale;
+
+typedef NS_ENUM(NSInteger, BRLMTDPrintSettingsDensity) {
+ BRLMTDPrintSettingsDensityWeakLevel5,
+ BRLMTDPrintSettingsDensityWeakLevel4,
+ BRLMTDPrintSettingsDensityWeakLevel3,
+ BRLMTDPrintSettingsDensityWeakLevel2,
+ BRLMTDPrintSettingsDensityWeakLevel1,
+ BRLMTDPrintSettingsDensityNeutral,
+ BRLMTDPrintSettingsDensityStrongLevel1,
+ BRLMTDPrintSettingsDensityStrongLevel2,
+ BRLMTDPrintSettingsDensityStrongLevel3,
+ BRLMTDPrintSettingsDensityStrongLevel4,
+ BRLMTDPrintSettingsDensityStrongLevel5,
+ BRLMTDPrintSettingsDensityUsePrinterSetting,
+};
+
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface BRLMTDPrintSettings : NSObject
+
+
+@property (nonatomic) BRLMCustomPaperSize* customPaperSize;
+@property (nonatomic) BRLMTDPrintSettingsDensity density;
+@property (nonatomic) BOOL peelLabel;
+
+// override
+- (nullable instancetype)initDefaultPrintSettingsWithPrinterModel:(BRLMPrinterModel)model;
+- (nullable instancetype)copyWithPrinterModel:(BRLMPrinterModel)model;
+@end
+
+
+NS_ASSUME_NONNULL_END
\ No newline at end of file
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMValidatePrintSettings.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMValidatePrintSettings.h
new file mode 100644
index 0000000..196d872
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRLMValidatePrintSettings.h
@@ -0,0 +1,42 @@
+//
+// BRLMValidatePrintSettings.h
+// BRLMPrinterKit
+//
+// Copyright © 2020 Brother Industries. All rights reserved.
+//
+
+#import
+
+@protocol BRLMPrintSettingsProtocol;
+
+NS_ASSUME_NONNULL_BEGIN
+
+typedef NS_ENUM(NSInteger, BRLMValidatePrintSettingsIssueRank) {
+ BRLMValidatePrintSettingsIssueRankError,
+ BRLMValidatePrintSettingsIssueRankWarning,
+ BRLMValidatePrintSettingsIssueRankNotice,
+};
+@interface BRLMValidatePrintSettingsIssue : NSObject
+- (instancetype)init __unavailable;
+- (instancetype)copy __unavailable;
+@property(nonatomic, readonly) BRLMValidatePrintSettingsIssueRank rank;
+@property(nonatomic, readonly) NSString* message;
+@property(nonatomic, readonly) NSInteger codeID;
+- (NSString *)description;
+@end
+
+@interface BRLMValidatePrintSettingsReport : NSObject
+- (instancetype)init __unavailable;
+- (instancetype)copy __unavailable;
+@property(nonatomic, readonly) NSArray* issues;
+@property(nonatomic, readonly) NSUInteger errorCount;
+@property(nonatomic, readonly) NSUInteger warningCount;
+@property(nonatomic, readonly) NSUInteger noticeCount;
+- (NSString *)description;
+@end
+
+@interface BRLMValidatePrintSettings : NSObject
++ (BRLMValidatePrintSettingsReport*) validate:(id)printSettings;
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRPtouchBLEManager.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRPtouchBLEManager.h
new file mode 100644
index 0000000..f2421bc
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRPtouchBLEManager.h
@@ -0,0 +1,28 @@
+//
+// BRPtouchBLEManager.h
+// BRPtouchPrinterKit
+//
+// Copyright (c) 2017-2018 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+#import "BRPtouchDeviceInfo.h"
+#import
+
+@interface BRPtouchBLEManager : NSObject
+
++ (BRPtouchBLEManager *)sharedManager;
+
+/**
+ Start searching BLE printers
+ @return NO if BLE is not available, otherwise YES
+ */
+typedef void (^BRBLEManagerSearchCompletionHandler)(BRPtouchDeviceInfo *deviceInfo);
+- (BOOL)startSearchWithCompletionHandler:(BRBLEManagerSearchCompletionHandler)handler;
+
+/**
+ Stop searching BLE printers
+ */
+- (void)stopSearch;
+
+@end
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRPtouchBatteryInfo.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRPtouchBatteryInfo.h
new file mode 100644
index 0000000..3f9118f
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRPtouchBatteryInfo.h
@@ -0,0 +1,26 @@
+//
+// BRPtouchBatteryInfo.h
+// BRPtouchPrinterKit
+//
+// Copyright (c) 2018 Brother Industries, Ltd. All rights reserved.
+//
+#import
+
+typedef NS_ENUM(NSUInteger, BRPtouchBatteryInfoBatteryHealthStatus) {
+ BRPtouchBatteryInfoBatteryHealthStatusExcellent,
+ BRPtouchBatteryInfoBatteryHealthStatusGood,
+ BRPtouchBatteryInfoBatteryHealthStatusReplaceSoon,
+ BRPtouchBatteryInfoBatteryHealthStatusReplaceBattery,
+ BRPtouchBatteryInfoBatteryHealthStatusNotInstalled,
+};
+
+@interface BRPtouchBatteryInfo : NSObject
+@property (nonatomic, readonly) int8_t batteryChargeLevel; // 0~100[%] Not Installed: -1
+@property (nonatomic, readonly) int8_t batteryHealthLevel; // 0~100[%] Not Installed: -1
+@property (nonatomic, readonly) BRPtouchBatteryInfoBatteryHealthStatus batteryHealthStatus;
+
+- (instancetype)initWithChargeLevel:(int8_t)chargeLevel
+ healthLevel:(int8_t)healthLevel
+ healthStatusData:(int8_t)healthStatusData;
+
+@end
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRPtouchBluetoothManager.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRPtouchBluetoothManager.h
new file mode 100644
index 0000000..60b4dda
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRPtouchBluetoothManager.h
@@ -0,0 +1,59 @@
+//
+// BRPtouchBluetoothManager.h
+// BRSearchModule
+//
+// Copyright (c) 2015-2018 Brother Industries, Ltd. All rights reserved.
+//
+
+
+#import
+
+extern NSString *BRDeviceDidConnectNotification;
+extern NSString *BRDeviceDidDisconnectNotification;
+extern NSString *BRDeviceKey;
+
+
+@interface BRPtouchBluetoothManager : NSObject
+
+
+
+/*!
+ * @brief Returns the shared BRPtouchBluetoothManager object for the iOS-based device
+ * @discussion You should always use this method to obtain the bluetooth manager object and should not try to create instances directly.
+ * @return The shared bluetooth manager object.
+ */
++ (BRPtouchBluetoothManager *)sharedManager;
+
+
+
+/*!
+ * @brief The device objects corresponding to the list of currently connected brother devices
+ * @discussion This property contains an array of BRPtouchDeviceInfo objects. Each object corresponds to a brother device that is connected and available for your application to use. Because the contents of this property can change dynamically based on the connection and disconnection of devices, you should not cache the value of this property.
+ * @return The device objects corresponding to the list of currently connected brother devices.
+ */
+- (NSArray *)pairedDevices;
+
+
+
+/*!
+ * @brief Begins the dilivery of brother-device-related notification to the current application.
+ * @discussion You must call this method if you want to be notified when brother devices become connected or disconnected. The system does not send these notifications automatically, so calling this method lets the Brother SDK know that your application is interested in them. Typically, you would call this method only once early in your application, either before or after configuring your notification observers. When you no longer need to monitor these notifications, you should call the matching unregisterForBRDeviceNotifications method.
+ */
+- (void)registerForBRDeviceNotifications;
+
+
+
+/*!
+ * @brief Stop the delivery of brother-device-related notification to the current application
+ * @discussion Typically, you would call this method either when your application exits or when you no longer want to receive brother-device-related notifications. Calls to this method must be balanced with a preceding call to the registerForBRDeviceNotifications method.
+ */
+- (void)unregisterForBRDeviceNotifications;
+
+
+/**
+ * Use Bluetooth DeviceSearch.
+ **/
+- (void)brShowBluetoothAccessoryPickerWithNameFilter:(NSPredicate *)predicate;
+
+
+@end
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRPtouchDeviceInfo.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRPtouchDeviceInfo.h
new file mode 100644
index 0000000..a933663
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRPtouchDeviceInfo.h
@@ -0,0 +1,23 @@
+//
+// BRPtouchDevice.h
+// BRSearchModule
+//
+// Copyright (c) 2015-2018 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+@interface BRPtouchDeviceInfo : NSObject
+
+@property (copy,nonatomic)NSString* strIPAddress;
+@property (copy,nonatomic)NSString* strLocation;
+@property (copy,nonatomic)NSString* strModelName;
+@property (copy,nonatomic)NSString* strPrinterName;
+@property (copy,nonatomic)NSString* strSerialNumber;
+@property (copy,nonatomic)NSString* strNodeName;
+@property (copy,nonatomic)NSString* strMACAddress;
+@property (copy,nonatomic)NSString* strBLEAdvertiseLocalName;
+
+- (NSString *)description;
+
+@end
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRPtouchLabelInfoStatus.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRPtouchLabelInfoStatus.h
new file mode 100644
index 0000000..10fef39
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRPtouchLabelInfoStatus.h
@@ -0,0 +1,119 @@
+//
+// BRPtouchLabelInfo.h
+// BRPtouchPrinterKit
+//
+// Copyright (c) 2016-2018 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+typedef NS_ENUM(NSUInteger, LabelIdType) {
+
+ //QL
+ LabelIdTypeW17H54 = 0x01,
+ LabelIdTypeW17H87 = 0x02,
+ LabelIdTypeW23H23 = 0x03,
+ LabelIdTypeW29H42 = 0x04,
+ LabelIdTypeW29H90 = 0x05,
+ LabelIdTypeW38H90 = 0x06,
+ LabelIdTypeW39H48 = 0x07,
+ LabelIdTypeW52H29 = 0x08,
+ LabelIdTypeW62H29 = 0x09,
+ LabelIdTypeW62H100 = 0x0a,
+ LabelIdTypeW12 = 0x0b, //also used in PT
+ LabelIdTypeW29 = 0xc,
+ LabelIdTypeW38 = 0xd,
+ LabelIdTypeW50 = 0xe,
+ LabelIdTypeW54 = 0xf,
+ LabelIdTypeW62 = 0x10,
+ LabelIdTypeW60H86 = 0x11,
+
+ //PT
+ LabelIdTypeW3_5 = 0x12,
+ LabelIdTypeW6 = 0x13,
+ LabelIdTypeW9 = 0x14,
+ LabelIdTypeW18 = 0x15,
+ LabelIdTypeW24 = 0x16,
+ LabelIdTypeHS_W6 = 0x17,
+ LabelIdTypeHS_W9 = 0x18,
+ LabelIdTypeHS_W12 = 0x19,
+ LabelIdTypeHS_W18 = 0x1a,
+ LabelIdTypeHS_W24 = 0x1b,
+ LabelIdTypeW36 = 0x1c,
+
+ LabelIdTypeR6_5 = 0x1d,
+ LabelIdTypeR6_0 = 0x1f,
+ LabelIdTypeR5_0 = 0x20,
+ LabelIdTypeR4_0 = 0x21,
+ LabelIdTypeR3_5 = 0x22,
+ LabelIdTypeR3_0 = 0x23,
+ LabelIdTypeR2_5 = 0x24,
+
+ LabelIdTypeFLE_W21H45 = 0x25,
+
+ //QL-8対応
+ LabelIdTypeW62RB = 0x26,
+ LabelIdTypeW54H29 = 0x27,
+
+ //QL_1100
+ LabelIdTypeW102 = 0x28,
+ LabelIdTypeW102H51 = 0x29,
+ LabelIdTypeW102H152 = 0x30,
+ LabelIdTypeW103 = 0x31,
+ LabelIdTypeW103H164 = 0x32,
+ LabelIdTypeDT_W90 = 0x33,
+ LabelIdTypeDT_W102 = 0x34,
+ LabelIdTypeDT_W102H51 = 0x35,
+ LabelIdTypeDT_W102H152 = 0x36,
+
+ LabelIdTypeLABEL_MAX
+
+};
+
+typedef NS_ENUM(NSUInteger, ColorType) {
+ WHITE = 0x01,
+ OTHERS,
+ CLEAR,
+ RED,
+ BLUE,
+ YELLOW,
+ GREEN,
+ BLACK,
+ CLEAR_WHITE,
+ GOLD = 0x0A ,
+ GOLD_PREMIUM = 0x0B,
+ SILVER_PREMIUM = 0x0C,
+ OTHERS_PREMIUM = 0x0D,
+ OTHERS_MASKING = 0x0E,
+ SATIN_LIGHTBLUE = 0x0F,
+ SATIN_MINT = 0x10,
+ MATTE_WHITE = 0x20,
+ MATTE_CLEAR,
+ MATTE_SILVER,
+ SATIN_GOLD,
+ SATIN_SILVER = 0x24,
+ BLUE_WHITE = 0x30,
+ RED_WHITE = 0x31,
+ FLOURESCENT_ORANGE = 0x40,
+ FLOURESCENT_YELLOW = 0x41,
+ BERRY_PINK = 0x50,
+ LIGHT_GLAY,
+ LIME_GREEN = 0x52,
+ FABRIC_YELLOW = 0x60,
+ FABRIC_PINK = 0x61,
+ FABRIC_BLUE = 0x62,
+ TUBE_WHITE = 0x70,
+ SELF_WHITE = 0x80,
+ FLEXIBLE_WHITE = 0x90,
+ FLEXIBLE_YELLOW = 0x91,
+ CLEANING = 0xF0,
+ STENCIL = 0xF1,
+ UNSUPPORT = 0xFF,
+};
+
+@interface BRPtouchLabelInfoStatus : NSObject
+@property (nonatomic) LabelIdType labelID;
+@property (nonatomic) ColorType labelColor;
+@property (nonatomic) ColorType fontColor;
+
+@end
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRPtouchLabelParam.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRPtouchLabelParam.h
new file mode 100644
index 0000000..e15846d
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRPtouchLabelParam.h
@@ -0,0 +1,27 @@
+//
+// BRPtouchLabelParam.h
+// BRPtouchPrinterKit
+//
+// Copyright (c) 2016-2018 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+@interface BRPtouchLabelParam : NSObject
+@property (nonatomic) unsigned int paperID;
+@property (nonatomic, copy) NSString* paperName;
+@property (nonatomic) unsigned int paperSize;
+@property (nonatomic) unsigned int pinOffsetLeft;
+@property (nonatomic) unsigned int pinOffsetRight;
+@property (nonatomic) unsigned int physicalOffsetX;
+@property (nonatomic) unsigned int physicalOffsetY;
+@property (nonatomic) unsigned int paperWidth; //dot
+@property (nonatomic) float paperWidth_mm; //mm
+@property (nonatomic) unsigned int paperLength; //dot
+@property (nonatomic) float paperLength_mm; //mm
+@property (nonatomic) unsigned int imageAreaWidth; //dot
+@property (nonatomic) unsigned int imageAreaWidth_mm; //mm
+@property (nonatomic) unsigned int imageAreaLength; //dot
+@property (nonatomic) unsigned int imageAreaLength_mm; //mm
+
+@end
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRPtouchNetworkManager.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRPtouchNetworkManager.h
new file mode 100644
index 0000000..8625523
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRPtouchNetworkManager.h
@@ -0,0 +1,44 @@
+//
+// BRPtouchNetwork.h
+// BRPtouchPrinterKit
+//
+// Copyright (c) 2012-2018 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+#include "BRPtouchDeviceInfo.h"
+
+// Return value
+#define RET_FALSE 0
+#define RET_TRUE 1
+
+@protocol BRPtouchNetworkDelegate;
+
+@interface BRPtouchNetworkManager : NSObject
+
+
+@property(retain, nonatomic) NSMutableArray* registeredPrinterNames;
+@property(assign, nonatomic) BOOL isEnableIPv6Search;
+
+
+- (int)startSearch: (int)searchTime;
+- (NSArray*)getPrinterNetInfo;
+
+- (BOOL)setPrinterNames:(NSArray*)strPrinterNames;
+- (BOOL)setPrinterName:(NSString*)strPrinterName;
+
+- (id)initWithPrinterNames:(NSArray*)strPrinterNames;
+- (id)initWithPrinterName:(NSString*)strPrinterName;
+
+@property (nonatomic, assign) id delegate;
+
+@end
+
+@protocol BRPtouchNetworkDelegate
+
+- (void)didFinishSearch:(id)sender;
+@optional
+- (void)didFindDevice:(BRPtouchDeviceInfo *)deviceInfo;
+
+@end
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRPtouchPrintInfo.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRPtouchPrintInfo.h
new file mode 100644
index 0000000..e78d85b
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRPtouchPrintInfo.h
@@ -0,0 +1,136 @@
+//
+// BRPtouchPrintInfo.h
+// BRPtouchPrinterKit
+//
+// Copyright (c) 2012-2018 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+#define OPTION_AUTOCUT 0x00000001
+#define OPTION_CUTATEND 0x00000002
+
+#define PRINT_ORIGINAL 0x00
+#define PRINT_FIT 0x01 // Deprecated
+#define PRINT_SCALE 0x02
+#define PRINT_FIT_TO_PAGE 0x03
+#define PRINT_FIT_TO_PAPER 0x04
+
+#define ORI_LANDSCAPE 0x00
+#define ORI_PORTRATE 0x01
+
+// Image processing Setting
+#define HALFTONE_BINARY 0x00
+#define HALFTONE_DITHER 0x01
+#define HALFTONE_ERRDIF 0x02
+
+#define ALIGN_LEFT 0x00
+#define ALIGN_CENTER 0x01
+#define ALIGN_RIGHT 0x02
+
+#define ALIGN_TOP 0x00
+#define ALIGN_MIDDLE 0x01
+#define ALIGN_BOTTOM 0x02
+
+#define PAPERALIGN_LEFT 0x00
+#define PAPERALIGN_CENTER 0x01
+#define PAPERALIGN_RIGHT 0x02
+
+#define RET_ERR_PAPERNAME -1
+#define RET_ERR_OPTION -2
+#define RET_ERR_DENSITY -3
+#define RET_ERR_PRINTMODE -4
+#define RET_ERR_ORIENTATION -5
+#define RET_ERR_HALFTONE -6
+#define RET_ERR_HORIZONTAL -7
+#define RET_ERR_VERTICAL -8
+#define RET_ERR_PAPERALIGN -9
+#define RET_ERR_EXTFLAG -10
+
+
+// Cut Mode
+#define FLAG_M_AUTOCUT 0x40
+#define FLAG_M_MIRROR 0x80
+
+// 拡張モード設定フラグ
+#define FLAG_K_DRAFT 0x01
+#define FLAG_K_HALFCUT 0x04
+#define FLAG_K_NOCHAIN 0x08
+#define FLAG_K_SPTAPE 0x10
+#define FLAG_K_AFTERCUT 0x20
+#define FLAG_K_HGPRINT 0x40
+#define FLAG_K_COPY 0x80
+
+// 拡張モード設定フラグ(PJ)
+#define EXT_PJ673_ENCRYPT 0x01
+#define EXT_PJ673_CARBON 0x02
+#define EXT_PJ673_DASHPRINT 0x04
+#define EXT_PJ673_NFD 0x08
+#define EXT_PJ673_EOP 0x10
+#define EXT_PJ673_EPR 0x20
+#define EXT_PJ700_FP 0x40
+
+// 圧縮モードフラグ
+#define COMPRESS_ID 0x4D
+#define COMPRESS_DISABLED 0x00
+#define COMPRESS_PRESERVED 0x01
+#define COMPRESS_ENABLED 0x02
+
+#define PJROLLCASE_OFF 1 //Do not user printer case
+#define PJROLLCASE_ON 2 //Use printer case with anti-curling mechanism
+#define PJROLLCASE_WITH_ANTICURL 3 // Use printer case without anti-curling mechanism
+
+//用紙種類
+#define PJ_ROLL 0x01
+#define PJ_CUT_PAPER 0x02
+
+//Print Quality
+#define PRINTQUALITY_LOW_RESOLUTION 1 // 高速
+#define PRINTQUALITY_NORMAL 2 // ノーマル(高品質)
+#define PRINTQUALITY_DOUBLE_SPEED 3 // ノーマル(高速)
+#define PRINTQUALITY_HIGH_RESOLUTION 4 // 高品質
+#define PRINTQUALITY_HIGH_RESOLUTION_USING_HR_IMAGE 5 // 高品質(高解像度用画像を使用時)
+
+@interface BRPtouchPrintInfo : NSObject
+
+
+@property (copy,nonatomic)NSString* strPaperName;
+@property (assign,nonatomic)int nPrintMode;
+@property (assign,nonatomic)double scaleValue;
+@property (assign,nonatomic)int nDensity;
+@property (assign,nonatomic)int nOrientation;
+@property (assign,nonatomic)int nHalftone;
+@property (assign,nonatomic)int nHalftoneBinaryThreshold;
+@property (assign,nonatomic)int nHorizontalAlign;
+@property (assign,nonatomic)int nVerticalAlign;
+@property (assign,nonatomic)int nPaperAlign;
+@property (assign,nonatomic)int nExtFlag;
+@property (assign,nonatomic)int nAutoCutFlag;
+@property (assign,nonatomic)BOOL bEndcut;
+@property (assign,nonatomic)int nAutoCutCopies;
+@property (assign,nonatomic)BOOL bSpecialTape;
+@property (assign,nonatomic)BOOL bHalfCut;
+//@property (assign,nonatomic)int nNumberofCopies;
+@property (assign,nonatomic)int nTopMargin;
+@property (assign,nonatomic)int nLeftMargin;
+@property (assign,nonatomic)int nSpeed;
+@property (assign,nonatomic)BOOL bBidirection;
+@property (assign,nonatomic)int nCustomLength;
+@property (assign,nonatomic)int nCustomWidth;
+@property (assign,nonatomic)int nCustomFeed;
+@property (copy,nonatomic)NSString* strSaveFilePath;
+@property (assign,nonatomic)BOOL bOverWrite;
+@property (assign,nonatomic)int nRollPrinterCase;
+@property (assign,nonatomic)BOOL bRotate180;
+@property (assign,nonatomic)BOOL bPeel;
+@property (assign,nonatomic)BOOL bCutMark;
+@property (assign,nonatomic)int nLabelMargine;
+@property (assign,nonatomic)int nPJPaperKind;
+@property (assign,nonatomic)int nPrintQuality;
+@property (assign,nonatomic)BOOL bMode9;
+@property (assign,nonatomic)BOOL bRawMode;
+@property (assign,nonatomic)BOOL bBanishMargin;
+@property (assign,nonatomic)BOOL bUseLegacyHalftoneEngine;
+@property (assign,nonatomic)BOOL bUseCopyCommandInTemplatePrint;
+
+@end
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRPtouchPrinter.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRPtouchPrinter.h
new file mode 100644
index 0000000..27d72ab
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRPtouchPrinter.h
@@ -0,0 +1,272 @@
+//
+// BRPtouchPrinter.h
+// BRPtouchPrinterKit
+//
+// Copyright (c) 2012-2018 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+#import
+#import
+#import
+
+#include "BRPtouchPrintInfo.h"
+#include "BRPtouchPrinterData.h"
+#include "BRPtouchPrinterStatus.h"
+#include "BRPtouchLabelParam.h"
+#include "BRPtouchLabelInfoStatus.h"
+#import "BRPtouchBatteryInfo.h"
+#import "BRCustomPaperInfoCommand.h"
+#include "BRPtouchTemplateInfo.h"
+
+#define ERROR_NONE_ 0
+#define ERROR_TIMEOUT -3
+#define ERROR_BADPAPERRES -4
+#define ERROR_IMAGELARGE -6
+#define ERROR_CREATESTREAM -7
+#define ERROR_OPENSTREAM -8
+#define ERROR_FILENOTEXIST -9
+#define ERROR_PAGERANGEERROR -10
+#define ERROR_NOT_SAME_MODEL_ -11
+#define ERROR_BROTHER_PRINTER_NOT_FOUND_ -12
+#define ERROR_PAPER_EMPTY_ -13
+#define ERROR_BATTERY_EMPTY_ -14
+#define ERROR_COMMUNICATION_ERROR_ -15
+#define ERROR_OVERHEAT_ -16
+#define ERROR_PAPER_JAM_ -17
+#define ERROR_HIGH_VOLTAGE_ADAPTER_ -18
+#define ERROR_CHANGE_CASSETTE_ -19
+#define ERROR_FEED_OR_CASSETTE_EMPTY_ -20
+#define ERROR_SYSTEM_ERROR_ -21
+#define ERROR_NO_CASSETTE_ -22
+#define ERROR_WRONG_CASSENDTE_DIRECT_ -23
+#define ERROR_CREATE_SOCKET_FAILED_ -24
+#define ERROR_CONNECT_SOCKET_FAILED_ -25
+#define ERROR_GET_OUTPUT_STREAM_FAILED_ -26
+#define ERROR_GET_INPUT_STREAM_FAILED_ -27
+#define ERROR_CLOSE_SOCKET_FAILED_ -28
+#define ERROR_OUT_OF_MEMORY_ -29
+#define ERROR_SET_OVER_MARGIN_ -30
+#define ERROR_NO_SD_CARD_ -31
+#define ERROR_FILE_NOT_SUPPORTED_ -32
+#define ERROR_EVALUATION_TIMEUP_ -33
+#define ERROR_WRONG_CUSTOM_INFO_ -34
+#define ERROR_NO_ADDRESS_ -35
+#define ERROR_NOT_MATCH_ADDRESS_ -36
+#define ERROR_FILE_NOT_FOUND_ -37
+#define ERROR_TEMPLATE_FILE_NOT_MATCH_MODEL_ -38
+#define ERROR_TEMPLATE_NOT_TRANS_MODEL_ -39
+#define ERROR_COVER_OPEN_ -40
+#define ERROR_WRONG_LABEL_ -41
+#define ERROR_PORT_NOT_SUPPORTED_ -42
+#define ERROR_WRONG_TEMPLATE_KEY_ -43
+#define ERROR_BUSY_ -44
+#define ERROR_TEMPLATE_NOT_PRINT_MODEL_ -45
+#define ERROR_CANCEL_ -46
+#define ERROR_PRINTER_SETTING_NOT_SUPPORTED_ -47
+#define ERROR_INVALID_PARAMETER_ -48
+#define ERROR_INTERNAL_ERROR_ -49
+#define ERROR_TEMPLATE_NOT_CONTROL_MODEL_ -50
+#define ERROR_TEMPLATE_NOT_EXIST_ -51
+#define ERROR_BADENCRYPT_ -52 // This does not occur in iOS
+#define ERROR_BUFFER_FULL_ -53
+#define ERROR_TUBE_EMPTY_ -54
+#define ERROR_TUBE_RIBON_EMPTY_ -55
+#define ERROR_UPDATE_FRIM_NOT_SUPPORTED_ -56 // This does not occur in iOS
+#define ERROR_OS_VERSION_NOT_SUPPORTED_ -57 // This does not occur in iOS
+#define ERROR_MINIMUM_LENGTH_LIMIT_ -58
+#define ERROR_FAIL_TO_CONVERT_CSV_TO_BLF_ -59
+
+
+// Message value
+#define MESSAGE_START_COMMUNICATION_ 1
+#define MESSAGE_START_CONNECT_ 2
+#define MESSAGE_END_CONNECTED_ 3
+//#define MESSAGE_START_GET_OUTPUT_STREAM 4 // Not Available
+//#define MESSAGE_END_GET_OUTPUT_STREAM 5 // Not Available
+//#define MESSAGE_START_GET_INPUT_STREAM 6 // Not Available
+//#define MESSAGE_END_GET_INPUT_STREAM 7 // Not Available
+#define MESSAGE_START_SEND_STATUS_REQUEST_ 8
+#define MESSAGE_END_SEND_STATUS_REQUEST_ 9
+#define MESSAGE_START_READ_PRINTER_STATUS_ 10
+#define MESSAGE_END_READ_PRINTER_STATUS_ 11
+#define MESSAGE_START_CREATE_DATA_ 12
+#define MESSAGE_END_CREATE_DATA_ 13
+#define MESSAGE_START_SEND_DATA_ 14
+#define MESSAGE_END_SEND_DATA_ 15
+#define MESSAGE_START_SEND_TEMPLATE_ 16
+#define MESSAGE_END_SEND_TEMPLATE_ 17
+#define MESSAGE_START_SOCKET_CLOSE_ 18
+#define MESSAGE_END_SOCKET_CLOSE_ 19
+//#define MESSAGE_END_COMMUNICATION 20 // Not Available
+#define MESSAGE_PRINT_COMPLETE_ 21
+#define MESSAGE_PRINT_ERROR_ 22
+#define MESSAGE_PAPER_EMPTY_ 23
+#define MESSAGE_START_COOLING_ 24
+#define MESSAGE_END_COOLING_ 25
+//#define MESSAGE_PREPARATION 26 // Not Available
+#define MESSAGE_WAIT_PEEL_ 27
+#define MESSAGE_START_UPDATE_BLUETOOTH_SETTING_ 28
+#define MESSAGE_END_UPDATE_BLUETOOTH_SETTING_ 29
+#define MESSAGE_START_GET_BLUETOOTH_SETTING_ 30
+#define MESSAGE_END_GET_BLUETOOTH_SETTING_ 31
+#define MESSAGE_START_GET_TEMPLATE_LIST_ 32
+#define MESSAGE_END_GET_TEMPLATE_LIST_ 33
+#define MESSAGE_START_REMOVE_TEMPLATE_LIST_ 34
+#define MESSAGE_END_REMOVE_TEMPLATE_LIST_ 35
+#define MESSAGE_CANCEL_ 36
+//#define MESSAGE_START_TRANSFER_FIRM_ 39, //Not Available
+//#define MESSAGE_END_TRANSFER_FIRM_ 38, //Not Available
+#define MESSAGE_CHECK_PRINTER_STATUS_WHILE_CHANGE_STATUS_MODE_ON_ 39
+
+typedef NS_ENUM(NSUInteger, PrinterSettingItem) {
+ PSI_NET_BOOTMODE = 1,
+ PSI_NET_INTERFACE = 2,
+ PSI_NET_USED_IPV6 = 3,
+ PSI_NET_PRIORITY_IPV6 = 4,
+ PSI_NET_IPV4_BOOTMETHOD = 5,
+ PSI_NET_STATIC_IPV4ADDRESS = 6,
+ PSI_NET_SUBNETMASK = 7,
+ PSI_NET_GATEWAY = 8,
+ PSI_NET_DNS_IPV4_BOOTMETHOD = 9,
+ PSI_NET_PRIMARY_DNS_IPV4ADDRESS = 10,
+ PSI_NET_SECOND_DNS_IPV4ADDRESS = 11,
+ PSI_NET_IPV6_BOOTMETHOD = 12,
+ PSI_NET_STATIC_IPV6ADDRESS = 13,
+ PSI_NET_PRIMARY_DNS_IPV6ADDRESS = 14,
+ PSI_NET_SECOND_DNS_IPV6ADDRESS = 15,
+ PSI_NET_IPV6ADDRESS_LIST = 16,
+ PSI_NET_COMMUNICATION_MODE = 17,
+ PSI_NET_SSID = 18,
+ PSI_NET_CHANNEL = 19,
+ PSI_NET_AUTHENTICATION_METHOD = 20,
+ PSI_NET_ENCRYPTIONMODE = 21,
+ PSI_NET_WEPKEY = 22,
+ PSI_NET_PASSPHRASE = 23,
+ PSI_NET_USER_ID = 24,
+ PSI_NET_PASSWORD = 25,
+ PSI_NET_NODENAME = 26,
+ PSI_WIRELESSDIRECT_KEY_CREATE_MODE = 27,
+ PSI_WIRELESSDIRECT_SSID = 28,
+ PSI_WIRELESSDIRECT_NETWORK_KEY = 29,
+ PSI_BT_ISDISCOVERABLE = 30,
+ PSI_BT_DEVICENAME = 31,
+ PSI_BT_BOOTMODE = 34,
+ PSI_PRINTER_POWEROFFTIME = 35,
+ PSI_PRINTER_POWEROFFTIME_BATTERY = 36,
+ PSI_PRINT_JPEG_HALFTONE = 37,
+ PSI_PRINT_JPEG_SCALE = 38,
+ PSI_PRINT_DENSITY = 39,
+ PSI_PRINT_SPEED = 40,
+
+ PSI_BT_POWERSAVEMODE = 41,
+ PSI_BT_SSP = 42,
+ PSI_BT_AUTHMODE = 43,
+ PSI_BT_AUTO_CONNECTION = 44,
+} ;
+
+// Return value
+#define RET_FALSE 0
+#define RET_TRUE 1
+
+//
+
+typedef NS_ENUM(NSUInteger, CONNECTION_TYPE) {
+ CONNECTION_TYPE_WLAN,
+ CONNECTION_TYPE_BLUETOOTH, // Classic Bluetooth
+ CONNECTION_TYPE_BLE, // Bluetooth Low Energy
+ CONNECTION_TYPE_ERROR
+};
+
+extern NSString *BRWLanConnectBytesWrittenNotification;
+extern NSString *BRBluetoothSessionBytesWrittenNotification;
+extern NSString *BRBLEBytesWrittenNotification;
+extern NSString *BRPtouchPrinterKitMessageNotification;
+
+extern NSString *const BRBytesWrittenKey;
+extern NSString *const BRBytesToWriteKey;
+extern NSString *const BRMessageKey;
+
+
+@interface BRPtouchPrinter : NSObject
+
+- (id)initWithPrinterIPAddress:(NSString *)IPAddress;
+- (id)initWithPrinterName:(NSString*)strPrinterName;
+- (id)initWithPrinterName:(NSString*)strPrinterName interface:(CONNECTION_TYPE)type;
+- (NSString *)printerName;
+- (BOOL)setPrinterName:(NSString*)strPrinterName;
+- (void)setPrintInfo:(BRPtouchPrintInfo*)printInfo;
+- (BOOL)setCustomPaperFile:(NSString*)strFilePath;
+- (NSArray *)setCustomPaperInfoCommand:(BRCustomPaperInfoCommand *)customPaperInfoCommand;
+//- (BOOL)setEncryptKey:(NSString*)strKey keyEx:(NSString*)strKeyEx; // Not Available
+
+- (BOOL)isPrinterReady;
+
+- (NSArray *)getSupportPaperArray;
+- (BRPtouchLabelParam *)getCurrentLabelParam;
+
+- (BRPtouchLabelInfoStatus *)getLabelInfoStatus;
+- (int)getPTStatus:(PTSTATUSINFO*)status;
+- (int)getStatus:(BRPtouchPrinterStatus**)status;
+- (int)getStatus:(BRPtouchPrinterStatus**)status errorCode:(int *)errorCode;
+- (NSString *)getModelName;
+- (NSString *)getFirmVersion;
+- (NSString *)getMediaVersion;
+- (NSString *)getMediaFileVersion:(NSString *)filepath;
+- (NSString *)getDeviceSerialNumber;
+- (int)getSystemReport:(NSString* *)report;
+
+- (BOOL)sendTemplateFile:(NSArray*)sendFileArray;
+- (BOOL)sendFirmwareFile:(NSArray*)sendFileArray;
+
+- (int)sendTemplate:(NSString *)sendtemplateFilePath connectionType:(CONNECTION_TYPE) type;
+- (int)sendDatabase:(NSString *)databaseFilePath;
+
+- (BOOL)startPTTPrint:(int)key encoding:(NSStringEncoding)encoding;
+- (BOOL)replaceText:(NSString *)data;
+- (BOOL)replaceTextIndex:(NSString *)data objectIndex:(int)objIndex;
+- (BOOL)replaceTextName:(NSString *)data objectName:(NSString *)objName;
+- (int)flushPTTPrintWithCopies:(int)nCopy;
+- (int)removeTemplate:(NSArray *)keyList;
+- (int)getTemplateList:(NSArray*__autoreleasing *)templateList;
+
+- (void)setIPAddress:(NSString*)strIP;
+- (void)setupForBluetoothDeviceWithSerialNumber:(NSString*)serialNumber;
+- (void)setBLEAdvertiseLocalName:(NSString*)advertiseLocalName;
+
+/**
+ * Deprecated.
+ * Use startCommunication.
+ **/
+- (int)startPrint __attribute__((deprecated));
+- (BOOL)startCommunication;
+
+/**
+ * Deprecated.
+ * Use endCommunication.
+ **/
+- (void)endPrint __attribute__((deprecated));
+- (void)endCommunication;
+
+- (int)sendFile:(NSString*)filePath;
+- (int)sendData:(NSData*)data;
+- (int)sendFileEx:(NSString*)filePath;
+- (int)sendDataEx:(NSData*)data;
+
+- (int)printPDFAtPath:(NSString *)pdfPath pages:(NSUInteger [])indexes length:(NSUInteger)length copy:(int)nCopy;
+- (int)printImage:(CGImageRef)imageRef copy:(int)nCopy;
+- (int)printFiles:(NSArray *)filePaths copy:(int)nCopy;
+
+- (int)cancelPrinting;
+- (void)setInterface:(CONNECTION_TYPE)strInterface;
+
+- (int)getBatteryStatus;
+- (int)getBatteryInfo:(BRPtouchBatteryInfo* *)batteryInfo;
+- (int)getPrinterBootMode;
+- (int) setAutoConnectBluetooth:(BOOL)flag;
+- (int) isAutoConnectBluetooth;
+
+- (int)setPrinterSettings:(NSDictionary*)printerSettings;
+- (int)getPrinterSettings:(NSDictionary**)printerSettings require:(NSArray*)require;
+
+@end
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRPtouchPrinterData.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRPtouchPrinterData.h
new file mode 100644
index 0000000..05f98fe
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRPtouchPrinterData.h
@@ -0,0 +1,16 @@
+//
+// BRPtouchPrinterData.h
+// BRPtouchPrinterKit
+//
+// Copyright (c) 2012-2018 Brother Industries, Ltd. All rights reserved.
+//
+#import
+
+@interface BRPtouchPrinterData : NSObject
+{
+ NSArray* aryPrinterList;
+}
+
+- (NSArray*)getPrinterList;
+
+@end
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRPtouchPrinterKit.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRPtouchPrinterKit.h
new file mode 100644
index 0000000..d4fb456
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRPtouchPrinterKit.h
@@ -0,0 +1,18 @@
+//
+// BRPtouchPrinterKit.h
+// BRPtouchPrinterKit
+//
+// Copyright (c) 2012-2018 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+#import "BRPtouchPrinter.h"
+#import "BRPtouchNetworkManager.h"
+#import "BRPtouchBluetoothManager.h"
+#import "BRPtouchBLEManager.h"
+#import "BRPtouchDeviceInfo.h"
+#import "BRPtouchTemplateInfo.h"
+
+@interface BRPtouchPrinterKit : NSObject
+
+@end
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRPtouchPrinterStatus.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRPtouchPrinterStatus.h
new file mode 100644
index 0000000..c1dc0a7
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRPtouchPrinterStatus.h
@@ -0,0 +1,58 @@
+//
+// BRPtouchPrinterStatus.h
+// BRPtouchPrinterKit
+//
+// Copyright (c) 2016-2018 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+typedef struct _PTSTATUSINFO {
+ Byte byHead; // Head mark
+ Byte bySize; // Size
+ Byte byBrotherCode; // Brother code
+ Byte bySeriesCode; // Serial code
+ Byte byModelCode; // Model code
+ Byte byNationCode; // Nation code
+ Byte byFiller; // information about cover
+ Byte byFiller2; // Not used
+ Byte byErrorInf; // Error information 1
+ Byte byErrorInf2; // Error information 2
+ Byte byMediaWidth; // Media width
+ Byte byMediaType; // Media type
+ Byte byColorNum; // The number of colors
+ Byte byFont; // Font
+ Byte byJapanesFont; // Japanese font
+ Byte byMode; // Mode
+ Byte byDensity; // Density
+ Byte byMediaLength; // Media Length
+ Byte byStatusType; // Status Type
+ Byte byPhaseType; // Phase type
+ Byte byPhaseNoHi; // Upper bytes of phase number
+ Byte byPhaseNoLow; // Lower bytes of phase number
+ Byte byNoticeNo; // Notice number
+ Byte byExtByteNum; // Total bytes of extended part
+ Byte byLabelColor; // Color of label
+ Byte byFontColor; // Color of font
+ Byte byHardWareSetting[4]; // Settings of hardware
+ Byte byNoUse[2]; // Not Use
+} PTSTATUSINFO, *LPPTSTATUSINFO;
+
+typedef NS_ENUM(NSInteger, BRPtouchPrinterStatusBatteryTernary) {
+ BRPtouchPrinterStatusBatteryTernaryUnknown = -1,
+ BRPtouchPrinterStatusBatteryTernaryYes = 1,
+ BRPtouchPrinterStatusBatteryTernaryNo = 0,
+};
+@interface BRPtouchPrinterStatus : NSObject
+@property (nonatomic) PTSTATUSINFO statusInfo;
+
+// battery
+@property (nonatomic) int32_t batteryResidualQuantityLevel;
+@property (nonatomic) int32_t maxOfBatteryResidualQuantityLevel;
+
+@property (nonatomic) BRPtouchPrinterStatusBatteryTernary isACConnected;
+@property (nonatomic) BRPtouchPrinterStatusBatteryTernary isBatteryMounted;
+
+@property (nonatomic) int16_t batteryLevel __deprecated;
+
+@end
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRPtouchTemplateInfo.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRPtouchTemplateInfo.h
new file mode 100644
index 0000000..158efa8
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/BRPtouchTemplateInfo.h
@@ -0,0 +1,23 @@
+//
+// BRPtouchTemplateInfo.h
+// BRPtouchPrinterKit
+//
+// Copyright (c) 2018 Brother Industries, Ltd. All rights reserved.
+//
+
+#import
+
+// 64-bit value representing the number of 100-nanosecond intervals since January 1, 1601.
+typedef unsigned long long int BRFILETIMEDate;
+extern const BRFILETIMEDate NULLOfBRFILETIMEDate;
+
+@interface BRPtouchTemplateInfo : NSObject
+
+@property (nonatomic, readonly) NSUInteger key;
+@property (nonatomic, readonly) NSUInteger fileSize;
+@property (nonatomic, readonly) NSUInteger checksum;
+@property (nonatomic, readonly) NSDate *modifiedDate;
+@property (nonatomic, readonly) BRFILETIMEDate rawModifiedDate;
+@property (nonatomic, readonly) NSString *fileName;
+
+@end
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/GenericMobileLabelModelPrintSettings.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/GenericMobileLabelModelPrintSettings.h
new file mode 100755
index 0000000..7e369e1
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/GenericMobileLabelModelPrintSettings.h
@@ -0,0 +1,211 @@
+//
+// GenericMobileLabelModelPrintSettings.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/12/12.
+// Copyright (c) 2012-13 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "PrintSettings.h"
+
+
+
+@interface GenericMobileLabelModelPrintSettings : PrintSettings
+{
+ // provide subclasses with access to readonly properties via ivars.
+ // Because they are readonly, there is no "Setter" method available in the superclass.
+ // The subclasses should be the only place where these properties are set.
+ // But, they will be used in this superclass.
+ // Users of this superclass can read the values if desired, but in most cases this
+ // will not be necessary.
+ int _resolutionHorz;
+ int _resolutionVert;
+ int _headSizeDots;
+ int _paperWidthDotsMin;
+ int _paperWidthDotsMax;
+ int _paperLengthDotsMin;
+ int _paperLengthDotsMax;
+ int _marginLengthDotsMin;
+ int _marginLengthDotsMax;
+ int _extraFeedMax;
+
+ unsigned char _energyRank;
+ signed char _sensThrAdj;
+ signed char _sensDutyAdj;
+ int16_t _horzPosAdjDots;
+ int16_t _vertPosAdjDots;
+}
+
+// the following are defined somewhat arbitrarily to limit these settings to a
+// reasonable value during validation.
+// NOTE: We do NOT need "read only" properties for these since they will be the same
+// for each model and subclass.
+#define LABELSPACINGDOTS_MAX 1000
+#define MARKWIDTHDOTS_MAX 1000
+#define MARKOFFSETDOTS_MIN -1000
+#define MARKOFFSETDOTS_MAX 1000
+
+
+//*** IMPORTANT (for SDK Users):
+// *** DO NOT INSTANTIATE AN OBJECT OF THIS CLASS!!!!! ***
+// The GenericMobileLabelModelPrintSettings class is essentially an ABSTRACT class.
+// Instead, you should instantiate the model-specific class, e.g. RJ4040PrintSettings.
+
+//*** The following properties should be set by your app code, either PROGRAMMATICALLY
+// or by using one of the PrintSettingsViewControllers (which may not set all properties).
+
+// The properties and methods in this super-class will be COMMON for all
+// of the RJ and TD printer models.
+// They will be implemented in here generically, but will use the genericModelDelegate
+// property above to get model-specific information.
+
+// SDK Users: All of the properties below (and those in the PrintSettings superclass)
+// are settable by you to change the printer behavior.
+// If you are not using the PrintSettingsViewController (either the SDK's or your own custom one),
+// then you should set each of these properties programmatically to your desired setting.
+@property (nonatomic, assign) PAPERTYPE paperType;
+// formFeedMode = NOFEED mode is used to implement "trimTapeAfterData" from Windows driver.
+// This allows clipping white space from the bottom of the job to save paper.
+@property (nonatomic, assign) FORMFEEDMODE formFeedMode;
+@property (nonatomic, assign) DENSITY density;
+@property (nonatomic,assign) int extraFeed; // used with kFormFeedModeNoFeed only
+
+//*** PAPER SIZE is defined by setting ALL of the following properties.
+// They are used to generate the "Esc iUw[128 bytes]" command.
+
+// Paper Size is defined by a Width and Length.
+// Unprintable Margins impact printable area within this defined size.
+// * Printable height will be calculated as:
+// "printableHeight = paperLengthDots - 2*marginLengthDots"
+// * Printable width will be calculated as:
+// "printableWidth = paperWidthDots - 2*marginWidthDots"
+// Also, since printer paper is "center justified", anything less than 4" width needs to be
+// compensated for using "rightOffsetBytes" to shift the data relative to printhead origin.
+// We calculate "rightOffsetBytes" in the DRIVER based on paperWidthDots and marginWidthDots.
+//
+// NOTE: RJ4040 requires the left/right margins (marginWidth) to be the same as each other,
+// and it requires top/bottom margins (marginLength) to be the same as each other.
+// Although TD2 firmware allows these to be different, we are NOT going to support that
+// functionality. If any margin settings are needed that require these unprintable margins
+// to be different, then use the "marginDots" property in the superclass to make these adjustments.
+@property (nonatomic, assign) int paperWidthDots;
+@property (nonatomic, assign) int paperLengthDots;
+@property (nonatomic, assign) int16_t marginWidthDots; // left and right unprintable margin
+@property (nonatomic, assign) int16_t marginLengthDots; // top and bottom unprintable margin
+// this is for labels only:
+@property (nonatomic, assign) int16_t labelSpacingDots; // distance between labels
+// These 2 are for Marked Paper only:
+@property (nonatomic, assign) int16_t markWidthDots; // width of mark
+@property (nonatomic, assign) int16_t markOffsetDots; // distance from leading edge to marks. Can be negative.
+// The following properties are also added to Esc iUw (additionalMediaInfo) command.
+// In Windows Driver, these are on "Advanced Printing Adjustments..." when editing a PaperSize.
+//
+// Until now they have been hard-coded to match defaults in Windows driver.
+// In SDK version 2.3.4, we made these available for you to modify if necessary.
+// However, they may not be available in the PrintSettingsViewController. TBD.
+// If not and you wish to change them, you must set them independently, as you most likely do with all the other settings anyway.
+@property (nonatomic, assign) unsigned char energyRank; // similar to density.
+ // Range is 0-10
+ // TD-4550 range is 0-30.
+ // Default depends on printer model and paper type.
+ // Set to '\xFF' (-1) to allow SDK to set default, same as SDK versions < v2.3.4.
+
+// NOTE: These are N/A for RJ-4000 series. But they are supported with all other RJ/TD models.
+@property (nonatomic, assign) signed char sensThrAdj; // range = 0xFE (-2) to 0x02 (2), default = 0
+ // TD-4550 range = 0xFB (-5) to 0x05 (5), default = 0
+@property (nonatomic, assign) signed char sensDutyAdj; // range = 0xFE (-2) to 0x02 (2), default = 0
+#ifdef WHAT_THE_SPEC_SAYS
+// This range is small, especially at 300 dpi.
+// And, it doesn't match the size of the field in the struct or the Windows Driver.
+@property (nonatomic, assign) int16_t horzPosAdjDots; // range = 0x80 (-128) to 0x7F (127), default = 0
+@property (nonatomic, assign) int16_t vertPosAdjDots; // range = 0x80 (-128) to 0x7F (127), default = 0
+#else
+// Windows driver allows +/- 5.91 inches at printer resolution.
+// And, the value in Esc iUw structure is a 16-bit signed integer.
+// So, these values in comments seem to be the right ones.
+@property (nonatomic, assign) int16_t horzPosAdjDots; // range = +/- 5.91*resolution, default = 0
+@property (nonatomic, assign) int16_t vertPosAdjDots; // range = +/- 5.91*resolution, default = 0
+#endif
+
+
+// By default, the "Esc iUw [128 bytes]" command will be sent by computing the 128-byte
+// structure fields from the paperSize and other property settings.
+// However, some types of media may not be adequately handled. In this case, we provide the
+// option to disable sending this command. However, it will then be necessary to use the
+// Windows driver to send a job to the printer to cause the appropriate "Esc iUw" command to
+// be sent to the printer.
+// *** The printer will remember the settings from the last time this command was sent. ***
+// It will be important to assure that this class' property settings closely match the
+// settings sent by the Windows driver.
+@property (nonatomic, assign) BOOL sendAdditionalMediaInfoCommand;
+
+
+// Enable/Disable the FIXED 2 Sec Delay at end of **EACH** page when printing by MFi Bluetooth.
+// SDK v2.3.2 forced this delay for RJ-42 models ONLY, without this configurable property.
+// SDK v2.3.3 added this property to allow you to turn it ON only if needed, for RJ-42 series only.
+// SDK v2.3.4 moved this to Generic class, so it can be used with other models in case it is needed.
+// * However, we haven't seen the problem occur with any printers other than RJ-4200 series.
+// * We provide this capability with other models just in case it is helpful.
+//
+// When Enabled:
+// * A fixed 2-second delay is added at the END OF EACH PAGE, for MFi Bluetooth Channel ONLY.
+// * This delay seems to fix a problem that occurs with RJ-42 models which can cause MFi to disconnect
+// when the printer goes into a cooling state while printing multiple page jobs.
+// * However, the delay is NOT needed in most "normal" conditions, so enabling it can slow you down.
+// Therefore, the default value is NO (Disabled).
+//
+// When Disabled (default):
+// * NO 2-sec delay at end of each page, which is normal for all printers released prior to RJ-4200 series.
+// * However, when printing multiple page jobs on RJ-4200 series, there is a possibility that MFi can be disconnected
+// by Apple when printer begins "Cooling". This seems to be a FW bug with RJ-42 models only. However, the possibility
+// exists that other models can have this problem too.
+//
+// Generally, we recommend setting NO unless your "worst case" scenario results in the MFi being disconnected
+// for your printer model. If so, then we suggest giving user a CHOICE to enable/disable this so the delay doesn't
+// occur on every page, unless you are OK with this delay happening every page.
+//
+@property (nonatomic, assign) BOOL coolingDelayEnabled;
+
+//*** The properties below are READ ONLY. SDK Users can NOT set them!!
+// Each subclass MUST set them to their model-specific values in their init method.
+// The purpose of this GenericMobileLabelModelPrintSettings class is to implement COMMON
+// code so it does not have to be duplicated for each similar printer model. However, it
+// requires these model-dependent properties to be set by the SUBCLASS.
+@property (readonly, nonatomic, assign) int resolutionHorz;
+@property (readonly, nonatomic, assign) int resolutionVert;
+@property (readonly, nonatomic, assign) int headSizeDots;
+@property (readonly, nonatomic, assign) int paperWidthDotsMin;
+@property (readonly, nonatomic, assign) int paperWidthDotsMax;
+@property (readonly, nonatomic, assign) int paperLengthDotsMin;
+@property (readonly, nonatomic, assign) int paperLengthDotsMax;
+@property (readonly, nonatomic, assign) int marginLengthDotsMin;
+@property (readonly, nonatomic, assign) int marginLengthDotsMax;
+@property (readonly, nonatomic, assign) int extraFeedMax;
+
+
+// *** PrintSettingsDelegate protocol
+// All subclasses of PrintSettings are required to implement these methods.
+// validatePrintSettings - This function assures that all properties are in range
+// and that there are no conflicting settings.
+- (BOOL)validatePrintSettings;
+- (void) loadPreferences;
+- (void) savePreferences;
+//generate strings from CURRENT settings, for convenience.
+// This is part of the PrintSettingsDelegateProtocol too.
+- (NSString *)stringFromCurrentPaperType;
+// NOTE: PaperSize uses combination of internal settings to generate a string, formatted in inches.
+- (NSString *)stringFromCurrentPaperSize;
+- (NSString *)stringFromCurrentFormFeedMode;
+- (NSString *)stringFromCurrentExtraFeed;
+- (NSString *)stringFromCurrentDensity;
+
+
+//*** generate strings from constants, for convenience
+- (NSString *)stringFromPaperType: (PAPERTYPE)paperType;
+// NOTE: paperSize for these models does not have a constant, so you can only use the CURRENT version below.
+- (NSString *)stringFromFormFeedMode: (FORMFEEDMODE)ffmode;
+- (NSString *)stringFromExtraFeed:(int)extraFeed;
+- (NSString *)stringFromDensity: (DENSITY)density;
+
+
+@end
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/GenericMobileLabelModelPrintSettingsViewController.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/GenericMobileLabelModelPrintSettingsViewController.h
new file mode 100755
index 0000000..f7e7ca9
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/GenericMobileLabelModelPrintSettingsViewController.h
@@ -0,0 +1,50 @@
+//
+// GenericMobileLabelModelPrintSettingsViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/27/13.
+// Copyright (c) 2013 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "PrintSettingsViewController.h"
+#import "GenericMobileLabelModelPrintSettings.h"
+#import "PrintSettingTableViewController.h" // for PrintSettingTableViewResponder protocol, internal use only
+
+
+////////////////////////////////////////////////////////////////////////////////
+
+
+//*********************************************************************
+// GenericMobileLabelModelPrintSettingsViewController INTERFACE
+//
+//*** IMPORTANT: *** DO NOT INSTANTIATE AN OBJECT OF THIS CLASS!!!!! ***
+// The GenericMobileLabelModelPrintSettingsViewController class is essentially an
+// ABSTRACT class.
+// Instead, you should instantiate the model-specific class,
+// e.g. RJ4040PrintSettingsViewController.
+//*********************************************************************
+
+
+@interface GenericMobileLabelModelPrintSettingsViewController : PrintSettingsViewController < UITableViewDelegate, UITableViewDataSource, PrintSettingTableViewResponder>
+{
+}
+
+// "style" MUST be set to UITableViewStyleGrouped!!
+-(id)initWithStyle:(UITableViewStyle)style;
+
+
+// SDK Designers: The PrintSettingsViewController superclass defines several properties:
+// printSettings, popoverSize, rowHeight, fontSize, printSettingsDelegate,
+// showIPAddressHelpButton, IPAddressHelpFileName, and showSettingsOptionMask.
+// So, they are not defined in here.
+// However, this class and/or a model-specific subclass should "init" these properties
+// and handle setter overrides (if necessary).
+//
+// SDK Users: You should be familiar with the superclass properties so you can set
+// them accordingly, in particular the printSettingsDelegate (which handles
+// the PrintSettingsResponder protocol).
+
+
+@end
+
+
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/GenericPocketJetPrintSettings.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/GenericPocketJetPrintSettings.h
new file mode 100755
index 0000000..323e276
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/GenericPocketJetPrintSettings.h
@@ -0,0 +1,99 @@
+//
+// GenericPocketJetPrintSettings.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/23/15.
+// Copyright (c) 2012-15 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "PrintSettings.h"
+
+typedef enum
+{
+ kCustomPaperAlignLeft = 0,
+ kCustomPaperAlignCenter,
+} CUSTOMPAPERALIGN;
+
+@interface GenericPocketJetPrintSettings : PrintSettings
+{
+ // provide subclasses with access to readonly properties via ivars.
+ // Because they are readonly, there is no "Setter" method available in the superclass.
+ // The subclasses should be the only place where these properties are set.
+ // But, they will be used in this superclass.
+ // Users of this superclass can read the values if desired, but in most cases this
+ // will not be necessary.
+ int _resolutionHorz;
+ int _resolutionVert;
+ int _customPaperWidthDotsMin;
+ int _customPaperWidthDotsMax;
+ int _customPaperLengthDotsMin;
+ int _customPaperLengthDotsMax;
+ int _extraFeedMax;
+}
+
+
+//*** IMPORTANT (for SDK Users):
+// *** DO NOT INSTANTIATE AN OBJECT OF THIS CLASS!!!!! ***
+// The GenericPocketJetPrintSettings class is essentially an ABSTRACT class.
+// Instead, you should instantiate the model-specific class, e.g. PJ673PrintSettings.
+
+//*** The following properties should be set by your app code, either PROGRAMMATICALLY
+// or by using one of the PrintSettingsViewControllers (which may not set all properties).
+
+// The properties and methods in this super-class will be COMMON for all
+// of the PocketJet printer models.
+
+// SDK Users: All of the properties below (and those in the PrintSettings superclass)
+// are settable by you to change the printer behavior.
+// If you are not using the PrintSettingsViewController (either the SDK's or your own custom one),
+// then you should set each of these properties programmatically to your desired setting.
+@property (nonatomic, assign) PAPERSIZE paperSize;
+@property (nonatomic, assign) PAPERTYPE paperType;
+@property (nonatomic, assign) FORMFEEDMODE formFeedMode;
+@property (nonatomic,assign) int extraFeed; // used with kFormFeedModeNoFeed only
+@property (nonatomic, assign) DENSITY density;
+// These 3 properties are used ONLY when paperSize is set to kPaperSizeCustom!
+@property (nonatomic, assign) int customPaperWidthDots;
+@property (nonatomic, assign) int customPaperLengthDots;
+@property (nonatomic, assign) CUSTOMPAPERALIGN customPaperAlign;
+
+
+//*** The properties below are READ ONLY. SDK Users can NOT set them!!
+// Each subclass MUST set them to their model-specific values in their init method.
+// The purpose of this GenericPocketJetPrintSettings class is to implement COMMON
+// code so it does not have to be duplicated for each similar printer model. However, it
+// requires these model-dependent properties to be set by the SUBCLASS.
+@property (readonly, nonatomic, assign) int resolutionHorz;
+@property (readonly, nonatomic, assign) int resolutionVert;
+@property (readonly, nonatomic, assign) int customPaperWidthDotsMin;
+@property (readonly, nonatomic, assign) int customPaperWidthDotsMax;
+@property (readonly, nonatomic, assign) int customPaperLengthDotsMin;
+@property (readonly, nonatomic, assign) int customPaperLengthDotsMax;
+@property (readonly, nonatomic, assign) int extraFeedMax;
+
+
+// *** PrintSettingsDelegate protocol
+// All subclasses of PrintSettings are required to implement these methods.
+// validatePrintSettings - This function assures that all properties are in range
+// and that there are no conflicting settings.
+- (BOOL)validatePrintSettings;
+- (void) loadPreferences;
+- (void) savePreferences;
+//generate strings from CURRENT settings, for convenience.
+// This is part of the PrintSettingsDelegateProtocol too.
+- (NSString *)stringFromCurrentPaperType;
+- (NSString *)stringFromCurrentPaperSize;
+- (NSString *)stringFromCurrentFormFeedMode;
+- (NSString *)stringFromCurrentExtraFeed;
+- (NSString *)stringFromCurrentDensity;
+
+
+//*** generate strings from constants, for convenience
+- (NSString *)stringFromPaperType: (PAPERTYPE)paperType;
+- (NSString *)stringFromPaperSize: (PAPERSIZE)paperSize;
+- (NSString *)stringFromFormFeedMode: (FORMFEEDMODE)ffmode;
+- (NSString *)stringFromExtraFeed:(int)extraFeed;
+- (NSString *)stringFromDensity: (DENSITY)density;
+
+
+@end
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/GenericPocketJetPrintSettingsViewController.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/GenericPocketJetPrintSettingsViewController.h
new file mode 100755
index 0000000..5f0149f
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/GenericPocketJetPrintSettingsViewController.h
@@ -0,0 +1,47 @@
+//
+// GenericPocketJetPrintSettingsViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 8/8/12.
+// Copyright (c) 2012 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "PrintSettingsViewController.h"
+#import "GenericPocketJetPrintSettings.h"
+#import "PrintSettingTableViewController.h" // for PrintSettingTableViewResponder protocol, internal use only
+
+
+
+
+//*********************************************************************
+// GenericPocketJetPrintSettingsViewController INTERFACE
+//
+//*** IMPORTANT: *** DO NOT INSTANTIATE AN OBJECT OF THIS CLASS!!!!! ***
+// The GenericPocketJetPrintSettingsViewController class is essentially an
+// ABSTRACT class.
+// Instead, you should instantiate the model-specific class,
+// e.g. PJ673PrintSettingsViewController.
+//*********************************************************************
+
+@interface GenericPocketJetPrintSettingsViewController : PrintSettingsViewController
+{
+}
+
+// "style" MUST be set to UITableViewStyleGrouped!!
+-(id)initWithStyle:(UITableViewStyle)style;
+
+// SDK Designers: The PrintSettingsViewController superclass defines several properties:
+// printSettings, popoverSize, rowHeight, fontSize, printSettingsDelegate,
+// showIPAddressHelpButton, IPAddressHelpFileName, and showSettingsOptionMask.
+// So, they are not defined in here.
+// However, this class and/or a model-specific subclass should "init" these properties
+// and handle setter overrides (if necessary).
+//
+// SDK Users: You should be familiar with the superclass properties so you can set
+// them accordingly, in particular the printSettingsDelegate (which handles
+// the PrintSettingsResponder protocol).
+
+
+@end
+
+
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/PJ673PrintSettings.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/PJ673PrintSettings.h
new file mode 100755
index 0000000..17e53c9
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/PJ673PrintSettings.h
@@ -0,0 +1,43 @@
+//
+// PJ673PrintSettings.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/11/12.
+// Copyright (c) 2012 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericPocketJetPrintSettings.h"
+
+@interface PJ673PrintSettings : GenericPocketJetPrintSettings
+
+// These constants below are provided for reference only. DO NOT MODIFY!
+#define PJ673_RESOLUTION_HORZ 300
+#define PJ673_RESOLUTION_VERT 300
+
+// Arbitrarily restrict extraFeed to 11" at 300 dpi. There is no reason to be larger.
+#define PJ673_MAX_EXTRAFEEDDOTS (11*PJ673_RESOLUTION_VERT)
+
+// NOTE: These custom MIN/MAX settings will be built into framework, so you can't change them.
+// And, the setter functions will clip to these values. The reasons for these choices are described below.
+// If you require something different for some reason, please contact Technical Support.
+#define PJ673_CUSTOM_WIDTHDOTS_MIN 1200 // 4" due to likely skewing of narrower paper. Otherwise can be lower.
+#define PJ673_CUSTOM_WIDTHDOTS_MAX 2550 // 8.5" = max paper width
+#define PJ673_CUSTOM_LENGTHDOTS_MIN 600 // 2" to allow PerfRoll paper to print anything due to large unprintable area
+#define PJ673_CUSTOM_LENGTHDOTS_MAX 30000 // 100", arbitrary
+
+//*** IMPORTANT ***
+// SDK Users:
+// You should NEVER instantiate an object of the GenericPocketJetPrintSettings class.
+// Instead, you should instantiate one of the model-specific subclasses (i.e. PJ673PrintSettings).
+//
+// For a list of important properties in the settings that your application needs to set,
+// refer to the GenericPocketJetPrintSettings superclass.
+
+// SDK Designers:
+// The GenericPocketJetPrintSettings class handles all the important work.
+// This subclass only needs to provide the model-specific data to the generic class.
+
+//*** ADDITIONAL PROPERTIES not handled by GenericPocketJetPrintSettings
+
+
+@end
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/PJ673PrintSettingsViewController.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/PJ673PrintSettingsViewController.h
new file mode 100755
index 0000000..cb6ec15
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/PJ673PrintSettingsViewController.h
@@ -0,0 +1,40 @@
+//
+// PJ673PrintSettingsViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 8/8/12.
+// Copyright (c) 2012 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericPocketJetPrintSettingsViewController.h"
+#import "PJ673PrintSettings.h"
+
+// This is the DEFAULT popup contentSize for PJ673PrintSettingsViewController.
+//
+// You can override this by setting the "popoverSize" property (defined in the
+// PrintSettingsViewController superclass) to something different
+// before showing the ViewController.
+//
+// The popoverSize setting will be propagated to all of the "child" ViewControllers
+// of the main ViewController so all of the detail views will be the SAME size as each other.
+//
+// NOTE: iPad1 and iPad2 size = 1024 x 768, iPad3 = 2048 x 1536
+#define PJ673POPUPCONTENTSIZE CGSizeMake(400,480)
+#define PJ673POPUPCONTENTSIZE_IOS7 CGSizeMake(400,588)
+
+/*
+ This class is a subclass of GenericPocketJetPrintSettingsViewController,
+ which implements all the major functionality.
+
+ *** SDK Users:
+ DO NOT INSTANTIATE an instance of GenericPocketJetPrintSettingsViewController.
+ Always instantiate a model-specific class, e.g. PJ673PrintSettingsViewController
+ */
+
+@interface PJ673PrintSettingsViewController : GenericPocketJetPrintSettingsViewController
+{
+}
+
+@end
+
+
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/PJ763MFIPrintSettingsViewController.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/PJ763MFIPrintSettingsViewController.h
new file mode 100755
index 0000000..67e0b63
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/PJ763MFIPrintSettingsViewController.h
@@ -0,0 +1,41 @@
+//
+// PJ763MFiPrintSettingsViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 8/8/12.
+// Copyright (c) 2012 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericPocketJetPrintSettingsViewController.h"
+#import "PJ763MFiPrintSettings.h"
+
+// This is the DEFAULT popup contentSize for PJ763MFiPrintSettingsViewController.
+//
+// You can override this by setting the "popoverSize" property (defined in the
+// PrintSettingsViewController superclass) to something different
+// before showing the ViewController.
+//
+// The popoverSize setting will be propagated to all of the "child" ViewControllers
+// of the main ViewController so all of the detail views will be the SAME size as each other.
+//
+// NOTE: iPad1 and iPad2 size = 1024 x 768, iPad3 = 2048 x 1536
+//#define PJ763MFiPOPUPCONTENTSIZE CGSizeMake(400,480)
+#define PJ763MFiPOPUPCONTENTSIZE CGSizeMake(400,548)
+#define PJ763MFiPOPUPCONTENTSIZE_IOS7 CGSizeMake(400,588)
+
+/*
+ This class is a subclass of GenericPocketJetPrintSettingsViewController,
+ which implements all the major functionality.
+
+ *** SDK Users:
+ DO NOT INSTANTIATE an instance of GenericPocketJetPrintSettingsViewController.
+ Always instantiate a model-specific class, e.g. PJ763MFiPrintSettingsViewController
+ */
+
+@interface PJ763MFiPrintSettingsViewController : GenericPocketJetPrintSettingsViewController
+{
+}
+
+@end
+
+
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/PJ763MFiPrintSettings.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/PJ763MFiPrintSettings.h
new file mode 100755
index 0000000..1ae62d0
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/PJ763MFiPrintSettings.h
@@ -0,0 +1,45 @@
+//
+// PJ763MFiPrintSettings.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/11/12.
+// Copyright (c) 2012 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericPocketJetPrintSettings.h"
+
+@interface PJ763MFiPrintSettings : GenericPocketJetPrintSettings
+
+// These constants below are provided for reference only. DO NOT MODIFY!
+#define PJ763MFi_RESOLUTION_HORZ 300
+#define PJ763MFi_RESOLUTION_VERT 300
+
+// Arbitrarily restrict extraFeed to 11" at 300 dpi. There is no reason to be larger.
+#define PJ763MFi_MAX_EXTRAFEEDDOTS (11*PJ763MFi_RESOLUTION_VERT)
+
+// NOTE: These custom MIN/MAX settings will be built into framework, so you can't change them.
+// And, the setter functions will clip to these values. The reasons for these choices are described below.
+// If you require something different for some reason, please contact Technical Support.
+#define PJ763MFi_CUSTOM_WIDTHDOTS_MIN 1200 // 4" due to likely skewing of narrower paper. Otherwise can be lower.
+#define PJ763MFi_CUSTOM_WIDTHDOTS_MAX 2550 // 8.5" = max paper width
+#define PJ763MFi_CUSTOM_LENGTHDOTS_MIN 600 // 2" to allow PerfRoll paper to print anything due to large unprintable area
+#define PJ763MFi_CUSTOM_LENGTHDOTS_MAX 30000 // 100", arbitrary
+
+//*** IMPORTANT ***
+// SDK Users:
+// You should NEVER instantiate an object of the GenericPocketJetPrintSettings class.
+// Instead, you should instantiate one of the model-specific subclasses (i.e. PJ763MFiPrintSettings).
+//
+// For a list of important properties in the settings that your application needs to set,
+// refer to the GenericPocketJetPrintSettings superclass.
+
+// SDK Designers:
+// The GenericPocketJetPrintSettings class handles all the important work.
+// This subclass only needs to provide the model-specific data to the generic class.
+
+//*** ADDITIONAL PROPERTIES not handled by GenericPocketJetPrintSettings
+@property (nonatomic, assign) ROLL_CASE_OPTION rollCaseOption;
+@property (nonatomic, assign) PRINT_SPEED_OPTION printSpeedOption;
+
+
+@end
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/PJ773PrintSettings.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/PJ773PrintSettings.h
new file mode 100755
index 0000000..ad67622
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/PJ773PrintSettings.h
@@ -0,0 +1,46 @@
+//
+// PJ773PrintSettings.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/11/12.
+// Copyright (c) 2012 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericPocketJetPrintSettings.h"
+
+
+@interface PJ773PrintSettings : GenericPocketJetPrintSettings
+
+// These constants below are provided for reference only. DO NOT MODIFY!
+#define PJ773_RESOLUTION_HORZ 300
+#define PJ773_RESOLUTION_VERT 300
+
+// Arbitrarily restrict extraFeed to 11" at 300 dpi. There is no reason to be larger.
+#define PJ773_MAX_EXTRAFEEDDOTS (11*PJ773_RESOLUTION_VERT)
+
+// NOTE: These custom MIN/MAX settings will be built into framework, so you can't change them.
+// And, the setter functions will clip to these values. The reasons for these choices are described below.
+// If you require something different for some reason, please contact Technical Support.
+#define PJ773_CUSTOM_WIDTHDOTS_MIN 1200 // 4" due to likely skewing of narrower paper. Otherwise can be lower.
+#define PJ773_CUSTOM_WIDTHDOTS_MAX 2550 // 8.5" = max paper width
+#define PJ773_CUSTOM_LENGTHDOTS_MIN 600 // 2" to allow PerfRoll paper to print anything due to large unprintable area
+#define PJ773_CUSTOM_LENGTHDOTS_MAX 30000 // 100", arbitrary
+
+//*** IMPORTANT ***
+// SDK Users:
+// You should NEVER instantiate an object of the GenericPocketJetPrintSettings class.
+// Instead, you should instantiate one of the model-specific subclasses (i.e. PJ773PrintSettings).
+//
+// For a list of important properties in the settings that your application needs to set,
+// refer to the GenericPocketJetPrintSettings superclass.
+
+// SDK Designers:
+// The GenericPocketJetPrintSettings class handles all the important work.
+// This subclass only needs to provide the model-specific data to the generic class.
+
+//*** ADDITIONAL PROPERTIES not handled by GenericPocketJetPrintSettings
+@property (nonatomic, assign) ROLL_CASE_OPTION rollCaseOption;
+@property (nonatomic, assign) PRINT_SPEED_OPTION printSpeedOption;
+
+
+@end
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/PJ773PrintSettingsViewController.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/PJ773PrintSettingsViewController.h
new file mode 100755
index 0000000..97048c9
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/PJ773PrintSettingsViewController.h
@@ -0,0 +1,41 @@
+//
+// PJ773PrintSettingsViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 8/8/12.
+// Copyright (c) 2012 Brother Mobile Solutions. All rights reserved.
+//
+
+#import "GenericPocketJetPrintSettingsViewController.h"
+#import "PJ773PrintSettings.h"
+
+// This is the DEFAULT popup contentSize for PJ773PrintSettingsViewController.
+//
+// You can override this by setting the "popoverSize" property (defined in the
+// PrintSettingsViewController superclass) to something different
+// before showing the ViewController.
+//
+// The popoverSize setting will be propagated to all of the "child" ViewControllers
+// of the main ViewController so all of the detail views will be the SAME size as each other.
+//
+// NOTE: iPad1 and iPad2 size = 1024 x 768, iPad3 = 2048 x 1536
+//#define PJ773POPUPCONTENTSIZE CGSizeMake(400,480)
+#define PJ773POPUPCONTENTSIZE CGSizeMake(400,548)
+#define PJ773POPUPCONTENTSIZE_IOS7 CGSizeMake(400,588)
+
+/*
+ This class is a subclass of GenericPocketJetPrintSettingsViewController,
+ which implements all the major functionality.
+
+ *** SDK Users:
+ DO NOT INSTANTIATE an instance of GenericPocketJetPrintSettingsViewController.
+ Always instantiate a model-specific class, e.g. PJ773PrintSettingsViewController
+ */
+
+@interface PJ773PrintSettingsViewController : GenericPocketJetPrintSettingsViewController
+{
+}
+
+@end
+
+
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/PrintSettingTableViewController.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/PrintSettingTableViewController.h
new file mode 100755
index 0000000..74a176d
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/PrintSettingTableViewController.h
@@ -0,0 +1,51 @@
+//
+// PrintSettingTableViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 2/11/13.
+// Copyright (c) 2013 Brother Mobile Solutions. All rights reserved.
+//
+// NOTE: This is a generic implementation for all print settings that use a
+// TableView to display the settings. It handles only a single setting at a time.
+//
+// NOTE: This class is used INTERNALLY to the SDK only. But, we need to make this a PUBLIC header file
+// because other public headers need to #import it due to the PrintSettingTableViewResponder protocol.
+
+#import
+
+@protocol PrintSettingTableViewResponder
+// The "tableViewItemChanged" function must be implemented by the class that
+// uses this PrintSettingTableViewController.
+// This function is responsible to:
+// (1) set the new value to its copy of the printSettings,
+// (2) handle any "mutually exclusive" settings (such as FFMode and PaperType),
+// (3) call "printSettingsDidChange" function per the "PrintSettingsSetter"
+// protocol to pass the settings change notification along
+- (void)tableViewItemChanged: (int)whichSetting newItemValue:(int)newItemValue;
+@end
+
+@protocol PrintSettingTableViewSetter
+@property (assign, nonatomic) id printSettingDelegate;
+@end
+
+
+@interface PrintSettingTableViewController : UITableViewController
+{
+ UITableViewCell *_cellWithCheck;
+}
+// used internally only
+@property (nonatomic, retain) UITableViewCell *cellWithCheck;
+
+// Must be set by caller.
+@property (nonatomic, assign) int whichPrintSetting;
+@property (nonatomic, retain) NSString *viewTitle;
+@property (nonatomic, retain) NSArray *tableItemArray;
+@property (nonatomic, assign) int initialItemValueToCheck;
+@property (nonatomic, assign) UITableViewCellStyle cellStyle;
+@property (nonatomic, retain) NSString *section0Title;
+
+// The class which implements the printSettingDidChange function.
+// This MUST be set by the CALLER before we are loaded. It cannot be nil!!
+@property (assign, nonatomic) id printSettingDelegate;
+
+@end
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/PrintSettings.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/PrintSettings.h
new file mode 100755
index 0000000..ac0ba05
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/PrintSettings.h
@@ -0,0 +1,467 @@
+//
+// PrintSettings.h
+// BMSPrinterKit
+//
+// Created by BMS on 9/11/12.
+// Copyright (c) 2012 Brother Mobile Solutions. All rights reserved.
+//
+// NOTE: This is the super-class that contains properties and methods common to each printer model.
+
+#import
+
+//#define ALLOW_BT_TEMPORARILY 1 // TODO: define or undefine this if applicable
+
+
+//*********************************************************************
+// PrintSettingsDelegate PROTOCOL
+//
+// Subclasses of PrintSettings are required to implement the following protocol.
+@protocol PrintSettingsDelegate
+
+//*** Methods
+// SDK Users: These are primary API methods that you may want to use!
+- (BOOL) validatePrintSettings;
+// TODO: Consider changing proto to return BOOL instead of void.
+// For loadPrefs, return FALSE if it detects that they have never been saved previously.
+// This could be helpful in some ISV scenarios.
+- (void) loadPreferences;
+- (void) savePreferences;
+
+// These are only convenience methods, if needed. But, we need to assure that each
+// subclass (and/or the superclass) implements them by adding them to the protocol.
+- (NSString *)stringFromCurrentPaperType;
+- (NSString *)stringFromCurrentPaperSize;
+- (NSString *)stringFromCurrentFormFeedMode;
+- (NSString *)stringFromCurrentExtraFeed;
+- (NSString *)stringFromCurrentDensity;
+
+// NOTE: IPAddress is already an NSString so don't need an API function for it.
+// NOTE: bluetoothDeviceName is already an NSString so don't need an API function for it.
+- (NSString *)stringFromCurrentChannelType;
+- (NSString *)stringFromCurrentIPPort;
+- (NSString *)stringFromCurrentScaleMode;
+- (NSString *)stringFromCurrentOrientation;
+- (NSString *)stringFromCurrentMargins;
+- (NSString *)stringFromCurrentHalftone;
+- (NSString *)stringFromCurrentThreshold;
+- (NSString *)stringFromCurrentCompress;
+- (NSString *)stringFromCurrentInvert;
+- (NSString *)stringFromCurrentPrinterModel;
+
+//*** Strings for custom properties not included in the GenericXXX class.
+// PJ
+- (NSString *)stringFromCurrentRollCase;
+- (NSString *)stringFromCurrentPrintSpeed;
+
+// RJ/TD
+- (NSString *)stringFromCurrentCoolingDelayEnabled;
+- (NSString *)stringFromCurrentCutterOptions;
+
+//*** Properties
+// NOTE: If you wish to get/set any model-dependent properties, then you
+// will need to use (or cast to) an object of the specific subclass.
+// You will NOT be able to use an object of type "PrintSettings *" to
+// access these properties; the compiler will give a "may not respond to" warning.
+//
+// For example 1:
+// PrintSettings *mySettings = [[PJ673PrintSettings alloc] init];
+// // NO!!
+// [mySettings setFormFeedMode:kFormFeedModeFixedPage];
+// // YES!!
+// [(PJ673PrintSettings *)mySettings setFormFeedMode:kFormFeedModeFixedPage];
+//
+// For example 2:
+// PJ673PrintSettings *mySettings = [[PJ673PrintSettings alloc] init];
+// [mySettings setFormFeedMode:kFormFeedModeFixedPage]; // OK!!
+//
+// Though many subclass properties are common to all models,
+// (e.g. paperType, formFeedMode, extraFeed, density), and we COULD put
+// those into this protocol, this is not going to be possible when we
+// get to "paperSize", since PJ-673 handles this very differently from
+// RJ4/TD2 models. So, you will need a specific subclass for that anyway.
+//
+// Furthermore, if we were to put these into this protocol, then the
+// PrintSettings superclass will be required to add these properties to
+// the interface and synthesize them, though they will NEVER be used.
+//
+// Furthermore, since TD2 has properties that are specific for it, we
+// cannot add those to this protocol, so again you will have to use
+// (or cast to) a specific subclass to access these.
+//
+// As such, we will NOT add these 'common' model-specific properties
+// to this protocol.
+//
+// NOTE: We did add the corresponding "stringFromCurrentXXX" methods
+// above, because these can be accessed generically, even for PaperSize.
+
+@end // PrintSettingsDelegate protocol
+//*********************************************************************
+
+
+//*********************************************************************
+//*** NSUserDefaults
+// These are the top-level keys. Each model will have its own "dictionary" of subkeys
+// below this key, so all of the keys for a model will be self-contained.
+#define keyPJ673PrintSettings @"PJ-673 Print Settings"
+#define keyPJ763MFiPrintSettings @"PJ-763MFi Print Settings"
+#define keyPJ773PrintSettings @"PJ-773 Print Settings"
+#define keyRJ4040PrintSettings @"RJ-4040 Print Settings"
+#define keyRJ4030AiPrintSettings @"RJ-4030Ai Print Settings"
+#define keyRJ4230BPrintSettings @"RJ-4230B Print Settings"
+#define keyRJ4250WBPrintSettings @"RJ-4250WB Print Settings"
+#define keyTD2120NPrintSettings @"TD-2120N Print Settings"
+#define keyTD2130NPrintSettings @"TD-2130N Print Settings"
+#define keyRJ3050PrintSettings @"RJ-3050 Print Settings"
+#define keyRJ3050AiPrintSettings @"RJ-3050Ai Print Settings"
+#define keyRJ3150PrintSettings @"RJ-3150 Print Settings"
+#define keyRJ3150AiPrintSettings @"RJ-3150Ai Print Settings"
+#define keyRJ2050PrintSettings @"RJ-2050 Print Settings"
+#define keyRJ2140PrintSettings @"RJ-2140 Print Settings"
+#define keyRJ2150PrintSettings @"RJ-2150 Print Settings"
+#define keyTD4550DNWBPrintSettings @"TD-4550DNWB Print Settings"
+
+// common properties from PrintSettings superclass
+#define keyChannelType @"ChannelType"
+#define keyIPAddress @"IPAddress"
+#define keyBluetoothDeviceName @"BluetoothDeviceName"
+#define keyIPPort @"IPPort"
+#define keyScaleMode @"Scale Mode"
+#define keyOrientation @"Orientation"
+#define keyHalftone @"Halftone"
+#define keyThreshold @"Threshold"
+#define keyCompressionOn @"Compress"
+#define keyMarginTop @"MarginTop"
+#define keyMarginLeft @"MarginLeft"
+#define keyMarginBottom @"MarginBottom"
+#define keyMarginRight @"MarginRight"
+#define keyInvertPrintData @"InvertPrintData"
+
+// common properties from each subclass
+#define keyPaperType @"PaperType"
+#define keyFormFeedMode @"FormFeedMode"
+#define keyExtraFeed @"ExtraFeed"
+#define keyDensity @"Density"
+
+// Papersize is handled differently for different models.
+// Some models (e.g. PJ-673) have a set of fixed sizes defined by constants.
+#define keyPaperSize @"PaperSize"
+// But, now we added Custom Size capability, so let's add some more keys
+#define keyCustomPaperWidth @"CustomPaperWidth"
+#define keyCustomPaperLength @"CustomPaperLength"
+#define keyCustomPaperAlign @"CustomPaperAlign"
+
+
+// For other models (RJ4040, RJ3050, RJ3150, TD2120N, TD2130N),
+// PaperSize is broken up into the following components
+#define keyPaperWidth @"PaperWidth"
+#define keyPaperLength @"PaperLength"
+#define keyPaperMarginWidth @"PaperMarginWidth"
+#define keyPaperMarginLength @"PaperMarginLength"
+#define keyLabelSpacing @"LabelSpacing"
+#define keyMarkWidth @"MarkWidth"
+#define keyMarkOffset @"MarkOffset"
+// new papersize related keys added in 2.3.4
+#define keyEnergyRank @"EnergyRank"
+#define keySensThrAdj @"Sensor Threshold Adjustment"
+#define keySensDutyAdj @"Sensor Duty Adjustment"
+#define keyHorzPosAdjDots @"Horz Position Adjustment"
+#define keyVertPosAdjDots @"Vert Position Adjustment"
+
+
+// TD2 specific keys
+#define keyPeelerEnabled @"Peeler Enabled"
+#define keyInvert180Degrees @"Invert 180 Degrees"
+
+// RJ42 specific keys
+#define keyCoolingDelayEnabled @"Cooling Delay Enabled"
+
+// TD-4550DNWB specific keys
+#define keyCutAtEndOfJobEnabled @"CutAtEnd Enabled"
+#define keyAutoCutEnabled @"AutoCut Enabled"
+#define keyAutoCutEveryNLabels @"AutoCut Every N Labels"
+
+// PJ7 specific keys
+#define keyPrintSpeedOption @"Print Speed Option"
+#define keyRollCaseOption @"Roll Case Option"
+
+// PrintSettingsViewController specific keys
+#define keyBluetoothVCSearchSelectsSerialNumber @"Bluetooth Search Selects Serial Number"
+
+
+//*********************************************************************
+
+
+//*********************************************************************
+//*** Constant Enumerations
+// These are "common" to all printer models
+
+typedef enum
+{
+ // Currently supported printer models
+ // NOTE TO DEVELOPERS: Sometimes the order of the models defined here changes.
+ // While I probably *should* just add new models to the END of the list, instead I sometimes rearrange them
+ // so that they are grouped in a more meaningful way.
+ // Since save/loadPreferences SDK API uses a named key, that shouldn't cause you any problems if the enum changes.
+ // However, if your own app stores this value to preferences separately, I just realized that the value
+ // you saved from older SDK may no longer match the model enum value in a new SDK when you load it from prefs.
+ // As such, if you do store this in preferences,
+ // I recommend that you use **your own** defined enum values (or string values) for the "current model to use",
+ // rather than rely on these being the same with each new SDK release.
+ // If this affects your code in some way after you update to a new SDK, I apologize!!
+ kPrinterModelPJ673 = 1,
+ kPrinterModelPJ763MFi,
+ kPrinterModelPJ773,
+ kPrinterModelRJ4030Ai,
+ kPrinterModelRJ4040,
+ kPrinterModelRJ4230B,
+ kPrinterModelRJ4250WB,
+ kPrinterModelRJ3050,
+ kPrinterModelRJ3050Ai,
+ kPrinterModelRJ3150,
+ kPrinterModelRJ3150Ai,
+ kPrinterModelRJ2050,
+ kPrinterModelRJ2140,
+ kPrinterModelRJ2150,
+ kPrinterModelTD2120N,
+ kPrinterModelTD2130N,
+ kPrinterModelTD4550DNWB,
+
+} PRINTERMODEL;
+
+typedef enum
+{
+ kChannelTypeWIFI = 1,
+ kChannelTypeBluetooth,
+ kChannelTypeFile, // NOTE: When this is selected, SDK will create file "Output.prn" in the App Documents folder.
+} CHANNELTYPE;
+
+typedef enum
+{
+ kHalftoneThreshold = 1,
+ kHalftoneDiffusion,
+} HALFTONE;
+
+typedef enum
+{
+ kScaleModeActualSize = 1,
+ kScaleModeFitPage,
+ kScaleModeFitPageAspect,
+ kScaleModeFitWidthAspectAutoHeight,
+} SCALEMODE;
+
+typedef enum
+{
+ kOrientationPortrait = 1,
+ kOrientationLandscape90,
+ kOrientationPortrait180,
+ kOrientationLandscape270,
+} ORIENTATION;
+
+//*** The following enums are for properties defined in each subclass,
+// i.e. they are model-specific properties (at least as concerns the subset of values supported).
+// We define them here instead of in each subclass' header file so they can hold ALL of the
+// possible values for ALL models to avoid "redefinition of enumerator" compiler errors if we
+// attempt to use the same constant names in different enums within each subclass.
+// *** Each printer model is likely to support only a SUBSET of these values. ***
+// As such, we will handle limiting the available choices in the "setter" function for each
+// property in the appropriate PrintSettings subclass for each model.
+// Refer to the SDK Documentation for a list of values supported by each printer model.
+typedef enum
+{
+ kPaperSizeLetter=1,
+ kPaperSizeLegal,
+ kPaperSizeA4,
+ kPaperSizeCustom,
+} PAPERSIZE;
+
+typedef enum
+{
+ kPaperTypeRoll = 1, // unmarked roll, used by PJ, RJ, and TD
+ kPaperTypeCutsheet, // PJ only
+ kPaperTypePerfRoll, // marked roll, used by PJ, RJ, and TD
+ kPaperTypePerfRollRetract, // marked roll, with forced retraction, used by PJ only
+ kPaperTypeDieCutLabel, // label, used by RJ and TD only
+} PAPERTYPE;
+
+
+typedef enum
+{
+ kFormFeedModeNoFeed=1,
+ kFormFeedModeFixedPage,
+ kFormFeedModeEndOfPage,
+ kFormFeedModeEndOfPageRetract,
+} FORMFEEDMODE;
+
+typedef enum
+{
+ kDensity0 = 0, // start this one at 0 rather than 1. "stringFromDensity" in particular requires this.
+ kDensity1,
+ kDensity2,
+ kDensity3,
+ kDensity4,
+ kDensity5,
+ kDensity6,
+ kDensity7,
+ kDensity8,
+ kDensity9,
+ kDensity10,
+ kDensityUsePrinterSetting, // use value saved to printer, don't send command
+} DENSITY;
+
+// PJ-7 only
+typedef enum
+{
+ kRollCaseOption_None = 1,
+ kRollCaseOption_PARC001_NoAntiCurl,
+ kRollCaseOption_PARC001,
+ kRollCaseOption_UsePrinterSetting, // use value saved to printer, don't send command
+} ROLL_CASE_OPTION;
+
+// PJ-7 only
+typedef enum
+{
+ kPrintSpeedOption_65mmpersec = 1, // 2.5 ips
+ kPrintSpeedOption_48mmpersec, // 1.9 ips
+ kPrintSpeedOption_41mmpersec, // 1.6 ips
+ kPrintSpeedOption_27mmpersec, // 1.1 ips
+ kPrintSpeedOption_UsePrinterSetting, // use value saved to printer, don't send command
+} PRINT_SPEED_OPTION;
+
+//*********************************************************************
+
+
+//*********************************************************************
+//*** struct definitions
+
+// Arbitrarily limit the size (in dots) of each margin dimension to something rational.
+// These values are used when setting and validating the margins.
+#define MARGINDOTSMIN 0
+#define MARGINDOTSMAX 1000
+
+typedef struct
+{
+ int top;
+ int left;
+ int bottom;
+ int right;
+} MARGINS, *pMARGINS;
+//*********************************************************************
+
+
+@interface PrintSettings : NSObject
+{
+ // provide subclasses with access to READONLY properties via ivars.
+ // Because they are readonly, there is no "Setter" method available in the superclass.
+ // The subclasses should be the only place where these properties are set.
+ // But, they will be used in this superclass.
+ // Users of this superclass can read the values if desired, but in most cases this
+ // will not be necessary.
+ PRINTERMODEL _printerModel;
+
+ // provide subclasses with access to non-readonly ivars too, especially if subclass implements setter override.
+ CHANNELTYPE _channelType;
+
+}
+
+// NOTE: This superclass contains properties that will be common to all subclasses.
+
+// SDK Users: All of the properties below (and those in the PrintSettings subclasses)
+// are settable by you to change the printer behavior.
+// If you are not using the PrintSettingsViewController (either the SDK's or your own custom one),
+// then you should set each of these properties programmatically to your desired setting.
+
+@property (nonatomic, assign) CHANNELTYPE channelType;
+@property (nonatomic, retain) NSString *IPAddress;
+@property (nonatomic, assign) int IPPort;
+@property (nonatomic, retain) NSString *bluetoothDeviceNameOrSerialNumber;
+
+@property (nonatomic, assign) SCALEMODE scaleMode;
+@property (nonatomic, assign) ORIENTATION orientation;
+@property (nonatomic, assign) MARGINS marginDots;
+
+@property (nonatomic, assign) HALFTONE halftone;
+// INCREASE this value to make printout darker. Decrease to make it lighter. Default is 128.
+@property (nonatomic, assign) Byte threshold;
+@property (nonatomic, assign) BOOL compress;
+// NOTE: Added this property to allow inverting the print data (i.e. black<->white)
+// But, not adding this to the ViewController. It must be set programmatically.
+@property (nonatomic, assign) BOOL bInvert;
+
+//*** NOTE: The following properties are NOT used for printing,
+// but they are part of the PrintSettings superclass for convenience.
+
+// For save/loadPreferences, each subclass MUST set this during init.
+// NOTE: If desired, the caller can set this to be different from the default, so not using readonly attribute.
+@property (nonatomic, retain) NSString *preferencesKey;
+
+//*** The following properties are used ONLY by the PrintSettingsViewController(s)
+// They are specified here only to allow SDK-related preferences to be stored in their own container
+// along with the rest of the preferences.
+@property (nonatomic, assign) BOOL bBluetoothVCSearchSelectsSerialNumber;
+
+
+//*** READONLY properties. Values will be set by the subclass. SDK User can NOT change it.
+// printerModel may be useful if the subclass (e.g. PJ673PrintSettings) object instance is
+// stored inside the app using a superclass (e.g. PrintSettings) object reference.
+// This can be used to perform model-specific behavior in your app, if necessary.
+@property (readonly, nonatomic, assign) PRINTERMODEL printerModel;
+
+// *** PrintSettingsDelegate protocol
+// All subclasses of PrintSettings are required to implement these methods.
+// validatePrintSettings - This function assures that all properties are in range
+// and that there are no conflicting settings.
+- (BOOL) validatePrintSettings;
+- (void) loadPreferences;
+- (void) savePreferences;
+
+// These are only convenience methods, if needed. But, we need to assure that each
+// subclass (and/or the superclass) implements them by adding them to the protocol.
+
+//*** generate strings from CURRENT values of properties, for convenience
+- (NSString *)stringFromCurrentPaperType;
+- (NSString *)stringFromCurrentPaperSize;
+- (NSString *)stringFromCurrentFormFeedMode;
+- (NSString *)stringFromCurrentExtraFeed;
+- (NSString *)stringFromCurrentDensity;
+
+// NOTE: IPAddress is already an NSString so don't need an API function for it.
+// NOTE: bluetoothDeviceName is already an NSString so don't need an API function for it.
+- (NSString *)stringFromCurrentChannelType;
+- (NSString *)stringFromCurrentIPPort;
+- (NSString *)stringFromCurrentScaleMode;
+- (NSString *)stringFromCurrentOrientation;
+- (NSString *)stringFromCurrentMargins;
+- (NSString *)stringFromCurrentHalftone;
+- (NSString *)stringFromCurrentThreshold;
+- (NSString *)stringFromCurrentCompress;
+- (NSString *)stringFromCurrentInvert;
+- (NSString *)stringFromCurrentPrinterModel;
+// Strings for custom properties not included in the GenericXXX class.
+// PJ
+- (NSString *)stringFromCurrentRollCase;
+- (NSString *)stringFromCurrentPrintSpeed;
+// RJ/TD
+- (NSString *)stringFromCurrentCoolingDelayEnabled;
+- (NSString *)stringFromCurrentCutterOptions; // TD-4550DNWB only for now.
+
+
+//*** generate strings from SPECIFIC constants, for convenience
+// NOTE: IPAddress is already an NSString so don't need an API function for it.
+// NOTE: bluetoothDeviceName is already an NSString so don't need an API function for it.
+- (NSString *)stringFromChannelType:(CHANNELTYPE)channelType;
+- (NSString *)stringFromIPPort: (int)ipPort;
+- (NSString *)stringFromScaleMode:(SCALEMODE)scaleMode;
+- (NSString *)stringFromOrientation:(ORIENTATION)orientation;
+- (NSString *)stringFromMargins:(MARGINS)margins;
+- (NSString *)stringFromHalftone: (HALFTONE)halftone;
+- (NSString *)stringFromThreshold:(Byte)threshold;
+- (NSString *)stringFromBool: (BOOL)boolValue; // used with compress, invert
+- (NSString *)stringFromPrinterModel: (PRINTERMODEL)model;
+// Strings for custom properties not included in the GenericXXX class.
+// PJ
+- (NSString *)stringFromRollCase:(ROLL_CASE_OPTION)rollCaseOption;
+- (NSString *)stringFromPrintSpeed:(PRINT_SPEED_OPTION)printSpeedOption;
+// RJ/TD
+- (NSString *)stringFromCutEveryNLabels:(Byte)nLabels;
+
+@end
diff --git a/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/PrintSettingsViewController.h b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/PrintSettingsViewController.h
new file mode 100755
index 0000000..195a17b
--- /dev/null
+++ b/Frameworks/BRLMPrinterKitW.xcframework/ios-arm64_armv7/BRLMPrinterKitW.framework/Headers/PrintSettingsViewController.h
@@ -0,0 +1,203 @@
+//
+// PrintSettingsViewController.h
+// BMSPrinterKit
+//
+// Created by BMS on 8/8/12.
+// Copyright (c) 2012 Brother Mobile Solutions. All rights reserved.
+//
+// The PrintSettingsViewController class is the SUPERCLASS of each of the
+// model-specific view controller classes.
+//
+// You should NEVER instantiate an object of this superclass. Instead, instantiate
+// an object of the model-specific subclass, e.g. PJ673PrintSettingsViewController.
+
+#import
+#import "PrintSettings.h"
+
+// The following mask constants allow customizing the options available in the PrintSettingsViewController.
+// Combine these using the OR (|) operator to select only the options you want to be available.
+// Set these into the property named "showSettingsOptionMask".
+typedef enum
+{
+ // NOTE: Not all options will be available for all printer models.
+ // If an unsupported option is added to the mask, it will be ignored.
+
+ // Printer Connection Settings
+ kShowSettingsOption_ChannelType = 0x00000001,
+ kShowSettingsOption_IPAddress = 0x00000002,
+ kShowSettingsOption_Bluetooth = 0x00000004,
+ // Printer-specific settings
+ kShowSettingsOption_PaperSize = 0x00000008,
+ kShowSettingsOption_PaperType = 0x00000010,
+ kShowSettingsOption_FormFeedMode = 0x00000020,
+ kShowSettingsOption_ExtraFeed = 0x00000040,
+ kShowSettingsOption_Density = 0x00000080,
+ // General Settings
+ kShowSettingsOption_ScaleMode = 0x00000100,
+ kShowSettingsOption_Orientation = 0x00000200,
+ kShowSettingsOption_Margins = 0x00000400,
+ kShowSettingsOption_Halftone = 0x00000800,
+ kShowSettingsOption_Threshold = 0x00001000,
+ kShowSettingsOption_Invert = 0x00002000,
+
+ // PJ7 model-specific settings not handled by above options
+ kShowSettingsOption_RollCase = 0x00004000,
+ kShowSettingsOption_PrintSpeed = 0x00008000,
+
+ // RJ42 model-specific settings not handled by above options
+ // NOTE: This is now in genericMLM class, but only RJ42 seems to need it.
+ kShowSettingsOption_CoolingDelayEnabled = 0x00010000,
+
+ // TD-4550DNWB model-specific settings not handled by above options
+ kShowSettingsOption_Cutter = 0x00020000,
+
+ // ViewController Settings
+ // Normally, the TableView uses 3 sections. However, depending on the combination
+ // of settings added, it may look better with only a single section.
+ kShowSettingsOption_SingleSection = 0x80000000,
+
+} SETTINGS_OPTIONS_MASK;
+
+//*********************************************************************
+// PrintSettingsResponder PROTOCOL
+// NOTE: Perhaps a better way to implement this would be using NSNotificationCenter.
+// But, for now we will use with this approach.
+/*
+ A class that uses a PrintSettingsViewController is a PrintSettingsResponder.
+
+ You are required to do 3 things if you implement this protocol:
+ --------------------------------------------------------------
+ 1. Set the "printSettingsDelegate" property in the PrintSettingsViewController class
+ object in order to receive the printSettingsDidChange notification. Since
+ each PrintSettingsViewController implements the PrintSettingsSetter protocol, each
+ of the model-specific ViewControllers will have this property.
+
+ 2. Implement the printSettingsDidChange function.
+
+ 3. Implement the searchingForPrinterDidChange function.
+ This is a CRITICAL new callback method for apps that display PrintSettingsVC in a POPOVER control for iPad.
+ If user is searching for printers via the IPAddressViewController,
+
+ SDK Users:
+ ---------
+ You should implement this protocol if you choose to display any of the
+ model-specific PrintSettingsViewControllers built-in to the SDK, but only if you
+ care to be notified when any of the settings are changed by the controller,
+ -OR- (NEW) if you allow the Search feature to be available and you show the PrintSettingsVC
+ in a POPOVER control, to prevent the popover from being dismissed when search is active.
+
+ For example, you can allow the view controller to change the print settings,
+ and you can pass the new settings to the BMSPrinterDriver when you need to
+ use them. In this case, you do not need to implement this protocol.
+
+ However, you may want to "savePreferences" when any of the settings change,
+ as the SDK will not do this automatically. In this case, you do need to
+ implement this protocol to call the savePreferences API in your implementation
+ of the printSettingsDidChange API.
+ */
+//*********************************************************************
+@protocol PrintSettingsResponder
+- (void)printSettingsDidChange;
+- (void)searchingForPrinterDidChange:(BOOL)isSearching;
+@end
+
+
+//*********************************************************************
+// PrintSettingsSetter PROTOCOL
+/*
+ A ViewController that modifies print settings is a PrintSettingsSetter.
+ It will call the printSettingsDidChange function that will be implemented by the
+ object class specified in the printSettingsDelegate property, which is a
+ PrintSettingsResponder.
+ NOTE: It is OK to set this to "nil" if your class does not want to
+ be notified when the settings change.
+
+ This protocol is for SDK Designers only.
+ SDK Users do NOT need to implement this protocol.
+ */
+//*********************************************************************
+@protocol PrintSettingsSetter
+@property (assign, nonatomic) id