One variation of a method for autonomously processing a garment within a kiosk includes: accessing a set of garment characteristics of the garment, the set of garment characteristics including a garment type and a fabric type; based on the set of garment characteristics, selecting a target processing temperature, a target processing humidity, and a set of steam-processing parameters including a steam nozzle path and a steam nozzle speed. This variation of the method also includes: heating air within the kiosk toward the target processing temperature; injecting steam into the kiosk to drive humidity within the chamber toward the target processing humidity; articulating a steam nozzle along the steam nozzle path at the steam nozzle speed to impinge a steam jet across an interior surface of the garment, tension local areas of the garment against the steam jet, and heat local areas of the garment above the transition temperature.
Legal claims defining the scope of protection, as filed with the USPTO.
. A method comprising:
. The method of:
. The method of:
. The method of:
. The method of:
. The method of, further comprising, during the processing cycle:
. The method of:
. The method of:
. The method of, further comprising:
. The method of, further comprising:
. The method of, further comprising:
. The method of, further comprising:
. The method of:
. The method of, further comprising, during the processing cycle:
. A method comprising:
. The method of:
. The method of:
. The method of:
. The method of, further comprising:
. A method comprising:
Complete technical specification and implementation details from the patent document.
This Application is a continuation of U.S. patent application Ser. No. 18/582,637, filed on 20 Feb. 2024, which claims the benefit of U.S. Provisional Application No. 63/446,765, filed on 17 Feb. 2023, each of which is incorporated in its entirety by this reference.
This Application is related to U.S. patent application Ser. No. 17/632,709, filed on 3 Feb. 2022 and U.S. patent application Ser. No. 17/258,531, filed on 7 Jan. 2021, both of which are incorporated in their entireties by this reference.
This invention relates generally to the field of dry cleaning and more specifically to a new and useful method for autonomously dry-cleaning a garment within a kiosk in the field of dry cleaning.
The following description of embodiments of the invention is not intended to limit the invention to these embodiments but rather to enable a person skilled in the art to make and use this invention. Variations, configurations, implementations, example implementations, and examples described herein are optional and are not exclusive to the variations, configurations, implementations, example implementations, and examples they describe. The invention described herein can include any and all permutations of these variations, configurations, implementations, example implementations, and examples.
As shown in, a method Sfor autonomously processing a garment within a kiosk includes: accessing a set of garment characteristics of the garment arranged within a chamber of the kiosk, the set of garment characteristics including a fabric type, a garment type, and a garment dimension in Block S; selecting a target processing humidity associated with the fabric type in Block S; selecting a target processing temperature exceeding a transition temperature associated with the fabric type in Block S; and, based on the set of garment characteristics, selecting a set of steam-processing parameters including a steam nozzle path and a steam nozzle speed in Block S.
The method Sfurther includes, during a first time period during a processing cycle: heating air within the chamber toward the target processing temperature in Block S; and injecting steam into the chamber to drive a humidity within the chamber toward the target processing humidity in Block S. The method Sfurther includes, during a second time period succeeding the first time period, articulating a steam nozzle along the steam nozzle path at the steam nozzle speed to impinge a steam jet across an interior surface of the garment, tension local areas of the garment against the steam jet, and heat local areas of the garment above the transition temperature in Block S. In addition, the method Sincludes, in response to the humidity within the chamber exceeding the target processing humidity, evacuating humidified air from the chamber in Block S.
In one variation, the method Sfor autonomously processing a garment within a kiosk includes: accessing a set of garment characteristics of the garment, the set of garment characteristics including a fabric type, a garment type, and a garment dimension in Block S; selecting a target processing humidity associated with the fabric type in Block S; and selecting a target processing temperature exceeding a transition temperature associated with the fabric type in Block S.
The method Sfurther includes: based on the target drying duration and the set of garment characteristics, selecting a target drying temperature in Block S; and, based on the fabric type, selecting a target setting temperature below the target drying temperature and the transition temperature in Block S.
The method Sfurther includes: during a first time period during a processing cycle, heating air within a chamber toward the target processing temperature in Block Sand injecting steam into the chamber to drive a humidity within the chamber toward the target processing humidity and heat local areas of the garment above the transition temperature associated with the fabric type of the garment in Block S; during a second time period succeeding the first time period, actuating a hot dryerto propel hot air toward the garment to drive a chamber temperature toward the target drying temperature in Block S; and, during a third time period succeeding the second time period, actuating the cold dryerto propel cold air toward the garment to drive the chamber temperature toward the target setting temperature in Block S.
In one variation, a method Sfor autonomously processing a garment within a kiosk includes: accessing a set of garment characteristics of the garment arranged within a chamber of the kiosk, the set of garment characteristics including a fabric type, a garment type, and a garment dimension in Block S; based on the fabric type, selecting a target processing humidity in Block Sand selecting a target processing temperature in Block S; and, based on the set of garment characteristics, selecting a set of steam-processing parameters including a target steam temperature and a target steaming duration in Block S.
The method Sfurther includes, during a first time period during a processing cycle: heating air within the chamber toward the target processing temperature in Block Sand injecting steam into the chamber to drive a humidity within the chamber toward the target processing humidity in Block S; during a second time period succeeding the first time period, heating steam in a steam generatortoward the target steam temperature in Block Sand triggering a steam nozzle to expel steam over the target steaming duration to impinge a steam jet across an interior surface of the garment, tension local areas of the garment against the steam jet, and heat local areas of the garment in Block S.
Generally, the method can be executed autonomously by a dry-cleaning kiosk (hereinafter the “kiosk”): to access characteristics of a garment readied for dry cleaning; to load a processing model based on characteristics of a garment; and to retrieve or derive processing parameters for the garment based on this processing model and the garment characteristics, such as including specifications for how the garment is retained, ambient conditions within the chamber at the start of and/or during a processing cycle to dry clean the garment, and steam jet manipulation that achieves sufficient local temperatures and pressures to release macro and micro wrinkles in the garment. Once the garment is loaded into the kiosk and retained according to this specification (e.g., hung on a hanger and stretched via a set of retractable clipsarranged about the torso of the garment), the kiosk further executes these processing parameters autonomously, including: controlling ambient chamber conditions by heating, recirculating, and/or venting air in the chamber; and sweeping a steam nozzle—facing into the garment (e.g., located in the bottom of the kiosk and facing upwardly into a body of the garment retained thereover)—according to this specification, thereby locally heating the garment above its transition temperature while locally stretching the garment and thus removing wrinkles from the garment. The kiosk then: cools the garment by circulating cool air into the chamber, thereby setting the garment without wrinkles; and dries the garment by directing dry and/or heated air at the garment.
In particular, application of heat and moisture onto a wrinkled section of fabric may reset hydrogen bonds that form wrinkles in the fabric. Application of tension or pressure on the wrinkled section of fabric-perpendicular to the wrinkles-may thus reset these hydrogen bonds in an unwrinkled state, thereby rendering this section of fabric without wrinkles. Furthermore, different fabric types may require different combinations of heat, moisture, and pressure to fully release wrinkles. For example, a cotton fabric may require a high ratio of moisture to heat in order to reach its transition temperature, and a polyester fabric may require a much lower ratio of moisture to heat but a higher overall temperature to reach its transition temperature. Furthermore, different fabric types may exhibit different moisture-carrying capacities and drying rates. Excess moisture accumulation on a fabric may therefore result in an overly damp or wet fabric that requires more energy for full wrinkle release, more time and energy to dry, and a longer processing cycle time.
Therefore, the system can: locate a garment within a chamber via a hanger and a set of retractable clipsthat tension the garment against the hanger; and autonomously control application of heat, moisture, and local pressure on regions of the garment during a processing cycle to achieve full wrinkle release across the garment via steam. More specifically, the computer system can autonomously manipulate a steam nozzle, selectively activate hot dryerand cold dryerand selectively ventilate the chamber during the processing cycle to achieve heat, moisture, and local pressures within the garment predicted to yield complete wrinkle release across the garment.
As described in U.S. patent application Ser. No. 17/632,709, the kiosk can retain a garment via a hanger and a set of retractable clipsthat tension the garment against the hanger. However, individual clips arranged on the garment may only retain the bottom edge of the garment and may therefore stretch the garment along a single tension axis. Subsequent application of heat and moisture on the garment may release wrinkles perpendicular to the tension axis of the clip. However, lack of tension perpendicular to the tension axis may result in incomplete release of wrinkles non-parallel to the tension axis.
Individually and in aggregate, a set of retractable clipsarranged about the base of a garment loaded into the kiosk may not provide sufficient tension across the garment (i.e., between tension axes of these clips) to release wrinkles non-parallel to these tension axes.
Therefore, the kiosk can sweep a high-flow-rate, high-pressure steam jet across interior surfaces of the garment, thereby locally stretching the garment radially outwardly via jet impingement. In particular, a pressure front from the steam jet impacting a local region of the garment may stretch this local region of the garment out of plane and both parallel and perpendicular to tension axes of nearest clips arranged on the garment, thereby straightening wrinkles in all directions in this local region of the garment, including wrinkles perpendicular to the tension axes of these nearest clips.
Heat and moisture from this steam jet may thus reset hydrogen bonds in this local region of the garment while the steam jet locally stretches the garment against these wrinkles such that these wrinkles fully release.
The kiosk subsequently injects cool, dry air into the chamber, thereby driving the temperature of this local region of the garment below the transition temperature of the fabric and “setting” the garment in a wrinkle-free state. The kiosk then injects hot, dry air into the chamber to dry the garment before releasing the wrinkle-free garment to a user.
Furthermore, wrinkles may predominantly (or only) release from a fabric when the fabric region is heated above its transition temperature and stretch perpendicular to these wrinkles. The transition temperature of the fabric may be reduced or controlled by introducing humidity to the fabric, but introduction of excess humidity may result in a damp fabric requiring excessive time to dry and reducing efficacy of wrinkle release via heat and pressure. Conversely, application of excess heat and pressure may damage the fabric.
Furthermore, fabric thickness may affect target heat, humidity, and pressure ranges in which wrinkle release occurs without damage to the fabric.
Furthermore, different garment types (e.g., jackets, blouses, pants, shirts) may exhibit different effective containments of heat and moisture within the garment during a processing cycle and different tensioning via clips and steam jet impingement.
Therefore, the kiosk can store and implement processing models defining processing parameters for achieving complete wrinkle release for garments of particular fabric types, garment types, and garment dimensions (e.g., sizes), such as including: target chamber temperatures throughout a processing cycle; target chamber humidities throughout a processing cycle; a steam nozzle path; a steam nozzle speed; a bladder actuation specification (e.g., target internal pressure within select bladders); and/or a garment retention specification (e.g., hanger and clip orientation). The kiosk can then autonomously execute processing cycles according to these processing parameters for individual garments loaded into the kiosk.
As described in U.S. patents application Ser. Nos. 17/258,531 and 17/632,709, which are incorporated herein by reference, and shown in, the kioskcan include: a housing defining the chamber; a hangerarranged in an overhead position within the chamber; a left sleeve retainerconfigured to retain a left sleeve cuff of the garment; a right sleeve retainerconfigured to retain a right sleeve cuff of the garment; a hot dryerconfigured to inject heated air into the chamber; a cold dryerconfigured to inject cool (e.g., ambient) air into the chamber; a set of dryer nozzlesconfigured to direct heated and cool air from the hot dryerand cold dryer, respectively, selectively toward and around the garment; an exhaust(e.g., an outlet) configured to vent air (e.g., moist, heated air) out of the chamber; a steam generatorconfigured to heat water into steam; a steam nozzlearranged in the base of the chamberbelow the cameraand configured to expel pressurized steam supplied from the steam generator; and a steam valve configured to selectively release steam from the steam generatorto the steam nozzle.
The kioskfurther includes: an air inlet (or “vent”) configured to supply air (e.g., ambient air) to the hot dryerand the cold dryer; a fan configured to direct (or “propel”) air through the air inlet; a valve configured to selectively direct air from the air inlet to the hot dryerand/or the cold dryer; and a heating element configured to heat air entering, occupying, and/or exiting the hot dryer. In one implementation, the heating element includes an electrical (e.g., resistive) heating element configured to convert electrical energy into thermal energy and transfer the thermal energy to the air within the hot dryer. In another implementation, the heating element includes a steam-to-air heat exchanger: fluidly coupled to the steam generatorvia a valve; and configured to transfer heat from the steam-supplied by the steam generator—into air passing into, occupying, or exiting the hot dryer. Therefore, in this implementation, the steam-to-air heat exchanger can heat air-entering or occupying the chamberof the kiosk—with residual heat stored in water contained in the steam generator, thereby reducing a temperature of the steam generatorfollowing completion of a steaming segment of a processing cycle and reducing energy consumption by the kioskduring a drying segment of the processing cycle.
The kioskfurther includes a multi-axis stage configured to manipulate the steam nozzle, such as by sweeping in the steam nozzlein a three-dimensional spiral pattern to raster a steam jet from the steam nozzleacross interior surfaces of a garment loaded into the kiosk.
The kioskalso includes a set of retractable clipsarranged below the hangerand configured to: retain a bottom edge of the garment; tension the garment against the hanger; and spread the base of the garment outwardly from the steam nozzlearranged below the hanger.
The kioskcan further include: a set of bladdersarranged in the chamberand selectively expandable to stretch local areas of the garment and to obstruct openings in the garment; an air pump; and a set of pressure valves or pressure regulators configured to selectively expand and retract the set of bladdersby distributing air between the air pump and the set of bladders. For example, the kioskcan include: a left shoulder bladderarranged on the hangerand configured to expanded into a left shoulder of a garment; a right shoulder bladderarranged on the hangerand configured to expanded into a right shoulder of a garment; a left cuff bladder arranged on the left sleeve retainerand inserted into a left cuff of sleeve of the garment; a right cuff bladder arranged on the right sleeve retainerand inserted into a left cuff of sleeve of the garment; and a neck bladderarranged on the hangerand configured to expand across a neck opening of the garment. When expanded, a bladder can thus trap moisture and heat within the garment. The kioskcan therefore control local temperatures and humidities within the garment during a processing cycle by selectively: expanding a bladder to close the garment opening and thus increase the temperature and humidity inside the garment; and retracting the bladder to unblock the garment opening and thus reduce the temperature and humidity within the garment.
Generally, the kioskcan: actuate the hot dryerto increase a global temperature within the chamber; actuate the cold dryerand/or the ventilation system to decrease the global temperature and humidity within the chamber; actuate the steam nozzleto increase a temperature within the general garment and specifically in locations of steam jet impingement; actuate the steam nozzleto increase pressure—and therefore stretching-in the garment at locations of steam jet impingement; actuate the steam nozzleto increase humidity within the garment and in the chambermore generally; and expand and contract set of bladdersto increase and decrease temperature and humidity within the garment.
For example, large garment openings (e.g., neck, arm openings) may enable heat and moisture to escape the garment more rapidly during a processing cycle; and vice versa. The kioskcan therefore selectively expand set of bladdersto trap heat and moisture within the garment. Larger garments may yield greater distances between regions of the garment and the steam nozzleand therefore yield reduced temperatures at locations of steam jet impingement on the garment; and vice versa. Higher steam nozzle speeds may yield lower peak temperatures at locations of steam jet impingement; and vice versa. The kioskcan achieve greater local temperatures on the garment and compensate for larger garments by reducing the speed of the steam nozzle; and vice versa. Higher ambient temperatures within the chambermay support high ambient humidities in the chamberand enable the kioskto reach the transition temperature of fabric in a garment—and thus achieve wrinkle release—at higher steam nozzle speeds; and vice versa.
Furthermore, individual input parameters controlled by the kioskmay affect multiple global and local conditions within the chamber. For example, activation of the steam nozzlecan increase: local temperature and humidity within the garment; chamber humidity; increase local garment pressure; and vice versa. Slower steam nozzle speeds can yield higher: local garment pressures; local garment temperatures; local humidities; and vice versa. Activation of the hot dryerincreases a global temperature in the chamberand therefore local temperature in the garment, and activation of the cold dryerdecreases a global temperature in the chamberand therefore local temperature in the garment. Expansion of the set of bladderscloses garment openings and increases internal garment temperature, internal garment humidity, and internal garment pressure; and vice versa.
The kioskcan thus selectively control these actuators to achieve target temperatures, pressures, and humidities within garments during processing cycles.
The kioskcan implement one or a suite of processing models to derive such target temperatures, pressures, and humidities for a garment based on its characteristics. In particular, a processing model can define a set or sequence of processing parameters predicted to yield complete wrinkle release from the garment based on fabric type, garment type, garment dimensions, and/or other characteristics of the garment.
Generally, a type and/or thickness of a fabric may require minimum quantities of energy (e.g., heat over time), force or pressure, and/or humidity per unit area to release macro and micro wrinkles within the unit fabric. This fabric type and/or thickness may be exposed to a maximum: amount of humidity per unit area before the fabric becomes saturated or damp (i.e., is perceived as “wet” by a user); heat or temperature before the fabric is damaged (e.g., burned); and/or pressure or force before fabric is damaged (e.g., inelastically stretched). Furthermore, this fabric type and/or thickness may require direct or indirect cooling, a minimum cooling rate, and/or a minimum cooling magnitude to set the fabric without wrinkles after steaming such that wrinkles do not return to the fabric once removed from the kioskupon conclusion of the processing cycle.
For example, cotton may require greater minimum humidity to release wrinkles than polyester. Polyester may require greater minimum temperature to release wrinkles than cotton. Thicker fabrics may require greater minimum pressure to locally stretch and thus release wrinkles than thinner fabrics. Cotton may support greater maximum moisture exposure before saturation and require greater humidity to reduce transition temperature than polyester. Thicker fabrics may support greater maximum moisture capacity than thinner fabrics. Polyester may support greater maximum heat or temperature exposure before damage than cotton. Polyester may support rapid, direct cooling and drying with cool air via the cold dryer, and cotton may require slower, indirect cooling and drying with hot air via the hot dryer.
Therefore, for a cotton garment, the kioskcan achieve high humidity, moderate temperature, and moderate pressure within the cotton garment during a processing cycle by: disabling the hot dryerto maintain a higher relative chamber humidity and lower chamber temperature; implementing a faster steam nozzle speed to achieve lower local temperatures and pressures within the garment; and implement shorter stepover offsets between segments of the steam nozzle path to achieve greater humidity within the garment.
Conversely, for a polyester garment, the kioskcan achieve low humidity, high temperature, and high pressure within the polyester garment during a processing cycle by: activating the hot dryerto reduce relative chamber humidity and increase chamber temperature; implementing a slower steam nozzle speed to achieve higher local temperatures and pressures within the garment; and implement larger stepover offsets between segments of the steam nozzle path to achieve lower humidity within the garment.
Conversely, for a silk garment, the kioskcan achieve moderate humidity, high temperature, and low pressure within the polyester garment during a processing cycle by: activating the hot dryerto reduce relative chamber humidity and increase chamber temperature; implementing a faster steam nozzle speed to achieve lower local temperatures and pressures within the garment; and implement shorter stepover offsets between segments of the steam nozzle path to achieve higher humidity within the garment.
Therefore, the kioskcan concurrently modulate multiple input parameters for particular garment fabric types in order to achieve target pressures, temperatures, and humidities within garments.
Furthermore, garment types (e.g., long-sleeved shirt, short-sleeved shirt, sleeveless shirt, pant, skirt, suit jacket, dress) may define different opening dimensions that yield different heat and moisture retention characteristics and therefore require different heat, moisture, and pressure applications for complete wrinkle release.
For example, for a long-and/or short-sleeved shirt with a high neck, the kioskcan selectively close sleeve and neck openings by inflating set of bladdersarranged on a hangersupporting the shirt, thereby trapping heat and moisture within the garment. Conversely, for a sleeveless shirt or blouse with a low neck-line, neck and shoulder openings of the garment may be too large to close via these bladders. Steam injected into the garment may therefore pass through the garment rather than remain trapped inside the garment, thereby yielding lower temperatures and humidities within the garment for reduced wrinkle release (especially along the top of the garment. Therefore, the kioskcan: implement reduced steam nozzle speeds, reduced stepover offsets between segments of the steam nozzle path, and/or higher chamber temperatures and humidities for sleeveless shirts and blouses than for long-and short-sleeved shirts with high necks; and implement greater steam nozzle speeds, greater stepover offsets between segments of the steam nozzle path, and/or lower chamber temperatures and humidities for long-and short-sleeved shirts with high necks in order to reduce processing cycle time and energy and water consumption.
In this example, for an open-front suit jacket, the open front of the suit jacket may be too large to close via set of bladdersarranged on the hanger. Accordingly, steam injected into the garment may pass through the front of the garment rather than remain trapped inside the garment, thereby yielding lower temperatures and humidities within the garment, especially along the front of the garment. Therefore, the kioskcan implement reduced steam nozzle speeds and/or reduced stepover offsets between segments of the steam nozzle path when sweeping the steam nozzleacross the front of the suit jacket than across the back of the suit jacket in order to achieve similar wrinkle release across the whole garment.
Furthermore, different garment types may support different combinations of clip-attachments and bladder interfaces that yield different garment tensions during processing. For example, when processing a high-neck, long-sleeved shirt: several clips installed along the bottom edge of the shirt tension the shirt downward and outwardly; the left sleeve retainerand the right sleeve retainerdraw the sleeves downwardly and outwardly from the hanger; and the hangerand set of bladdersretain and expand the shoulders of the shirt upwardly and outwardly, thereby achieving consistent tension across the garment. Conversely, when processing a neckless, sleeveless blouse: clips installed along the bottom edge of the blouse tension the blouse downwardly and outwardly; the set of sleeve retainers(e.g., the left sleeve retainerand the right sleeve retainer) and the set of bladdersare disengaged from the garment; and the hangerretains the top of the blouse, thereby yielding lower total tension and less consistent tension across the blouse, especially proximal the neck of the blouse. In this example, when processing a suit jacket: several clips installed along the bottom edge of the suit jacket tension the suit jacket downward and outwardly; the set of sleeve retainersdraw the sleeves downwardly and outwardly; the hangerand bladdersretain and expand the shoulders of the suit jacket upwardly and outwardly, but the front of the suit jacket remains open, yielding less consistent tension across the front of the suit jacket than across the back and sides of the suit jacket. Accordingly, the kioskcan raster the steam nozzleat speeds inversely proportional to local tensions in the garment predicted in fields of view of the steam nozzlebased on the format of the garment.
Therefore, different garment types may yield different local heat and humidity retention and different tension characteristics within the garment.
Similarly, different garment dimensions (e.g., sizes) may further yield different local heat and humidity retention and different tension characteristics within the garment.
For example, larger garments define internal surfaces further from the steam nozzle, define larger internal volumes, and define larger openings. Thus, the steam jet may exhibit less energy (i.e., reduced temperature and pressure) upon reaching an interior surface of the garment, and larger openings in the garment may quickly release steam and humidity from inside the garment. Thus, to maintain temperature, moisture, and pressure within the garment, the kioskcan: actuate the hot dryerto heat the chamberand garment globally; close a chambervent to retain moisture within the chamber; and reduce stepover offer and speed of the steam nozzlewhile sweeping the steam nozzleacross the interior of a larger garment.
The kioskcan therefore implement a set of processing models that define target chamber temperatures, target chamber humidities, steam nozzle paths, steam nozzle speeds, bladder actuation specifications, and/or garment retention specifications, etc. based on characteristics of garments such that implementing these input parameters yields target temperatures, pressures, and humidities predicted to achieve complete wrinkle release in these garments.
In one implementation, the kioskstores and implements one non-parameterized processing model for each material type, garment type, and/or garment dimensions combination. For example, a first processing model for a large cotton dress shirt can define setup parameters including bladder actuation (e.g., target internal pressures for each bladder) and a target clip layout on the garment, such as including graphical and/or textual instructions for a user. In this example, the first processing model can also define processing parameters, including: a steam nozzle path (e.g., starting position, ellipsoid-spiral pattern, ending position, stepover offset between turns of the spiral pattern); a steam nozzle speed, such as for individual segments of the steam nozzle path; hot and cold dryeractuation and timing; target chamber temperatures and humidities, such as at key times during a processing cycle; drying parameters, including hot or cold air from the hot or cold dryerand direct or indirect drying; and ventilation settings (e.g., timing for exhausting and recirculate moist air in the chamber).
In the foregoing implementation, the kioskcan similarly store and implement individual processing models specific to: small cotton dress shirts; large cotton blouses; small cotton blouses; large silk blouses; small silk blouses; large silk pants; small silk pants; large wool jacket; small wool jacket; large polyester shirts; small polyester shirts; large scarf or kerchief; large cotton dresses; and/or small cotton dresses; etc.
In another implementation, the kioskstores and implements parameterized processing models for each material type, such as one processing model for each of: cotton; silk; polyester; nylon; linen; wool; rayon; and/or common fabric blends; etc.
Unknown
September 25, 2025
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.