MOBILE DEVICE SECURITY SYSTEMS AND METHODS
20180012001 · 2018-01-11
Inventors
Cpc classification
International classification
Abstract
A system and method for securing a mobile device may include providing software for installation on the mobile device where the software is configured for disabling at least some functionality of the device, storing a mobile device identifier identifying the mobile device, and determining an unlock code for unlocking the mobile device, receiving a notification of sale of the mobile device, and providing the unlock code. Systems and methods for receiving and verifying the unlock code are also described.
Claims
1. A method for securing a mobile device, comprising: providing software for installation on the mobile device, the software being configured for disabling at least some functionality of the device; storing a mobile device identifier identifying the mobile device; determining an unlock code for unlocking the mobile device; receiving a notification of sale of the mobile device; and providing the unlock code.
2. The method of claim 1, wherein determining the unlock code incorporates an identifier for the mobile device.
3. The method of claim 2, wherein the identifier is an IMEI number.
4. The method of claim 1, wherein providing the unlock code comprises providing the unlock code to a user of the mobile device.
5. The method of claim 4, wherein providing the unlock code comprises sending a text message.
6. The method of claim 1, wherein receiving a notification of sale of the mobile device comprises receiving notification from a POS.
7. The method of claim 6, further comprising storing information from the notification in a database.
8. A method for executing preloaded software by a processor at the time of startup of a mobile device, the method comprising: disabling an input function disabling a storage function; disabling a communication function; preventing modification to the preloaded software; selectively enabling internal software services; read unique device identification information; store an unlock code through a secure algorithm; prevent normal startup of the operating system on the mobile device; and prepare the device for user interaction.
9. The method of claim 8, wherein disabling an input function comprises disabling a USB port during start up.
10. The method of claim 8, wherein disabling a storage function comprises disabling sim card during start up.
11. The method of claim 10, wherein disabling a storage function comprises disabling an internal and/or external storage device during start up.
12. A system for implementing secure merchandising of mobile products, the method comprising: a database storing a plurality of mobile product identifiers for respective mobile products; a database of verification information relating to the mobile products and status to: report status of sale of mobile device; report status of shipping confirmation; report status of disposition; report status of display; a processor configured for unlocking the mobile products by: determining an unlock code for unlocking the mobile device; providing the unlock code; receiving the unlock code; and verifying the unlock code.
13. The method of claim 12, wherein determining the unlock code incorporates an identifier for the mobile device.
14. The method of claim 13, wherein the identifier is an IMEI number.
15. The method of claim 12, wherein providing the unlock code comprises providing the unlock code to a user of the mobile device.
16. The method of claim 15, wherein providing the unlock code comprises sending a text message.
17. A secure mobile device, comprising: a mobile device readable storage medium configured for storing information; a processor configured for accessing the mobile device readable storage medium and performing processes based on the information; a bootloader stored on the mobile device readable storage medium, operable by the processor, and configured to control startup operations; an operating system stored on the mobile device readable storage medium and operable by the processor; a lockdown module stored on the mobile device readable storage medium, operable by the processor, and configured to restrict operation of the mobile device unless the device is verified as available for use, the lockdown module configured to: run at the time of startup of the mobile device and in conjunction with the operating system; operate in conjunction with a bootloader module of the mobile device; disable input functions to limit modification of the mobile device readable storage medium during startup; facilitate unlocking of the mobile device upon successful authentication; and provide user instructions and notifications.
18. The device of claim 17, wherein the lockdown module operates apart from the operating system.
19. The system of claim 18, wherein the lockdown module limits the functionality of the operating system.
20. The system of claim 17, wherein unlocking of the mobile device comprises receiving and verifying an unlock code.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0005] In the accompanying drawings, reference characters refer to the same parts throughout the different figures. The drawings are not necessarily to scale, emphasis has instead been placed upon illustrating the principles of embodiments of the present disclosure. With respect to the drawings:
[0006]
[0007]
[0008]
[0009]
[0010]
[0011]
DETAILED DESCRIPTION
[0012] The present disclosure relates to systems and methods for mobile device security. Particularly, the systems and methods of the present disclosure relate to securing or locking a mobile device prior to sale, such that at least some of the functionality of the mobile device may be unusable until the device is unlocked. In some embodiments, the mobile device may be locked during the boot process or software initialization process of the device, such that other programs, applications, operating systems, and other functionality may remain disabled or non-functional until the device is successfully unlocked. Further, in some embodiments, one or more secure codes may be entered on the device or at a different user interface in order to unlock the phone. In some embodiments, one or more secure codes may be generated based on, or may relate to, an indication that the mobile device has been legitimately purchased.
[0013] Generally, various systems and methods may be employed by retailers and manufacturers in deterring product theft or fraud. In some embodiments, an activation procedure may be used to unlock or activate a product during or after purchase. In this way, when the product is locked, or not activated, the product may be unusable. An unusable product may deter or reduce theft or fraud. For example, pre-loaded gift cards or other gift cards sold by retailers may be unusable for making purchases until activated. In some embodiments, a database storing identifiers for a plurality of gift cards may be maintained locally or remotely from a point-of-sale (POS) of a retailer. The identifier for a gift card may be, for example, the barcode or other number located on and/or associated with the gift card. The database may store identifiers for unactivated gift cards, activated gift cards, or both. The database may be in communication with the retailer POS over a wired or wireless network, such that when a gift card is scanned or otherwise registers as being sold at the POS, the POS may ping or notify the database of the sale. Once the database is updated, or a record of the sold gift card is otherwise made, the gift card may be activated. When a purchaser attempts to use a gift card to make purchases, the gift card may only function to complete the purchase if it has been activated. If the gift card is not activated, the gift card may be unusable for making purchases.
[0014] Referring now to
[0015] The mobile device 110 may be a mobile computing device such as a mobile phone, smartphone, PDA, tablet, smart watch, fitness tracking device, or other mobile device. The mobile device 110 may generally be a device configured to connect to a mobile network. The mobile device 110 may be associated with one or more identifiers, such as but not limited to a stock keeping unit (SKU) number, universal product code (UPC) number, international mobile equipment identity (IMEI) number, and/or retailer identifier. The one or more identifiers may be provided by a manufacturer, retailer, or other entity. In some embodiments, the system 100 may include a plurality of mobile devices 110, each having one or more identifiers. The mobile device 110 may have software, such as an operating system, applications, and other software. In some embodiments, the mobile device 110 may have initialization software such as bootloader or similar startup software. In conjunction with the bootloader software, the mobile device 110 may have lockdown software. The lockdown software may operate to disable at least some functionality of the mobile device until an unlocking procedure is performed.
[0016] With continued reference to
[0017] The system 100 may have a retailer POS 130. The POS 130 may include a computing device. The POS 130 may be configured for scanning or inputting a mobile device identifier, such as a SKU number, UPC number, IMEI number, and/or retailer identifier. The identifier may be scanned or input as part of the sale when a mobile device is purchased, in some embodiments. In some embodiments, the POS 130 may be configured to send sales and/or customer information to the database 140 and/or processor 150.
[0018] The system 100 may include a database 140 in some embodiments. The database 140 may store, as computer readable storage media, one or more identifiers related to the mobile device 110. For example, the database 140 may store a SKU number, UPC number, IMEI number, and/or retailer identifier. In some embodiments, where the system 100 includes a plurality of mobile devices 110, the database 140 may store one or more identifiers for each mobile device of the system. The device identifiers stored in the database may be provided by a manufacturer. In some embodiments, the database 140 or one or more additional databases may store sales information and/or customer information. Particularly, in some embodiments, the database 140 may store information related to the sale of a mobile device. For example, when a mobile device is sold, the database 140 may associate the sale date, time, location, or other information with the one or more identifiers associated with the mobile device. The database 140 may store customer contact information for the purchaser of the mobile device in some embodiments.
[0019] With continued reference to
[0020] One or more systems of the present disclosure may perform, or facilitate the performance of, one or more methods. For example, one or more systems of the present disclosure may perform, or facilitate the performance of, method 200 shown in
[0021] As shown in
[0022] The method 200 may include storing an identifier for the mobile device 220. As described above, an identifier for the mobile device may be a SKU number, UPC number, IMEI number, retailer identifier, or other identifier unique to the mobile device. The identifier may be stored in a database, for example, along with identifiers for a plurality of mobile devices. Storing the identifier may provide for a record of particular mobile devices that are available for sale at a point in time. In some embodiments, the identifier may be stored by a manufacturer, retailer, or other entity. For example, in some embodiments, where a manufacturer provides mobile devices to a retailer for sale, the manufacturer may additionally provide the retailer or another entity with a digital file of device identifiers identifying the devices to be sold.
[0023] The method 200 may additionally include determining an unlock code 230. The unlock code may be a code unique to the mobile device that allows the mobile device to be unlocked, activated, or enabled for use, such as after purchase for example. In some embodiments, the unlock code may be based on an identifier for the mobile device, such as an IMEI number for example. The unlock code may be calculated based on an algorithm. In some embodiments, for example, the unlock code may be a hexadecimal or other alphanumeric translation of the IMEI number. Other algorithms may be used to calculate the unlock code for the mobile device in other embodiments. In some embodiments, the unlock code may be separated into more than one portion such that a user may enter a first portion of the unlock code and a second portion of the unlock code at different stages of the unlock procedure, for example.
[0024] The method 200 may include receiving a notification that the device was purchased 240. In some embodiments, the notification may be sent by a retailer, for example at a POS. The notification may be sent upon scanning or inputting the mobile device identifier at the POS. The notification of sale may include particular information about the sale and/or purchaser in some embodiments. For example, the notification may include a date, time, and location of the sale. In some embodiments, the notification may additionally or alternatively include contact information of the purchaser of the mobile device. Such information may be stored with the mobile device identifier in the database, as described above. The notification may be sent automatically upon sale in some embodiments. In other embodiments, the notification may be sent by some user input. For example, a sales associate at the POS may manually send the notification in some embodiments.
[0025] The method 200 may include providing the unlock code 250. The unlock code may be provided to a purchaser, user, or retailer. The unlock code may be provided over the mobile device, a user interface, or the POS in some embodiments. For example, the unlock code may be displayed on a screen of the device, interface, or POS for a user, retailer, or purchaser to view. In other embodiments, the unlock code may be provided by other means. For example, the unlock code may be provided via phone call, text message, email, or other communication. In other embodiments, the unlock code may be provided over a website. The user, purchaser, or retailer may visit the website to retrieve the unlock code. In some embodiments, the user, retailer, or purchaser may be prompted to provide information about the sale and/or purchaser, user, or retailer prior to receiving the unlock code. In still further embodiments, the unlock code may be printed on the sales receipt provided to the purchaser after purchasing the mobile device. In other embodiments, the unlock code may be provided in information packaged with the mobile device.
[0026] The method 200 may further include receiving an unlock code 260. The unlock code may be received via the purchased mobile device, from the POS, from a different user interface, or from another source. The unlock code may be received from a purchaser, user, or retailer. Generally, it may be appreciated that the unlock code may be provided to a user, purchaser, or retailer by different means than it is received. For example, an unlock code may be provided (250) to a POS, but may be received (260) from a user interface or from the mobile device. In other embodiments, an unlock code may be provided to the mobile device, but may be received from the POS or a user interface.
[0027] It may be appreciated that in some embodiments, an unlock code may be provided (250) and received (260) in more than one portion. For example, in some embodiments, a first portion of the unlock code may be provided and received, and a second portion of the unlock code may be provided and received. In some embodiments, the first portion of the unlock code may be provided via the mobile device and received from a user interface or POS. In some embodiments, a second portion of the unlock code may be provided via a user interface or POS and received from the mobile device. In other embodiments, the first portion, second portion, or other portions of the unlock code may be provided by and/or received from different sources.
[0028] The method 200 may include verifying the unlock code 270. Verifying the unlock code may include verifying a first portion, second portion, or any other portion of the unlock code. Where a first portion and second portion of the unlock code are provided and received individually, as described above, each portion may be verified after it is received. For example the first portion may be verified before providing the second portion. The unlock code may be verified by comparison to an expected, predetermined, stored, or calculated unlock code for the particular mobile device in some embodiments. Other methods of verifying an unlock code may be used in other embodiments. As shown in
[0029] The mobile device may perform one or more methods. The method 300, as shown in
[0030] The method may include running bootloader or other initialization software 310. The bootloader or other initialization software may be a program that operates prior to an operating system or other programs or applications on the mobile device. The bootloader or other initialization software may initialize the lock procedure 320. The lock procedure may be performed by disabling or limiting at least some functionality of the mobile device. For example, USB, SD card, and SIM card functionality of the mobile device may be temporarily disabled in some embodiments. In some embodiments, the mobile phone may be temporarily restricted from sending or receiving calls or messages or accessing an Internet browser or other applications. In some embodiments, some capabilities of the mobile device may be maintained. For example, some Internet or broadband capabilities may be maintained such that the device can send and receive particular communications during the unlocking process.
[0031] The method 300 may include determining an identifier for the mobile device 330. As described above, an identifier may be a SKU number, UPC number, IMEI number, retailer identifier, or other identifier. The identifier may be determined by searching the device. In some embodiments, the mobile device may automatically search its internal data to determine an identifier. In other embodiments, the identifier may be determined by sending a request to a database containing mobile device identifiers. The device may automatically send a request for a mobile identifier in some embodiments.
[0032] The method 300 may include determining an unlock code 340. The unlock code may be determined by searching the device. In some embodiments, the mobile device may automatically search its internal data to determine an unlock code. In other embodiments, the mobile device may calculate an unlock code. For example, an algorithm may determine an unlock code based on the mobile device identifier. As described above, a hexadecimal or other system may be used to convert the device identifier to an unlock code in some embodiments. In other embodiments, the unlock code may be determined by sending a request to a database containing unlock codes. The device may automatically send a request for an unlock code in some embodiments.
[0033] In some embodiments, the method may include displaying a first portion of the unlock code 350. The first portion of the unlock code may be displayed on a screen of the mobile device, viewable by a user or purchaser, for example. In some embodiments, a different portion or all portions of the unlock code may be displayed on the mobile device. The first portion of the unlock code may be displayed such that a user or purchaser may use the first portion, such as by inputting it into a different interface. As described above, the user or purchaser may input the first portion at a POS or user interface.
[0034] The method 300 may include receiving a second portion of the unlock code 360. The second portion may be received from a user or purchaser inputting the second portion into the mobile device, via a keyboard for example. In other embodiments, the second portion may be received from another source. In some embodiments, a different portion or all portions of the unlock code may be received by the mobile device.
[0035] In some embodiments, the method 300 may include verifying the unlock code 370. Verifying the unlock code may include verifying the second portion received in step 360, in some embodiments. In other embodiments, verifying the unlock code may include verifying a different portion or all portions of the unlock code. Verifying the unlock code may include comparing the unlock code, or received portion of the unlock code, to an expected, stored, previously determined, or calculated unlock code. In other embodiments, verifying the unlock code may include sending the received unlock code, or portion of the unlock code, to a comparison module, verification module, or other component.
[0036] If the unlock code is verified in step 370, the method 300 may include unlocking the mobile device 380. Unlocking the mobile device may include enabling any functionality disabled or limited during the lock procedure initialized at step 320. However, if the unlock code is not verified in step 370, the method 300 may include displaying an error message 390. The error message may be displayed on a screen of the mobile device, so as to be viewable by a user or purchaser. Additionally or alternatively, where the unlock code is not verified at step 370, the method 300 may include additional steps such as providing an option to retry the verification, automatically retrying the verification, automatically or providing an option for reentering the unlock code, displaying a help or customer service number, automatically placing a call or sending a message to a help or customer service center, or displaying or providing other instructions or options.
[0037] Turning now to
[0038] After purchase of a mobile device, such as a cellular phone or smartphone, the device may be powered on 410. This may be performed by a purchaser or by a sales associate at the POS, for example. Upon powering on, a startup process may be initiated on the device 420. The startup process may include initialization of a command line and loading of device drivers in some embodiments. Additionally, lockdown or lock software may initialize 430. Initialization of the lock software may cause USB drive, SIMM card, and other elements to become disabled or otherwise unusable. Initialization of the lock software may additionally override operating system software on the device. As described above, various capabilities and programs of the device may be disabled, while others, such as access to place emergency phone calls, particular Internet or broadband access, or other elements, may be permitted.
[0039] The method 400 may further include scanning an identifier 440, such as SKU number, UPC number, IMEI number, retailer identifier, or other identifier unique to the mobile device. The identifier may be scanned at a POS by a sales associate, for example. In other embodiments, the identifier may be entered at the POS or at a different device or provided or acquired by other means. In other embodiments, the identifier may be determined by sending a request to a database containing mobile device identifiers.
[0040] The method 400 may further include calculating a first unlock key 450. The first unlock key may, in some embodiments, relate to the device identifier. As described above, for example, the first unlock key may be or include a hexadecimal or other conversion of the device identifier. In other embodiments, the first unlock key may be determined by other means.
[0041] The method 400 may include loading a user interface on the mobile device 460. The user interface may be a component of the lock software in some embodiments. That is, for example, while particular capabilities of the device may be unusable and while the operating system may be overridden, a lock software interface may allow a user to interact with the device in order to complete the unlock process. Using the user interface, a user, such as a purchaser or sales associated for example, may initiate or complete an activation path 470 to unlock or otherwise enable the mobile device. Upon completion of the activation path, the device may be unlocked 480.
[0042]
[0043]
[0044] While some embodiments of the present disclosure have been described with respect to mobile devices purchased at physical retailer locations, it may be appreciated that embodiments of the present disclosure may be similarly applicable for mobile devices purchased on the Internet, through an application, or by other means. That is, embodiments of the present disclosure may apply with respect to online shopping cart procedures or other online purchase procedures, for example.
[0045] For purposes of this disclosure, any system described herein may include any instrumentality or aggregate of instrumentalities operable to compute, calculate, determine, classify, process, transmit, receive, retrieve, originate, switch, store, display, communicate, manifest, detect, record, reproduce, handle, or utilize any form of information, intelligence, or data for business, scientific, control, or other purposes. For example, a system or any portion thereof may be a personal computer (e.g., desktop or laptop), tablet computer, mobile device (e.g., personal digital assistant (PDA) or smart phone), server (e.g., blade server or rack server), a network storage device, or any other suitable device or combination of devices and may vary in size, shape, performance, functionality, and price. A system may include random access memory (RAM), one or more processing resources such as a central processing unit (CPU) or hardware or software control logic, ROM, and/or other types of nonvolatile memory. Additional components of a system may include one or more disk drives or one or more mass storage devices, one or more network ports for communicating with external devices as well as various input and output (I/O) devices, such as a keyboard, a mouse, touchscreen and/or a video display. Mass storage devices may include, but are not limited to, a hard disk drive, floppy disk drive, CD-ROM drive, smart drive, flash drive, or other types of non-volatile data storage, a plurality of storage devices, or any combination of storage devices. A system may include what is referred to as a user interface, which may generally include a display, mouse or other cursor control device, keyboard, button, touchpad, touch screen, microphone, camera, video recorder, speaker, LED, light, joystick, switch, buzzer, bell, and/or other user input/output device for communicating with one or more users or for entering information into the system. Output devices may include any type of device for presenting information to a user, including but not limited to, a computer monitor, flat-screen display, or other visual display, a printer, and/or speakers or any other device for providing information in audio form, such as a telephone, a plurality of output devices, or any combination of output devices. A system may also include one or more buses operable to transmit communications between the various hardware components.
[0046] One or more programs or applications, such as a web browser, and/or other applications may be stored in one or more of the system data storage devices. Programs or applications may be loaded in part or in whole into a main memory or processor during execution by the processor. One or more processors may execute applications or programs to run systems or methods of the present disclosure, or portions thereof, stored as executable programs or program code in the memory, or received from the Internet or other network. Any commercial or freeware web browser or other application capable of retrieving content from a network and displaying pages or screens may be used. In some embodiments, a customized application may be used to access, display, and update information.
[0047] Hardware and software components of the present disclosure, as discussed herein, may be integral portions of a single computer or server or may be connected parts of a computer network. The hardware and software components may be located within a single location or, in other embodiments, portions of the hardware and software components may be divided among a plurality of locations and connected directly or through a global computer information network, such as the Internet.
[0048] As will be appreciated by one of skill in the art, the various embodiments of the present disclosure may be embodied as a method (including, for example, a computer-implemented process, a business process, and/or any other process), apparatus (including, for example, a system, machine, device, computer program product, and/or the like), or a combination of the foregoing. Accordingly, embodiments of the present disclosure may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, middleware, microcode, hardware description languages, etc.), or an embodiment combining software and hardware aspects. Furthermore, embodiments of the present disclosure may take the form of a computer program product on a computer-readable medium or computer-readable storage medium, having computer-executable program code embodied in the medium, that define processes or methods described herein. A processor or processors may perform the necessary tasks defined by the computer-executable program code. Computer-executable program code for carrying out operations of embodiments of the present disclosure may be written in an object oriented, scripted or unscripted programming language such as Java, Perl, PHP, Visual Basic, Smalltalk, C++, or the like. However, the computer program code for carrying out operations of embodiments of the present disclosure may also be written in conventional procedural programming languages, such as the C programming language or similar programming languages. A code segment may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, an object, a software package, a class, or any combination of instructions, data structures, or program statements. A code segment may be coupled to another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc.
[0049] In the context of this document, a computer readable medium may be any medium that can contain, store, communicate, or transport the program for use by or in connection with the systems disclosed herein. The computer-executable program code may be transmitted using any appropriate medium, including but not limited to the Internet, optical fiber cable, radio frequency (RF) signals or other wireless signals, or other mediums. The computer readable medium may be, for example but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device. More specific examples of suitable computer readable medium include, but are not limited to, an electrical connection having one or more wires or a tangible storage medium such as a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a compact disc read-only memory (CD-ROM), or other optical or magnetic storage device. Computer-readable media includes, but is not to be confused with, computer-readable storage medium, which is intended to cover all physical, non-transitory, or similar embodiments of computer-readable media.
[0050] Various embodiments of the present disclosure may be described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products. It is understood that each block of the flowchart illustrations and/or block diagrams, and/or combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer-executable program code portions. These computer-executable program code portions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a particular machine, such that the code portions, which execute via the processor of the computer or other programmable data processing apparatus, create mechanisms for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. Alternatively, computer program implemented steps or acts may be combined with operator or human implemented steps or acts in order to carry out an embodiment of the invention.
[0051] Additionally, although a flowchart may illustrate a method as a sequential process, many of the operations in the flowcharts illustrated herein can be performed in parallel or concurrently. In addition, the order of the method steps illustrated in a flowchart may be rearranged for some embodiments. Similarly, a method illustrated in a flow chart could have additional steps not included therein or fewer steps than those shown. A method step may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc.
[0052] As used herein, the terms “substantially” or “generally” refer to the complete or nearly complete extent or degree of an action, characteristic, property, state, structure, item, or result. For example, an object that is “substantially” or “generally” enclosed would mean that the object is either completely enclosed or nearly completely enclosed. The exact allowable degree of deviation from absolute completeness may in some cases depend on the specific context. However, generally speaking, the nearness of completion will be so as to have generally the same overall result as if absolute and total completion were obtained. The use of “substantially” or “generally” is equally applicable when used in a negative connotation to refer to the complete or near complete lack of an action, characteristic, property, state, structure, item, or result. For example, an element, combination, embodiment, or composition that is “substantially free of” or “generally free of” an ingredient or element may still actually contain such item as long as there is generally no measurable effect thereof.
[0053] In the foregoing description various embodiments of the present disclosure have been presented for the purpose of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise form disclosed. Obvious modifications or variations are possible in light of the above teachings. The various embodiments were chosen and described to provide the best illustration of the principals of the disclosure and their practical application, and to enable one of ordinary skill in the art to utilize the various embodiments with various modifications as are suited to the particular use contemplated. All such modifications and variations are within the scope of the present disclosure as determined by the appended claims when interpreted in accordance with the breadth they are fairly, legally, and equitably entitled.