ソースを参照

【2025】【Protect】加密初步处理

niehaoyu 2 ヶ月 前
コミット
8eb56ab181

+ 2 - 24
PDF Office/PDF Master/Class/PDFTools/AddPassword/New/KMSecurityWindowController.swift

@@ -16,28 +16,11 @@ class KMSecurityWindowController: KMBaseWindowController {
     var doneAction: KMSecurityWindowControllerDoneAction?
     
     
-    var documentURL: URL? //{
-//        didSet{
-//            if self.password.count != 0 {
-//                self.securityView.documentURL = self.documentURL
-//            } else {
-//                KMBaseWindowController.checkPassword(url: documentURL, type: .owner) { [unowned self] success, paasswordString in
-//                    if success {
-//                        self.securityView.documentURL = self.documentURL
-//                    } else {
-//                        guard let callBack = self.itemClick else { return }
-//                        
-//                        callBack()
-//                    }
-//                }
-//            }
-//        }
-//    }
+    var documentURL: URL?
     
     override func windowDidLoad() {
         super.windowDidLoad()
-
-        // Implement this method to handle any initialization after your window controller's window has been loaded from its nib file.
+        
         securityView.cancelAction = { [unowned self] view in
             self.cancelAction?(self)
         }
@@ -64,7 +47,6 @@ extension KMSecurityWindowController {
             guard let filePath = files.first?.filePath else { return }
         }
         
-//        let myDocument = CPDFDocument(url: NSURL(fileURLWithPath: filePath) as URL)
         if (pdfDocument != nil || documentURL != nil) {
             var options: [CPDFDocumentWriteOption : Any] = [:]
             var attribute: [CPDFDocumentAttribute : Any] = [:]
@@ -157,8 +139,6 @@ extension KMSecurityWindowController {
                         options.updateValue(false, forKey: .allowsCopyingOption)
                     }
                 }
-                
-                /// 加密层级 sdk 缺接口
             }
             
             attribute.updateValue(model.title, forKey: .titleAttribute)
@@ -166,8 +146,6 @@ extension KMSecurityWindowController {
             attribute.updateValue(model.subject, forKey: .subjectAttribute)
             attribute.updateValue(model.keywords, forKey: .keywordsAttribute)
             
-            //            let result = myDocument.write(to: documentURL, withOptions: options)
-            //            myDocument.setPasswordOptions(options)
             guard let callback = doneAction else {
                 return
             }

+ 55 - 35
PDF Office/PDF Master/Class/PDFTools/AddPassword/New/View/KMSecurityView.swift

@@ -6,15 +6,21 @@
 //
 
 import Cocoa
+import KMComponentLibrary
 
 typealias KMSecurityViewBatchAction = (_ view: KMSecurityView, _ files: [KMFileAttribute]) -> Void
 typealias KMSecurityViewCancelAction = (_ view: KMSecurityView) -> Void
 typealias KMSecurityViewDoneAction = (_ view: KMSecurityView, _ model: KMSecureEncryptModel, _ files: [KMFileAttribute]) -> Void
 
 class KMSecurityView: BaseXibView {
-    @IBOutlet weak var batchButton: NSButton!
-    @IBOutlet weak var cancelButton: NSButton!
-    @IBOutlet weak var doneButton: NSButton!
+    
+    @IBOutlet var batchButton: ComponentButton!
+    @IBOutlet var cancelButton: ComponentButton!
+    @IBOutlet var doneButton: ComponentButton!
+     
+    @IBOutlet var batchWidthConst: NSLayoutConstraint!
+    @IBOutlet var cancelWidthConst: NSLayoutConstraint!
+    @IBOutlet var doneWidthConst: NSLayoutConstraint!
     
     @IBOutlet weak var box1: NSBox!
     @IBOutlet weak var boxLabel1: NSTextField!
@@ -27,18 +33,7 @@ class KMSecurityView: BaseXibView {
     @IBOutlet weak var ownerPassword: NSSecureTextField!
     @IBOutlet weak var notPrintCheckBtn: NSButton!
     @IBOutlet weak var notCopyCheckBtn: NSButton!
-    
-    @IBOutlet weak var box2: NSBox!
-    @IBOutlet weak var boxLabel2: NSTextField!
-    @IBOutlet weak var titleTextField: NSTextField!
-    @IBOutlet weak var authorTextField: NSTextField!
-    @IBOutlet weak var subjectTextField: NSTextField!
-    @IBOutlet weak var keywordTextField: NSTextField!
-    
-    @IBOutlet weak var titleLabel: NSTextField!
-    @IBOutlet weak var authorLabel: NSTextField!
-    @IBOutlet weak var subjectLabel: NSTextField!
-    @IBOutlet weak var keywordLabel: NSTextField!
+ 
 
     var batchAction: KMSecurityViewBatchAction?
     var cancelAction: KMSecurityViewCancelAction?
@@ -63,27 +58,54 @@ class KMSecurityView: BaseXibView {
         ownerPassword.delegate = self
         
         self.updateOwnerButtonState()
+        
+        updateLanguage()
     }
     
     func updateLanguage() {
-        batchButton.title = NSLocalizedString("Batch", comment: "")
-//        cancelButton.title = NSLocalizedString("Remove All", comment: "")
-        doneButton.title = NSLocalizedString("Encrypt", comment: "")
-        cancelButton.title = NSLocalizedString("Close", comment: "")
+        box1.fillColor = NSColor.clear
+        
+        
+        
+        
+        boxLabel1.stringValue = KMLocalizedString("Password Security Settings")
+        boxLabel1.textColor = ComponentLibrary.shared.getComponentColorFromKey("colorText/1")
+        boxLabel1.font = ComponentLibrary.shared.getFontFromKey("mac/body-m-medium")
         
-        boxLabel1.stringValue = NSLocalizedString("Password Security Settings", comment: "")
-        boxLabel2.stringValue = NSLocalizedString("Document Description", comment: "")
         openPwdCheckBtn.title = NSLocalizedString("Require a password to open the document.", comment: "")
         ownerPwdCheckBtn.title = NSLocalizedString("Restrict printing and copying of the document.", comment: "")
         notPrintCheckBtn.title = NSLocalizedString("Restrict document printing", comment: "")
         notCopyCheckBtn.title = NSLocalizedString("Restrict content copying", comment: "")
         openPasswordPLabel.stringValue = NSLocalizedString("Open Password:", comment: "")
         ownerPasswordLabel.stringValue = NSLocalizedString("Owner Password:", comment: "")
-        titleLabel.stringValue = NSLocalizedString("Title:", comment: "")
-        authorLabel.stringValue = NSLocalizedString("Author:", comment: "")
-        subjectLabel.stringValue = NSLocalizedString("Subject:", comment: "")
-        keywordLabel.stringValue = NSLocalizedString("Keywords:", comment: "")
-    }
+        
+        
+        batchButton.properties = ComponentButtonProperty(type: .default_tertiary,
+                                                         size: .s,
+                                                         state: .normal,
+                                                         onlyIcon: false,
+                                                         buttonText: KMLocalizedString("Batch"))
+        batchButton.setTarget(self, action: #selector(batchButtonAction(_:)))
+        batchWidthConst.constant = batchButton.properties.propertyInfo.viewWidth
+        
+        cancelButton.properties = ComponentButtonProperty(type: .default_tertiary,
+                                                         size: .s,
+                                                         state: .normal,
+                                                         onlyIcon: false,
+                                                         buttonText: KMLocalizedString("Cancel"))
+        cancelButton.setTarget(self, action: #selector(cancelButtonAction(_:)))
+        cancelWidthConst.constant = cancelButton.properties.propertyInfo.viewWidth
+        
+        doneButton.properties = ComponentButtonProperty(type: .primary,
+                                                         size: .s,
+                                                         state: .normal,
+                                                         onlyIcon: false,
+                                                         buttonText: KMLocalizedString("Encrypt"))
+        doneButton.setTarget(self, action: #selector(doneButtonAction(_:)))
+        doneWidthConst.constant = doneButton.properties.propertyInfo.viewWidth
+        
+        
+     }
     
     func reloadData() {
         
@@ -125,19 +147,17 @@ extension KMSecurityView {
         
         self.canEncrypt = enabled
         if enabled {
-            self.doneButton.isEnabled = true
+            doneButton.properties.isDisabled = false
         } else {
-            self.doneButton.isEnabled = false
+            doneButton.properties.isDisabled = true
         }
+        doneButton.reloadData()
     }
     
     func updatePasswordState() {
         self.model.openPassword = openPassword.stringValue
         self.model.ownerPassword = ownerPassword.stringValue
-        self.model.title = titleTextField.stringValue
-        self.model.author = authorTextField.stringValue
-        self.model.subject = subjectTextField.stringValue
-        self.model.keywords = keywordTextField.stringValue
+        
         self.reloadData()
     }
     
@@ -158,7 +178,7 @@ extension KMSecurityView {
 }
 
 extension KMSecurityView {
-    @IBAction func batchButtonAction(_ sender: Any) {
+    @objc func batchButtonAction(_ sender: Any) {
         if !IAPProductsManager.default().isAvailableAllFunction(){
             KMPurchaseCompareWindowController.sharedInstance().showWindow(nil)
             return
@@ -168,13 +188,13 @@ extension KMSecurityView {
         callBack(self, files)
     }
     
-    @IBAction func cancelButtonAction(_ sender: Any) {
+    @objc func cancelButtonAction(_ sender: Any) {
         guard let callBack = cancelAction else { return }
         
         callBack(self)
     }
     
-    @IBAction func doneButtonAction(_ sender: Any) {
+    @objc func doneButtonAction(_ sender: Any) {
         self.updatePasswordState()
         
         if model.ownerPassword == model.openPassword {

+ 42 - 188
PDF Office/PDF Master/Class/PDFTools/AddPassword/New/View/KMSecurityView.xib

@@ -8,17 +8,14 @@
     <objects>
         <customObject id="-2" userLabel="File's Owner" customClass="KMSecurityView" customModule="PDF_Reader_Pro" customModuleProvider="target">
             <connections>
-                <outlet property="authorLabel" destination="feB-OM-BTK" id="z0F-u2-2gZ"/>
-                <outlet property="authorTextField" destination="FbH-uh-vhX" id="TSb-Px-cuK"/>
-                <outlet property="batchButton" destination="uXk-aN-bU2" id="wuM-he-LvR"/>
+                <outlet property="batchButton" destination="isu-0h-g7x" id="1BT-O2-6SM"/>
+                <outlet property="batchWidthConst" destination="7ep-Ty-dPW" id="hvT-0d-fZx"/>
                 <outlet property="box1" destination="ST2-wX-xoy" id="U5Y-7a-KRx"/>
-                <outlet property="box2" destination="AuG-7F-1zd" id="jPC-lV-K5l"/>
                 <outlet property="boxLabel1" destination="aXy-qa-30P" id="bCh-vV-qX9"/>
-                <outlet property="boxLabel2" destination="bDa-JE-YYY" id="tF7-OJ-t8p"/>
-                <outlet property="cancelButton" destination="J4j-YE-zds" id="SI8-j0-Zvg"/>
-                <outlet property="doneButton" destination="zu9-tu-Eu4" id="4N6-12-ny5"/>
-                <outlet property="keywordLabel" destination="Pye-Uj-4I0" id="4zl-eR-4Qq"/>
-                <outlet property="keywordTextField" destination="SX3-7U-7ea" id="qXG-PG-cEL"/>
+                <outlet property="cancelButton" destination="a6k-zh-Xgk" id="ADP-7Q-rjv"/>
+                <outlet property="cancelWidthConst" destination="xKm-qz-lkn" id="WpQ-bX-gLt"/>
+                <outlet property="doneButton" destination="nBe-xF-dqG" id="Agv-Be-fCG"/>
+                <outlet property="doneWidthConst" destination="Vbh-dU-jah" id="iva-pB-Vnz"/>
                 <outlet property="notCopyCheckBtn" destination="Q12-nq-8Ww" id="gpQ-Ln-6cH"/>
                 <outlet property="notPrintCheckBtn" destination="Df0-VK-282" id="KkW-CT-YkD"/>
                 <outlet property="openPassword" destination="6g4-S8-Wrw" id="yCD-AY-913"/>
@@ -27,23 +24,27 @@
                 <outlet property="ownerPassword" destination="KlB-P6-WnC" id="bVf-dr-b7Z"/>
                 <outlet property="ownerPasswordLabel" destination="HTv-gT-hdG" id="zhb-Nz-5py"/>
                 <outlet property="ownerPwdCheckBtn" destination="MN5-MX-XNZ" id="fJo-jR-iVq"/>
-                <outlet property="subjectLabel" destination="621-mt-orF" id="3M7-JD-z4o"/>
-                <outlet property="subjectTextField" destination="wJ2-bm-ZhO" id="Ebc-P3-2hQ"/>
-                <outlet property="titleLabel" destination="G69-bY-klh" id="pad-lb-MQU"/>
-                <outlet property="titleTextField" destination="1qu-Ea-pYg" id="xHO-9b-n9k"/>
             </connections>
         </customObject>
         <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
         <customObject id="-3" userLabel="Application" customClass="NSObject"/>
         <customView id="c22-O7-iKe">
-            <rect key="frame" x="0.0" y="0.0" width="572" height="544"/>
+            <rect key="frame" x="0.0" y="0.0" width="572" height="431"/>
             <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
             <subviews>
                 <view translatesAutoresizingMaskIntoConstraints="NO" id="NUM-Vn-wUf">
-                    <rect key="frame" x="0.0" y="0.0" width="572" height="544"/>
+                    <rect key="frame" x="0.0" y="0.0" width="572" height="431"/>
                     <subviews>
+                        <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="aXy-qa-30P">
+                            <rect key="frame" x="22" y="399" width="170" height="16"/>
+                            <textFieldCell key="cell" lineBreakMode="clipping" title="Password Security Settings" id="416-1G-mAh">
+                                <font key="font" metaFont="system"/>
+                                <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+                                <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+                            </textFieldCell>
+                        </textField>
                         <box autoresizesSubviews="NO" title="Password Security Settings" titlePosition="noTitle" translatesAutoresizingMaskIntoConstraints="NO" id="ST2-wX-xoy">
-                            <rect key="frame" x="37" y="274" width="498" height="236"/>
+                            <rect key="frame" x="37" y="145" width="498" height="236"/>
                             <view key="contentView" id="6hv-cP-65h">
                                 <rect key="frame" x="4" y="5" width="490" height="228"/>
                                 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
@@ -155,187 +156,40 @@
                                 <constraint firstAttribute="height" constant="230" id="TNB-oZ-hWb"/>
                             </constraints>
                         </box>
-                        <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="uXk-aN-bU2">
-                            <rect key="frame" x="8" y="13" width="69" height="32"/>
-                            <buttonCell key="cell" type="push" title="Batch" bezelStyle="rounded" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="BeV-Ko-4dE">
-                                <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
-                                <font key="font" metaFont="system"/>
-                            </buttonCell>
-                            <connections>
-                                <action selector="batchButtonAction:" target="-2" id="hMt-rI-UNp"/>
-                            </connections>
-                        </button>
-                        <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="J4j-YE-zds">
-                            <rect key="frame" x="409" y="13" width="76" height="32"/>
-                            <buttonCell key="cell" type="push" title="Cancel" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="Yqp-kX-5kF">
-                                <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
-                                <font key="font" metaFont="system"/>
-                                <string key="keyEquivalent" base64-UTF8="YES">
-Gw
-</string>
-                            </buttonCell>
-                            <connections>
-                                <action selector="cancelButtonAction:" target="-2" id="VDL-pe-5oZ"/>
-                            </connections>
-                        </button>
-                        <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="zu9-tu-Eu4">
-                            <rect key="frame" x="478" y="13" width="81" height="32"/>
-                            <buttonCell key="cell" type="push" title="Encrypt" bezelStyle="rounded" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="t4I-3Z-AJg">
-                                <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
-                                <font key="font" metaFont="system"/>
-                                <string key="keyEquivalent" base64-UTF8="YES">
-DQ
-</string>
-                            </buttonCell>
-                            <connections>
-                                <action selector="doneButtonAction:" target="-2" id="Nwn-uO-qCZ"/>
-                            </connections>
-                        </button>
-                        <box autoresizesSubviews="NO" title="Document Description" titlePosition="noTitle" translatesAutoresizingMaskIntoConstraints="NO" id="AuG-7F-1zd">
-                            <rect key="frame" x="37" y="66" width="498" height="176"/>
-                            <view key="contentView" id="dsj-4C-14o">
-                                <rect key="frame" x="4" y="5" width="490" height="168"/>
-                                <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                                <subviews>
-                                    <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="G69-bY-klh">
-                                        <rect key="frame" x="14" y="135" width="67" height="16"/>
-                                        <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Title:" id="ChV-F8-rdz">
-                                            <font key="font" metaFont="system"/>
-                                            <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
-                                            <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
-                                        </textFieldCell>
-                                    </textField>
-                                    <textField focusRingType="none" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="1qu-Ea-pYg">
-                                        <rect key="frame" x="85" y="132" width="395" height="21"/>
-                                        <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="fDe-4Q-Pyw">
-                                            <font key="font" metaFont="system"/>
-                                            <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
-                                            <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
-                                        </textFieldCell>
-                                    </textField>
-                                    <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="feB-OM-BTK">
-                                        <rect key="frame" x="14" y="99" width="67" height="16"/>
-                                        <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Author:" id="Le5-rl-XYu">
-                                            <font key="font" metaFont="system"/>
-                                            <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
-                                            <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
-                                        </textFieldCell>
-                                    </textField>
-                                    <textField focusRingType="none" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="FbH-uh-vhX">
-                                        <rect key="frame" x="85" y="96" width="395" height="21"/>
-                                        <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="dHR-ed-Cv8">
-                                            <font key="font" metaFont="system"/>
-                                            <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
-                                            <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
-                                        </textFieldCell>
-                                    </textField>
-                                    <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Pye-Uj-4I0">
-                                        <rect key="frame" x="14" y="27" width="67" height="16"/>
-                                        <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Keywords:" id="Wfk-WB-BEW">
-                                            <font key="font" metaFont="system"/>
-                                            <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
-                                            <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
-                                        </textFieldCell>
-                                    </textField>
-                                    <textField focusRingType="none" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="wJ2-bm-ZhO">
-                                        <rect key="frame" x="85" y="60" width="395" height="21"/>
-                                        <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="nPj-Eh-Hsz">
-                                            <font key="font" metaFont="system"/>
-                                            <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
-                                            <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
-                                        </textFieldCell>
-                                    </textField>
-                                    <textField focusRingType="none" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="SX3-7U-7ea">
-                                        <rect key="frame" x="85" y="24" width="395" height="21"/>
-                                        <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="HXf-ig-qVm">
-                                            <font key="font" metaFont="system"/>
-                                            <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
-                                            <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
-                                        </textFieldCell>
-                                    </textField>
-                                    <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="621-mt-orF">
-                                        <rect key="frame" x="14" y="63" width="67" height="16"/>
-                                        <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Subject:" id="oZ4-Yu-aS5">
-                                            <font key="font" metaFont="system"/>
-                                            <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
-                                            <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
-                                        </textFieldCell>
-                                    </textField>
-                                </subviews>
-                                <constraints>
-                                    <constraint firstItem="621-mt-orF" firstAttribute="leading" secondItem="G69-bY-klh" secondAttribute="leading" id="04r-8r-hob"/>
-                                    <constraint firstItem="wJ2-bm-ZhO" firstAttribute="centerY" secondItem="621-mt-orF" secondAttribute="centerY" id="0Va-dK-TO0"/>
-                                    <constraint firstItem="FbH-uh-vhX" firstAttribute="top" secondItem="1qu-Ea-pYg" secondAttribute="bottom" constant="15" id="103-NO-J4b"/>
-                                    <constraint firstItem="FbH-uh-vhX" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="feB-OM-BTK" secondAttribute="trailing" constant="6" id="1mJ-yD-m1m"/>
-                                    <constraint firstItem="1qu-Ea-pYg" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="G69-bY-klh" secondAttribute="trailing" constant="6" id="3Z7-5b-Xix"/>
-                                    <constraint firstItem="SX3-7U-7ea" firstAttribute="centerY" secondItem="Pye-Uj-4I0" secondAttribute="centerY" id="5Tg-EE-hKi"/>
-                                    <constraint firstItem="wJ2-bm-ZhO" firstAttribute="trailing" secondItem="1qu-Ea-pYg" secondAttribute="trailing" id="Qdv-l4-X1Y"/>
-                                    <constraint firstItem="feB-OM-BTK" firstAttribute="leading" secondItem="G69-bY-klh" secondAttribute="leading" id="RQS-Gb-g25"/>
-                                    <constraint firstItem="feB-OM-BTK" firstAttribute="trailing" secondItem="G69-bY-klh" secondAttribute="trailing" id="Tdj-Iu-7eL"/>
-                                    <constraint firstItem="wJ2-bm-ZhO" firstAttribute="top" secondItem="FbH-uh-vhX" secondAttribute="bottom" constant="15" id="VRD-gi-0hF"/>
-                                    <constraint firstItem="FbH-uh-vhX" firstAttribute="leading" secondItem="1qu-Ea-pYg" secondAttribute="leading" id="XCv-cf-iX1"/>
-                                    <constraint firstItem="621-mt-orF" firstAttribute="trailing" secondItem="G69-bY-klh" secondAttribute="trailing" id="Xuh-EX-GTw"/>
-                                    <constraint firstItem="SX3-7U-7ea" firstAttribute="trailing" secondItem="1qu-Ea-pYg" secondAttribute="trailing" id="YG3-Kl-2xS"/>
-                                    <constraint firstItem="G69-bY-klh" firstAttribute="leading" secondItem="dsj-4C-14o" secondAttribute="leading" constant="16" id="awE-xq-5Pf"/>
-                                    <constraint firstItem="1qu-Ea-pYg" firstAttribute="top" secondItem="dsj-4C-14o" secondAttribute="top" constant="15" id="bKB-BI-pTw"/>
-                                    <constraint firstItem="SX3-7U-7ea" firstAttribute="leading" secondItem="Pye-Uj-4I0" secondAttribute="trailing" constant="6" id="bct-6H-a67"/>
-                                    <constraint firstAttribute="trailing" secondItem="1qu-Ea-pYg" secondAttribute="trailing" constant="10" id="eI6-b6-kJW"/>
-                                    <constraint firstItem="wJ2-bm-ZhO" firstAttribute="leading" secondItem="1qu-Ea-pYg" secondAttribute="leading" id="gqP-vC-Tgh"/>
-                                    <constraint firstItem="SX3-7U-7ea" firstAttribute="leading" secondItem="1qu-Ea-pYg" secondAttribute="leading" id="icb-jY-jeH"/>
-                                    <constraint firstItem="wJ2-bm-ZhO" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="621-mt-orF" secondAttribute="trailing" constant="6" id="lUn-qh-zLz"/>
-                                    <constraint firstItem="1qu-Ea-pYg" firstAttribute="centerY" secondItem="G69-bY-klh" secondAttribute="centerY" id="qb2-DU-WBL"/>
-                                    <constraint firstItem="Pye-Uj-4I0" firstAttribute="trailing" secondItem="G69-bY-klh" secondAttribute="trailing" id="rba-3V-1pZ"/>
-                                    <constraint firstItem="SX3-7U-7ea" firstAttribute="top" secondItem="wJ2-bm-ZhO" secondAttribute="bottom" constant="15" id="rlP-tK-DkG"/>
-                                    <constraint firstItem="FbH-uh-vhX" firstAttribute="centerY" secondItem="feB-OM-BTK" secondAttribute="centerY" id="tfg-yx-HVK"/>
-                                    <constraint firstItem="Pye-Uj-4I0" firstAttribute="leading" secondItem="G69-bY-klh" secondAttribute="leading" id="vem-Yk-TMk"/>
-                                    <constraint firstItem="FbH-uh-vhX" firstAttribute="trailing" secondItem="1qu-Ea-pYg" secondAttribute="trailing" id="xqk-cW-TuF"/>
-                                </constraints>
-                            </view>
+                        <customView translatesAutoresizingMaskIntoConstraints="NO" id="isu-0h-g7x" customClass="ComponentButton" customModule="KMComponentLibrary">
+                            <rect key="frame" x="24" y="16" width="62" height="32"/>
                             <constraints>
-                                <constraint firstAttribute="height" constant="170" id="jfE-Tm-3ew"/>
-                                <constraint firstAttribute="width" constant="492" id="kta-Mj-cgQ"/>
+                                <constraint firstAttribute="width" constant="62" id="7ep-Ty-dPW"/>
+                                <constraint firstAttribute="height" constant="32" id="qDl-YG-vyf"/>
                             </constraints>
-                        </box>
-                        <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="aXy-qa-30P">
-                            <rect key="frame" x="54" y="508" width="170" height="18"/>
+                        </customView>
+                        <customView translatesAutoresizingMaskIntoConstraints="NO" id="a6k-zh-Xgk" customClass="ComponentButton" customModule="KMComponentLibrary">
+                            <rect key="frame" x="416" y="16" width="62" height="32"/>
                             <constraints>
-                                <constraint firstAttribute="height" constant="18" id="FeS-5P-ueR"/>
+                                <constraint firstAttribute="height" constant="32" id="twe-GB-Uah"/>
+                                <constraint firstAttribute="width" constant="62" id="xKm-qz-lkn"/>
                             </constraints>
-                            <textFieldCell key="cell" lineBreakMode="clipping" title="Password Security Settings" id="416-1G-mAh">
-                                <font key="font" metaFont="system"/>
-                                <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
-                                <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
-                            </textFieldCell>
-                        </textField>
-                        <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="bDa-JE-YYY">
-                            <rect key="frame" x="54" y="240" width="140" height="18"/>
+                        </customView>
+                        <customView translatesAutoresizingMaskIntoConstraints="NO" id="nBe-xF-dqG" customClass="ComponentButton" customModule="KMComponentLibrary">
+                            <rect key="frame" x="486" y="16" width="62" height="32"/>
                             <constraints>
-                                <constraint firstAttribute="height" constant="18" id="Exf-QJ-ne2"/>
+                                <constraint firstAttribute="height" constant="32" id="9bk-uW-7c8"/>
+                                <constraint firstAttribute="width" constant="62" id="Vbh-dU-jah"/>
                             </constraints>
-                            <textFieldCell key="cell" lineBreakMode="clipping" title="Document Description" id="t8a-nn-oig">
-                                <font key="font" metaFont="system"/>
-                                <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
-                                <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
-                            </textFieldCell>
-                        </textField>
+                        </customView>
                     </subviews>
                     <constraints>
-                        <constraint firstItem="aXy-qa-30P" firstAttribute="top" secondItem="NUM-Vn-wUf" secondAttribute="top" constant="18" id="2mI-FV-BXv"/>
-                        <constraint firstItem="AuG-7F-1zd" firstAttribute="top" secondItem="bDa-JE-YYY" secondAttribute="bottom" id="34V-O0-9bV"/>
-                        <constraint firstItem="ST2-wX-xoy" firstAttribute="top" secondItem="aXy-qa-30P" secondAttribute="bottom" id="8of-mz-w1C"/>
-                        <constraint firstItem="bDa-JE-YYY" firstAttribute="leading" secondItem="NUM-Vn-wUf" secondAttribute="leading" constant="56" id="Atk-Lb-F40"/>
-                        <constraint firstItem="aXy-qa-30P" firstAttribute="leading" secondItem="NUM-Vn-wUf" secondAttribute="leading" constant="56" id="BT3-O2-jf6"/>
-                        <constraint firstItem="zu9-tu-Eu4" firstAttribute="leading" secondItem="J4j-YE-zds" secondAttribute="trailing" constant="7" id="CPB-xB-qTX"/>
-                        <constraint firstItem="bDa-JE-YYY" firstAttribute="top" secondItem="ST2-wX-xoy" secondAttribute="bottom" constant="20" id="ETv-4a-FLN"/>
-                        <constraint firstAttribute="bottom" secondItem="uXk-aN-bU2" secondAttribute="bottom" constant="20" id="FAE-Ee-xvR"/>
+                        <constraint firstItem="aXy-qa-30P" firstAttribute="top" secondItem="NUM-Vn-wUf" secondAttribute="top" constant="16" id="2mI-FV-BXv"/>
+                        <constraint firstItem="aXy-qa-30P" firstAttribute="leading" secondItem="NUM-Vn-wUf" secondAttribute="leading" constant="24" id="BT3-O2-jf6"/>
+                        <constraint firstAttribute="bottom" secondItem="nBe-xF-dqG" secondAttribute="bottom" constant="16" id="LQT-Xt-pwv"/>
+                        <constraint firstAttribute="bottom" secondItem="a6k-zh-Xgk" secondAttribute="bottom" constant="16" id="Lsh-7K-lJx"/>
+                        <constraint firstItem="ST2-wX-xoy" firstAttribute="top" secondItem="NUM-Vn-wUf" secondAttribute="top" constant="52" id="MG7-9V-Wjp"/>
                         <constraint firstItem="ST2-wX-xoy" firstAttribute="centerX" secondItem="NUM-Vn-wUf" secondAttribute="centerX" id="U9e-z3-nfl"/>
-                        <constraint firstItem="zu9-tu-Eu4" firstAttribute="centerY" secondItem="uXk-aN-bU2" secondAttribute="centerY" id="XT7-oe-yLC"/>
                         <constraint firstAttribute="trailing" secondItem="ST2-wX-xoy" secondAttribute="trailing" constant="40" id="Xtj-EA-E5b"/>
-                        <constraint firstItem="zu9-tu-Eu4" firstAttribute="top" secondItem="AuG-7F-1zd" secondAttribute="bottom" constant="30" id="frF-lS-4u4"/>
-                        <constraint firstAttribute="trailing" secondItem="zu9-tu-Eu4" secondAttribute="trailing" constant="20" id="jwN-kH-sgb"/>
-                        <constraint firstItem="J4j-YE-zds" firstAttribute="centerY" secondItem="uXk-aN-bU2" secondAttribute="centerY" id="nLe-SK-5bJ"/>
-                        <constraint firstItem="AuG-7F-1zd" firstAttribute="leading" secondItem="ST2-wX-xoy" secondAttribute="leading" id="pr5-4L-E6z"/>
-                        <constraint firstItem="uXk-aN-bU2" firstAttribute="leading" secondItem="NUM-Vn-wUf" secondAttribute="leading" constant="15" id="ygR-VP-pdj"/>
+                        <constraint firstItem="isu-0h-g7x" firstAttribute="leading" secondItem="NUM-Vn-wUf" secondAttribute="leading" constant="24" id="fHS-zS-RO4"/>
+                        <constraint firstAttribute="trailing" secondItem="nBe-xF-dqG" secondAttribute="trailing" constant="24" id="phE-Sm-FYU"/>
+                        <constraint firstItem="nBe-xF-dqG" firstAttribute="leading" secondItem="a6k-zh-Xgk" secondAttribute="trailing" constant="8" id="xjA-7i-VFK"/>
+                        <constraint firstAttribute="bottom" secondItem="isu-0h-g7x" secondAttribute="bottom" constant="16" id="zX7-YW-zBg"/>
                     </constraints>
                 </view>
             </subviews>
@@ -345,7 +199,7 @@ DQ
                 <constraint firstAttribute="trailing" secondItem="NUM-Vn-wUf" secondAttribute="trailing" id="Awj-Tg-tsj"/>
                 <constraint firstItem="NUM-Vn-wUf" firstAttribute="leading" secondItem="c22-O7-iKe" secondAttribute="leading" id="L5a-dl-Cal"/>
             </constraints>
-            <point key="canvasLocation" x="159.5" y="220"/>
+            <point key="canvasLocation" x="155" y="163.5"/>
         </customView>
     </objects>
 </document>