Multi-screen coordinate configuration method, system and device based on Linux system
By creating a list of screen thumbnails in the Linux system and adjusting the position of each screen individually, the problem of abnormal coordinates in multi-screen configurations was solved, enabling convenient configuration of any number of monitors and improving the user experience.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- KYLIN CORP
- Filing Date
- 2026-03-19
- Publication Date
- 2026-06-30
AI Technical Summary
Existing Linux systems cannot effectively adjust screen positions in multi-screen configurations, especially in configurations with three or more screens, resulting in abnormal coordinates and affecting user experience.
By acquiring display information, a list of operable screen thumbnails is created. User actions are detected, and the positions of the screen thumbnails are adjusted one by one to make them adjacent. The display coordinates are calculated and submitted. The first screen thumbnail in the list is used as a reference to adjust the positions of the other screen thumbnails one by one to achieve coordinate correction.
It enables convenient coordinate configuration for any number of monitors in a Linux environment, solves the coordinate anomaly problem in multi-screen position adjustment, and allows users to easily set the monitor screen position.
Smart Images

Figure CN122308769A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of multi-screen application technology in Linux systems, and specifically to a multi-screen coordinate configuration method, system, and device based on Linux systems. Background Technology
[0002] With the development of Linux systems, more and more industries and people are starting to use this type of operating system for daily office work. However, current mainstream Linux operating systems, such as Ubuntu and KDE, do not have good multi-screen support, especially for three or more screens. Graphics cards are also developing rapidly, and using multiple screens for work and entertainment has become commonplace. To meet the needs of more users, it is essential for operating systems to support three or more screens. During multi-screen use, users often adjust the screen positions (coordinates) according to different usage scenarios.
[0003] However, current multi-screen coordinate configuration methods in major Linux systems all involve scaling the screen to rectangles according to a certain ratio. Users can roughly modify the relative positions between rectangles by dragging the thumbnails. To facilitate user operation, after the user drags the thumbnails, the application fine-tunes the positions between the thumbnails based on the user's modifications, preventing abnormal positioning between rectangles and ensuring the thumbnails are tightly arranged. After the program completes the adjustment, the position coordinates are mapped to the bitmap window display system according to the scaling ratio. The current implementation only adapts well to dual-screen setups. In dual-screen scenarios, the program only needs to consider one relative relationship when adjusting the thumbnail positions. The program can arbitrarily choose one thumbnail as the reference rectangle and then adjust the coordinates of the other rectangle. When the number of screens is greater than two, the positional relationship between the screens changes from one type to multiple types. 2 n Furthermore, modifying the position of any monitor in this way will change its relative position to all other monitors, thereby causing changes in screen coordinates or even display abnormalities. Summary of the Invention
[0004] The technical problem to be solved by this invention is to provide a multi-screen coordinate configuration method, system and device based on Linux system, which addresses the above-mentioned problems of the prior art. This invention aims to solve the problem of configuring the coordinates of any number of monitors in the Linux environment, so that users in the Linux environment can easily set the screen position of the monitor.
[0005] To solve the above-mentioned technical problems, the technical solution adopted by the present invention is as follows: A method for configuring multi-screen coordinates based on a Linux system includes the following steps: S101, Obtain information from the display; S102, create an operable list of screen thumbnails for each display based on the information of the display; S103, detect the user's operation on the list of operable screen thumbnails. If the user's operation to modify the position of the screen thumbnails is detected, proceed to step S104. S104, starting with the first screen thumbnail in the screen thumbnail list along the specified direction as the reference screen thumbnail, adjust the position of the next screen thumbnail adjacent to the reference screen thumbnail one by one so that they are adjacent to the reference screen thumbnail, thereby completing the coordinate correction of all screen thumbnails in the screen thumbnail list. S105, calculate the coordinates of each display based on the coordinates of the corrected screen thumbnail; S106, Submit the coordinates of each display.
[0006] Optionally, obtaining the information about the displays in step S101 includes obtaining the number of displays, their resolution, and coordinates.
[0007] Optionally, in step S102, when creating an operable list of screen thumbnails for each display based on the display information, this includes generating a screen thumbnail for each display based on its resolution and a uniform scaling ratio, and placing the corresponding screen thumbnail in the operable list according to the display coordinates; in step S105, calculating the coordinates of each display based on the coordinates of the corrected screen thumbnails means converting the coordinates of the corrected screen thumbnails into the coordinates of the corresponding display according to a uniform scaling ratio.
[0008] Optionally, the operable screen thumbnail list in step S102 refers to a draggable screen thumbnail list, wherein the size of each screen thumbnail in the screen thumbnail list is fixed and the position is adjustable; the operation of detecting the user modifying the position of the screen thumbnail in step S103 refers to detecting the drag operation of the user modifying the position of the screen thumbnail.
[0009] Optionally, in the list of operable screen thumbnails in step S102, the screen thumbnails are rectangular thumbnails.
[0010] Optionally, step S104 includes: S201, the first screen thumbnail in the screen thumbnail list along the specified direction is used as the reference screen thumbnail; S202, calculate the distance between the reference screen thumbnail and other screen thumbnails on the side of the reference screen thumbnail with the specified direction, find the nearest other screen thumbnail, move the position of the nearest other screen thumbnail to make it adjacent to the reference screen thumbnail, and obtain the new coordinates of the nearest other screen thumbnail; S203, determine whether there is another screen thumbnail on the direction specified by the principle of the other screen thumbnail with the closest movement distance. If there is another screen thumbnail, then take the other screen thumbnail with the closest movement distance as the new reference screen thumbnail and jump to step S202; otherwise, jump to step S105.
[0011] Optionally, step S202, which calculates the distance between the reference screen thumbnail and other screen thumbnails on the side of the reference screen thumbnail specified by principle, and finds the closest other screen thumbnail, includes: S301, traverse through the other screen thumbnails on the side specified by the reference screen thumbnail principle to obtain a current other screen thumbnail. If the traversal is successful, proceed to step S302; otherwise, if the traversal is complete, proceed to step S305. S302, calculate the x-axis distance dx and y-axis distance dy between the centroid position of the reference screen thumbnail and the centroid position of the current other screen thumbnails, and half the sum of the lengths dl and the widths dw of the two rectangles of the reference screen thumbnail and the current other screen thumbnails. S303, calculate the first difference lx between the x-axis distance dx and half the sum of the lengths of the two rectangles dl, and the second difference ly between the y-axis distance dy and half the sum of the widths of the two rectangles dw; S304, determine the positional relationship between the reference screen thumbnail and the current other screen thumbnails based on the difference values lx and ly: If the first difference lx equals 0 and the second difference ly is less than or equal to 0, or the second difference ly equals 0 and the first difference lx is less than or equal to 0, it means that the rectangle of the current other screen thumbnail is adjacent to the rectangle of the reference screen thumbnail, and the distance between the reference screen thumbnail and the current other screen thumbnail is 0; if the first difference lx is less than 0 and the second difference ly is greater than 0, then it equals the second difference ly; if the first difference lx is greater than 0... If the second difference ly is less than 0, then it equals the first difference lx; if both the first difference lx and the second difference ly are greater than or equal to 0, then the distance between the reference screen thumbnail and the current other screen thumbnails is equal to the arithmetic square root of the sum of the squares of the first difference lx and the second difference ly; if both the first difference lx and the second difference ly are less than 0, then it means that the distance between the reference screen thumbnail and the current other screen thumbnails is the smaller of the first difference lx and the second difference ly; jump to step S301; S305, find the other screen thumbnail that corresponds to the smallest distance between the reference screen thumbnail and the current other screen thumbnails, and use it as the other screen thumbnail that is closest to the reference screen thumbnail.
[0012] Optionally, submitting the coordinates of each monitor in step S106 specifically means sending the coordinates of each monitor to the bitmap window display system of the Linux system using a specified command so that the bitmap window display system updates the information of each monitor.
[0013] In addition, the present invention also provides a multi-screen coordinate configuration system based on a Linux system, including a microprocessor and a memory interconnected thereto, wherein the microprocessor is programmed or configured to execute the multi-screen coordinate configuration method based on the Linux system.
[0014] Furthermore, the present invention also provides a computer-readable storage device storing a computer program for being programmed or configured by a microprocessor to execute the Linux-based multi-screen coordinate configuration method.
[0015] Compared with existing technologies, the present invention has the following main advantages: The method of the present invention includes acquiring information about the display and creating an operable list of screen thumbnails for each display; detecting user operations on the operable list of screen thumbnails, and if an operation is detected, starting with the first screen thumbnail in the list along a specified direction as a reference screen thumbnail, adjusting the position of each adjacent screen thumbnail to be adjacent to the reference screen thumbnail, thereby completing the coordinate correction of all screen thumbnails in the list; calculating the coordinates of each display based on the corrected coordinates of the screen thumbnails; and submitting the coordinates of each display. The present invention, through the mapping between the display and screen thumbnails, and by starting with the first screen thumbnail in the list along a specified direction as a reference screen thumbnail and adjusting the position of each adjacent screen thumbnail to be adjacent to the reference screen thumbnail, thereby completing the coordinate correction of all screen thumbnails in the list, can solve the problem of configuring the coordinates of any number of displays in a Linux environment, allowing users to conveniently set the screen position of the display. Attached Figure Description
[0016] Figure 1 This is a schematic diagram of the basic process of the method in an embodiment of the present invention.
[0017] Figure 2 This is a schematic diagram of the screen thumbnail coordinate correction process in an embodiment of the present invention. Detailed Implementation
[0018] like Figure 1 As shown, the multi-screen coordinate configuration method based on the Linux system in this embodiment includes the following steps: S101, Obtain information from the display; S102, create an operable list of screen thumbnails for each display based on the information of the display; S103, detect the user's operation on the list of operable screen thumbnails. If the user's operation to modify the position of the screen thumbnails is detected, proceed to step S104. S104, starting with the first screen thumbnail in the screen thumbnail list along the specified direction as the reference screen thumbnail, the position of the next screen thumbnail adjacent to the reference screen thumbnail is adjusted one by one to make it adjacent to the reference screen thumbnail, thereby completing the coordinate correction of all screen thumbnails in the screen thumbnail list; it should be noted that the specified direction can be manually specified as needed, for example, in this embodiment, the left side is specified as the specified direction.
[0019] S105, calculate the coordinates of each display based on the coordinates of the corrected screen thumbnail; S106, Submit the coordinates of each display.
[0020] In step S101 of this embodiment, obtaining information about the displays includes obtaining the number of displays, their resolution, and coordinates. The displays are hardware devices of the Linux system, and the number of displays, their resolution, and coordinates can be obtained from the hardware device information in the Linux system. The above method is a known method, and the information can be obtained using existing commands or interfaces in the Linux system, so it will not be described in detail here.
[0021] In step S102 of this embodiment, when creating an operable list of screen thumbnails for each display based on the information of the display, this includes generating a screen thumbnail corresponding to the display based on the resolution of the display and a uniform scaling ratio, and placing the screen thumbnail corresponding to the display in the operable list according to the coordinates of the display; in step S105, calculating the coordinates of each display based on the coordinates of the corrected screen thumbnails means converting the coordinates of the corrected screen thumbnails into the coordinates of the corresponding display according to a uniform scaling ratio.
[0022] In this embodiment, the operable screen thumbnail list in step S102 refers to a draggable screen thumbnail list, where the size of each screen thumbnail in the list is fixed and its position is adjustable; the operation of detecting user modification of screen thumbnail position in step S103 refers to detecting drag operation of user modification of screen thumbnail position.
[0023] In step S102 of this embodiment, the operable screen thumbnail list contains rectangular thumbnails. Users can change the relative positions of the displays by dragging the rectangular thumbnails (screen thumbnails).
[0024] like Figure 2 As shown, step S104 in this embodiment includes: S201, the first screen thumbnail in the screen thumbnail list along the specified direction is used as the reference screen thumbnail; S202, calculate the distance between the reference screen thumbnail and other screen thumbnails on the side of the reference screen thumbnail with the specified direction, find the nearest other screen thumbnail, move the position of the nearest other screen thumbnail to make it adjacent to the reference screen thumbnail, and obtain the new coordinates of the nearest other screen thumbnail; S203, determine whether there is another screen thumbnail on the direction specified by the principle of the other screen thumbnail with the closest movement distance. If there is another screen thumbnail, then take the other screen thumbnail with the closest movement distance as the new reference screen thumbnail and jump to step S202; otherwise, jump to step S105.
[0025] In this embodiment, step S202, which calculates the distance between the reference screen thumbnail and other screen thumbnails on the side of the reference screen thumbnail's specified direction and finds the closest other screen thumbnail, includes: S301, traverse through the other screen thumbnails on the side specified by the reference screen thumbnail principle to obtain a current other screen thumbnail. If the traversal is successful, proceed to step S302; otherwise, if the traversal is complete, proceed to step S305. S302, calculate the x-axis distance dx and y-axis distance dy between the centroid position of the reference screen thumbnail and the centroid position of the current other screen thumbnails, and half the sum of the lengths dl and the widths dw of the two rectangles of the reference screen thumbnail and the current other screen thumbnails. S303, calculate the first difference lx between the x-axis distance dx and half the sum of the lengths of the two rectangles dl, and the second difference ly between the y-axis distance dy and half the sum of the widths of the two rectangles dw; S304, determine the positional relationship between the reference screen thumbnail and the current other screen thumbnails based on the difference values lx and ly: If the first difference lx equals 0 and the second difference ly is less than or equal to 0, or the second difference ly equals 0 and the first difference lx is less than or equal to 0, it means that the rectangle of the current other screen thumbnail is adjacent to the rectangle of the reference screen thumbnail, and the distance between the reference screen thumbnail and the current other screen thumbnail is 0; if the first difference lx is less than 0 and the second difference ly is greater than 0, then it equals the second difference ly; if the first difference lx is greater than 0... If the second difference ly is less than 0, then it equals the first difference lx; if both the first difference lx and the second difference ly are greater than or equal to 0, then the distance between the reference screen thumbnail and the current other screen thumbnails is equal to the arithmetic square root of the sum of the squares of the first difference lx and the second difference ly; if both the first difference lx and the second difference ly are less than 0, then it means that the distance between the reference screen thumbnail and the current other screen thumbnails is the smaller of the first difference lx and the second difference ly; jump to step S301; S305, find the other screen thumbnail that corresponds to the smallest distance between the reference screen thumbnail and the current other screen thumbnails, and use it as the other screen thumbnail that is closest to the reference screen thumbnail.
[0026] In this embodiment, the left side is designated as the specified direction. Let the first screen thumbnail on the left be A. First, using screen thumbnail A as the reference thumbnail, steps S301 to S305 are executed to obtain the distance dA between the rectangles of other screen thumbnails and the rectangle of screen thumbnail A. Assume that the other screen thumbnail closest to the reference thumbnail is B. If the minimum distance dA is 0, it indicates that the rectangle of other screen thumbnail B is adjacent to the rectangle of screen thumbnail A. Otherwise, screen thumbnail B is translated to screen thumbnail A in the direction of the minimum distance dA, thus using screen thumbnail A as a reference to determine the position of screen thumbnail B.
[0027] Then, using screen thumbnail B as a reference screen thumbnail, steps S301 to S305 are executed to obtain the distance dB between the rectangles of other screen thumbnails and the rectangle of screen thumbnail B. Assume that the other screen thumbnail closest to the reference screen thumbnail is C. If the minimum distance dB is 0, it indicates that the rectangle of other screen thumbnail C is adjacent to the rectangle of screen thumbnail B. Otherwise, screen thumbnail C is translated to screen thumbnail B in the direction of the minimum distance dB, thus determining the position of screen thumbnail C using screen thumbnail B as a reference.
[0028] By following this process, the positions of all screen thumbnails are eventually determined, and all the rectangles of the screen thumbnails are adjacent to each other. The coordinates of the leftmost and topmost edges of all the screen thumbnail rectangles are set to 0, and these coordinates can be used as a reference to determine the coordinates of the top left corner of each rectangle (which are then used as the rectangle's coordinates).
[0029] In this embodiment, step S106, submitting the coordinates of each display specifically refers to sending the coordinates of each display to the bitmap window display system of the Linux system using a specified command, so that the bitmap window display system updates the information of each display. For example, in this embodiment, the coordinates are sent to the bitmap window display system via kscreen. At this point, the display coordinate configuration is complete, and the system display interface will display accordingly based on the user's configuration. Alternatively, other commands or interfaces can be used as needed to submit the coordinates of each display to the Linux system to achieve the configuration update of each display's coordinates.
[0030] In summary, this embodiment of the multi-screen coordinate configuration method based on the Linux system enables users to easily adjust the coordinates of the monitors by mapping the monitors and processing the positional relationships between multiple rectangles. Following this embodiment, the multi-screen coordinate configuration method based on the Linux system can easily configure the coordinates of any number of monitors, and the processing of screen coordinate information is no longer affected by the number of screens.
[0031] In addition, this embodiment also provides a multi-screen coordinate configuration system based on a Linux system, including a microprocessor and a memory interconnected, wherein the microprocessor is programmed or configured to execute the multi-screen coordinate configuration method based on the Linux system.
[0032] Furthermore, this embodiment also provides a computer-readable storage device storing a computer program, which is used to be programmed or configured by a microprocessor to execute the Linux-based multi-screen coordinate configuration method.
[0033] Those skilled in the art will understand that embodiments of this application can be provided as methods, systems, or computer program products. Therefore, this application can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, this application can take the form of a computer program product embodied on one or more computer-readable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code. This application is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of this application. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create a machine for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to operate in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The functions specified in one or more boxes. These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable apparatus for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.
[0034] The above description is merely a preferred embodiment of the present invention. The scope of protection of the present invention is not limited to the above embodiments. All technical solutions falling within the scope of the present invention's concept are within the scope of protection of the present invention. It should be noted that for those skilled in the art, any improvements and modifications made without departing from the principles of the present invention should also be considered within the scope of protection of the present invention.
Claims
1. A multi-screen coordinate configuration method based on a Linux system, characterized in that, Includes the following steps: S101, Obtain information from the display; S102, create an operable list of screen thumbnails for each display based on the information of the display; S103, detect the user's operation on the list of operable screen thumbnails. If the user's operation to modify the position of the screen thumbnails is detected, proceed to step S104. S104, starting with the first screen thumbnail in the screen thumbnail list along the specified direction as the reference screen thumbnail, adjust the position of the next screen thumbnail adjacent to the reference screen thumbnail one by one so that they are adjacent to the reference screen thumbnail, thereby completing the coordinate correction of all screen thumbnails in the screen thumbnail list. S105, calculate the coordinates of each display based on the coordinates of the corrected screen thumbnail; S106, Submit the coordinates of each display.
2. The multi-screen coordinate configuration method based on Linux system according to claim 1, characterized in that, The information obtained in step S101 includes the number of displays, their resolution, and coordinates.
3. The multi-screen coordinate configuration method based on Linux system according to claim 2, characterized in that, In step S102, when creating an operable list of screen thumbnails for each display based on the display information, this includes generating a screen thumbnail for each display based on its resolution and a uniform scaling ratio, and placing the corresponding screen thumbnail in the operable list according to the display coordinates. In step S105, calculating the coordinates of each display based on the corrected screen thumbnail coordinates means converting the corrected screen thumbnail coordinates into the coordinates of the corresponding display according to a uniform scaling ratio.
4. The multi-screen coordinate configuration method based on Linux system according to claim 1, characterized in that, The operable screen thumbnail list in step S102 refers to the draggable screen thumbnail list, where the size of each screen thumbnail in the screen thumbnail list is fixed and its position is adjustable; the operation of detecting user modification of screen thumbnail position in step S103 refers to detecting drag operation of user modification of screen thumbnail position.
5. The multi-screen coordinate configuration method based on Linux system according to claim 1, characterized in that, In step S102, the operable screen thumbnail list contains rectangular thumbnails.
6. The multi-screen coordinate configuration method based on Linux system according to claim 5, characterized in that, Step S104 includes: S201, the first screen thumbnail in the screen thumbnail list along the specified direction is used as the reference screen thumbnail; S202, calculate the distance between the reference screen thumbnail and other screen thumbnails on the side of the reference screen thumbnail with the specified direction, find the nearest other screen thumbnail, move the position of the nearest other screen thumbnail to make it adjacent to the reference screen thumbnail, and obtain the new coordinates of the nearest other screen thumbnail; S203, determine whether there is another screen thumbnail on the direction specified by the principle of the other screen thumbnail with the closest movement distance. If there is another screen thumbnail, then take the other screen thumbnail with the closest movement distance as the new reference screen thumbnail and jump to step S202; otherwise, jump to step S105.
7. The multi-screen coordinate configuration method based on Linux system according to claim 6, characterized in that, Step S202 involves calculating the distances between the reference screen thumbnail and other screen thumbnails on the side of the reference screen thumbnail specified by the principle, and finding the closest other screen thumbnail, including: S301, traverse through the other screen thumbnails on the side specified by the reference screen thumbnail principle to obtain a current other screen thumbnail. If the traversal is successful, proceed to step S302; otherwise, if the traversal is complete, proceed to step S305. S302, calculate the x-axis distance dx and y-axis distance dy between the centroid position of the reference screen thumbnail and the centroid position of the current other screen thumbnails, and half the sum of the lengths dl and the widths dw of the two rectangles of the reference screen thumbnail and the current other screen thumbnails. S303, calculate the first difference lx between the x-axis distance dx and half the sum of the lengths of the two rectangles dl, and the second difference ly between the y-axis distance dy and half the sum of the widths of the two rectangles dw; S304, determine the positional relationship between the reference screen thumbnail and the current other screen thumbnails based on the difference values lx and ly: If the first difference lx equals 0 and the second difference ly is less than or equal to 0, or the second difference ly equals 0 and the first difference lx is less than or equal to 0, it means that the rectangle of the current other screen thumbnail is adjacent to the rectangle of the reference screen thumbnail, and the distance between the reference screen thumbnail and the current other screen thumbnail is 0; if the first difference lx is less than 0 and the second difference ly is greater than 0, then it equals the second difference ly; if the first difference lx is greater than 0... If the second difference ly is less than 0, then it equals the first difference lx; if both the first difference lx and the second difference ly are greater than or equal to 0, then the distance between the reference screen thumbnail and the current other screen thumbnails is equal to the arithmetic square root of the sum of the squares of the first difference lx and the second difference ly; if both the first difference lx and the second difference ly are less than 0, then it means that the distance between the reference screen thumbnail and the current other screen thumbnails is the smaller of the first difference lx and the second difference ly; jump to step S301; S305, find the other screen thumbnail that corresponds to the smallest distance between the reference screen thumbnail and the current other screen thumbnails, and use it as the other screen thumbnail that is closest to the reference screen thumbnail.
8. The multi-screen coordinate configuration method based on Linux system according to claim 1, characterized in that, In step S106, submitting the coordinates of each monitor specifically means sending the coordinates of each monitor to the bitmap window display system of the Linux system using a specified command so that the bitmap window display system updates the information of each monitor.
9. A multi-screen coordinate configuration system based on Linux, comprising interconnected microprocessors and memory, characterized in that, The microprocessor is programmed or configured to execute the Linux-based multi-screen coordinate configuration method according to any one of claims 1 to 8.
10. A computer-readable storage device storing a computer program, characterized in that, The computer program is used to be programmed or configured by a microprocessor to execute the multi-screen coordinate configuration method based on the Linux system as described in any one of claims 1 to 8.