summaryrefslogtreecommitdiffstats
path: root/src/windows/identity/kconfig/api.c
Commit message (Collapse)AuthorAgeFilesLines
* Delete Network Identity ManagerTom Yu2011-10-171-2661/+0
| | | | git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25363 dc483132-0cff-0310-8789-dd5450dbe970
* make mark-cstyleTom Yu2009-10-311-98/+98
| | | | | | make reindent git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@23100 dc483132-0cff-0310-8789-dd5450dbe970
* NIM - a small readability changeJeffrey Altman2007-08-291-1/+1
| | | | | | | | | | Instead of testing for NOT the machine key, test for is the user key. ticket: new component: windows/identity/kconfig/api.c git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19896 dc483132-0cff-0310-8789-dd5450dbe970
* NIM: khcint_remove_space() frees memory too soonJeffrey Altman2007-08-241-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | The Network Identity Manager Configuration Provider module keeps track of the application and plug-in configuration settings organized into configuration spaces. The state of each configuration space is maintained in a reference counted object. Once all the references are released, the Configuration Provider will attempt to free the resources allocated for the object. If the configuration space was marked for deletion, then the registry keys associated with the object need to be deleted when the object is being discarded. Due to a coding error, the memory allocated for the object would be freed before the associated registry keys were deleted. This could result in a memory access error. The patch corrects the code in khcint_remove_space() to free the allocated memory after all the remaining clean-up steps have been performed. ticket: new component: windows git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19865 dc483132-0cff-0310-8789-dd5450dbe970
* set svn:eol-style to native for *.[ch]Ken Raeburn2007-06-201-2656/+2656
| | | | git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19596 dc483132-0cff-0310-8789-dd5450dbe970
* NIM: New Default View and miscellaneous fixesJeffrey Altman2007-03-201-15/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ================================ KfW 3.1 Alpha (NetIDMgr 1.1.11.0) -- nidmgr32.dll - Only one action in a menu is allowed to have KHUI_ACTIONREF_DEFAULT flag set. This marks the action as being the default action for the menu and will be rendered as such. - Newly created identities start off with the KCDB_IDENT_FLAG_EMPTY flag set. Once credentials are associated with the identity and the identity is refreshed, the flag will be cleared. - When creating actions, enforce the name length. - khm_value_exists() now handles shadowed configuration spaces. - Add new action KHUI_ACTION_LAYOUT_MINI which toggles between 'Advanced' and 'Basic' views. - Add support for F11 and F12 keys in khui_get_cmd_accel_string(). - New option for alerts to indicate that instead of just setting the response field in the alert, the UI should dispatch the command that the user has selected. -- krb5common.obj - khm_krb5_initialize() can return a handle to a krb5_ccache that has already been closed. Now it doesn't. - Also import 'krb5_string_to_deltat()'. - Work around conditioned symbol definitions in ntsecapi.h in the Vista Platform SDK that affect Win 2000. -- krb5cred.dll - Don't clear the prompts when the options for an identity changes. The prompter code relies on the prompts being around so that the values that the user has entered can be retained if the new set of prompts is the same as the old one. - Use the same code in the new credentials acquisition and the identity configuration code to obtain krb5 parameters for an identity. - Reset the 'IMPORTED' flag when we get new credentials using a password. - If the validity of a principal is not known, then we restrict the options that can be specified when calling krb5_get_init_creds_password() so that we can reliably determine if the principal is valid. If we need to get new credentials for the principal, we need to make another call using the correct options. - The return codes from the prompter need to indicate that the password read operation was cancelled instead of arbiraty non-zero values. - When reading identity settings, if a particular setting is not defined in the registry, then default to reading the settings out of krb5.ini. - Refer to credentials as 'credentials' or 'tickets' instead of 'creds'. - If an identity has imported credentials, don't import for the same identity again. - When importing an identity, create the identity configuration in the registry if we don't already have any settings there. - Work around conditioned symbol definitions in ntsecapi.h in the Vista Platform SDK that affect Win 2000. - Rearrange declarations for clarity. - Use the correct APIs to parse configuration values from krb5.ini. -- krb4cred.dll - The dialog layout was updated to accomodate a localized string that no longer fit in its control. - Remove a spurious inclusion of ntsecapi.h and work around conditioned symbol definition in the Vista Platform SDK. -- netidmgr.exe - Fix the menu creation code to correctly tag the default action so that it will be rendered properly. - Update the menu enumeration code to use documented functions instead of accessing acton lists directly. - Pool of per-identity actions now include a set of actions for obtaining credentials for specific identities. - The default action performed when the notification icon is clicked is now configurable. When displaying the context menu in the notification area, the default action is highlighted. - Remove unnecessary handlers from the notifcation event handler. - Only handle NIN_SELECT instead of both NIN_SELECT and WM_LBUTTONUP in the notification event handler. When the user clicks the notication icon, both events are generated. NIN_SELECT is canonical. - When the handling NIN_BALLOONUSERCLICK in the notification event handler, reset balloon_alert before displaying any new alerts so that we won't overwrite it later. - Reset the notification alert icon after displaying an alert. - If a renewal fails, the displayed alert contains a button that the user can click to initiate the process of acquiring new credentials for the identity. - Alerts can optionally dispatch the commands that were added to it using the KHUI_ALERT_FLAG_DISPATCH_CMD flag. - Increase the size of the About dialog. - Correct the action text for the IDS_ACTION_OPEN_APP and IDS_ACTION_CLOSE_APP to say 'Show' and 'Hide' instead of 'Open' and 'Close'. These actions only control the visible state of the NIM window. - Add additional notification which signals that the commandline has finished processing. - Add an 'acquire' action to the per-identity actions. - The per identity actions (renew, destroy, acquire) now have useful captions, names and tooltips. - Use WM_NEXTDLGCTL message when changing the focus of dialog controls. SetFocus() is insufficient. - If we get a request to show a new credential acquisition dialog and we are already showing one, bring that one to the foreground instead of trying to display a new one or waiting quietly. - New configuration schema for the UI that include definitions for the new default view. - The alerter window can now show more than one alert at once. - If we are about to show queued alerts, then check if the alerts that are waiting are related and if they can be grouped together. If so, show them in a single alert window instead of multiple ones. - If new alerts are issued while a set of alerts are being displayed and if the new alert is related to the alerts that are being displayed, then add the new alert to the list being displayed. - Make sure we have a lock on the alert when we are manipulating or accessing it. - Set the focus to the correct control when displaying an alert. - When adding alerts from the alert queue, make sure we iterate through the queue properly. - Allow keyboard navigation inside the alert window and support scroll bars. - Check if we have a valid code pointer before invoking a UI callback. - Make sure the main window is in the normal configuration before switching to a layout that rquires it. - When moving the main window around, if it comes close to an edge of the working area of the display, snap to it. - Maintain two sets of settings for the main window placement. One for the mini mode and one for the normal mode. - When processing saved window placement information from the configuration, handle docking hints which note which edges of the screen the main window should be adjacent to, if any. - Switching to the 'Basic' view disables the layout and column selection menus. - Position the new credentials dialog above the main window if the main window is visible. - The alert that is displayed to indicate that an identity has expired, now contains a command button that can be used to invoke the new credentials dialog for that identity. -- source - Update the documentation to reflect the change in behavior regarding KHUI_ACTIONREF_DEFAULT in khui_menu_insert_action() and khui_menu_insert_paction(). - Remove notes about menu access functions being not thread safe. This is no longer true. - Update the documentation for khui_alert_show() to document new behavior regarding KHUI_ALERT_FLAG_DISPATCH_CMD. - Update documentation to indicate which KHUI_ALERT_FLAG_* flags are internal and document the new KHUI_ALERT_FLAG_DISPATCH_CMD flag. - Augment the queue handling macros to support additional operations. Also add new tree data structure with an ordered list of children. - Code reorganization to reuse code for obtaining the caption and tooltip for a system defined action in netidmgr.exe. ticket: new component: windows git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19238 dc483132-0cff-0310-8789-dd5450dbe970
* NIM Improved Alert Management Jeffrey Altman2007-02-281-4/+145
| | | | | | | | | | | | This patch implements the new Alert Management functionality. Many improvements to avoid race conditions and improve resource tracking. ticket: new component: windows git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19189 dc483132-0cff-0310-8789-dd5450dbe970
* commits for KFW 3.1 Beta 3Jeffrey Altman2006-11-081-114/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | KfW 3.1 beta 3 (NetIDMgr 1.1.4.0) source for 1.1.4.0 - Eliminate unused commented out code. nidmgr32.dll (1.1.4.0) - The configuration provider was incorrectly handling the case where a configuration value also specifies a configuration path, resulting in the configuration value not being found. Fixed. - Fix a race condition when refreshing identities where removing an identity during a refresh cycle may a crash. - Fix a bug which would cause an assertion to fail if an item was removed from one of the system defined menus. - When creating an indirect UI context, khui_context_create() will correctly fill up a credential set using the selected credentials. krb5cred.dll (1.1.4.0) - Fix a race condition during new credentials acquisition which may cause the Krb5 plug-in to abandon a call to krb5_get_init_creds_password() and make another call unnecessarily. - If krb5_get_init_creds_password() KRB5KDC_ERR_KEY_EXP, the new credentials dialog will automatically prompt for a password change instead of notifying the user that the password needs to be changed. - When handling WMNC_DIALOG_PREPROCESS messages, the plug-in thread would only be notified of any changes to option if the user confirmed the new credentials operation instead of cancelling it. - Additional debug output for the DEBUG build. - Reset the sync flag when reloading new credentials options for an identity. Earlier, the flag was not being reset, which can result in the new credentials dialog not obtaining credentials using the new options. - Handle the case where the new credentials dialog maybe closed during the plug-in thread is processing a request. - Fix a condition which would cause the Krb5 plug-in to clear the custom prompts even if Krb5 was not the identity provider. - Once a password is changed, use the new password to obtain new credentials for the identity. netidmgr.exe (1.1.4.0) - Fix a redraw issue which left areas of the credentials window unupdated if another window was dragged across it. - Handle WM_PRINTCLIENT messages so that the NetIDMgr window will support window animation and other features that require a valid WM_PRINTCLIENT handler. - During window repaints, NetIDMgr will no longer invoke the default window procedure. - Add support for properly activating and bringing the NetIDMgr window to the foreground when necessary. If the window cannot be brought to the foreground, it will flash the window to notify the user that she needs to manually activate the NetIDMgr window. - When a new credentials dialog is launched as a result of an external application requesting credentials, if the NetIDMgr application is not minimized, it will be brought to the foreground before the new credentials dialog is brought to the foreground. Earlier, the new credentials dialog may remain hidden behind other windows in some circumstances. - When displaying custom prompts for the new credentials dialog, align the input controls on the right. ticket:new tags: pullup git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@18767 dc483132-0cff-0310-8789-dd5450dbe970
* KFW 3.1 Beta 2 NetIDMgr ChangesJeffrey Altman2006-09-211-15/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | source for (1.1.0.1) - Updated documentation with additional information and fixed errors. nidmgr32.dll (1.1.0.1) - Fixed a deadlock in the configuration provider that may cause NetIDMgr to deadlock on load. - Prevent the configuration provider handle list from getting corrupted in the event of a plug-in freeing a handle twice. - Add more parameter validation for the configuration provider. - If a plug-in is only partially registered (only some of the entries were set in the registry), the completion of the registration didn't complete successfully, leaving the plug-in in an unusable state. This has been fixed. Plug-ins will now successfully complete registration once they are loaded for the first time, assuming the correct resources are present in the module. - Fixed notifications for setting a default identity. Notifications were not being properly sent out resulting in the credentials window not being updated when the default identity changed. - Changes to the API for type safety. - Handling of binary data fields was changed to support validation and comparison. - Data types that do not support KCDB_CBSIZE_AUTO now check for and report an error if it is specified. - Password fields in the new credentials dialog will trim leading and trailing whitespace before using a user-entered value. - Change password action will no longer be disabled if no identity is selected. An identity selection control is present in the dialog making this restriction unnecessary. - When renewing credentials, error messages will be suppressed if the renewal was for an identity and the identity does not have any identity credentials associated with it. - Error messages that are related to credentials acquisition or password changes will now display the name of the identity that the error applies to. - Automatic renewals now renews all identities that have credentials associated with them instead of just the default identity. - Fixed a bug where error messages did not have a default button which can be invoked with the return key or the space bar. - The new credentials window will force itself to the top. This can be disabled via a registry setting, but is on by default. - Fixed the sort order in the new credentials tabs to respect sort hints provided by plug-ins. - If a new credentials operation fails, the password fields will be cleared. - Once a new credentials operation starts, the controls for specifying the identity and password and any other custom prompts will be disabled until the operation completes. - Notifications during the new credentials operation now supply a handle to the proper data structures as documented. - Hyperlinks in the new credentials dialog now support markup that will prevent the dialog from switching to the credentials type panel when the link is activated. - If there are too many buttons added by plug-ins in the new credentials dialog, they will be resized to accomodate all of them. - The options button in the new credentials dialog will be disabled while a new credentials operation is in progress. - The 'about' dialog retains the original copyright strings included in the resource. - Multiple modal dialogs are now supported. Only the topmost one will be active. Once it is closed, the other dialogs will gain focus in turn. This allows for error messages to be displayed from other modal dialogs. - The hypertext window supports italics. krb4cred.dll (1.1.0.1) - Fixed a bug where the plug-in would attempt to free a handle twice. - Fixed a handle leak. - Changed the facility name used for event reporting to match the credentials type name. krb5cred.dll (1.1.0.1) - Fixed handling of expired passwords. If the password for an identity is found to have expired at the time a new credentials acquisition is in progress, the user will be given an opportunity to change the password. If this is successful, the new credentials operation will continue with the new password. - Prevent the new credentials dialog from switching to the Kerberos 5 credentials panel during a password change. - Prompts that were cached indefinitely will now have a limited lifetime. Prompt caches that were created using prior versions of the plug-in will automatically expire. - Multistrings in the resource files were converted to CSV to protect them against a bug in Visual Studio 2005 which corrupted multistrings. - Added handling of and reporting WinSock errors that are returned from the Kerberos 5 libraries. - Fixed uninitialized variables. - The username and realm that is entered when selecting an identity will be trimmed of leading and trailing whitespace. - Changed the facility name used for event reporting to match the credentials type name. ticket: new component: windows tags: pullup git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@18604 dc483132-0cff-0310-8789-dd5450dbe970
* Windows NetIDMgr post-1.5 branch commitsJeffrey Altman2006-07-191-47/+105
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The following patch updates the NetIDMgr: * allow plug-ins to be marked "do not unload" in order to support DLLs that create threads that are not properly cleaned up as part of library unload. * allow plug-ins to be marked "disabled" * Additional changes to deal with Microsoft's efforts to deprecate all of the str C runtime functions. * Improvements to Manifest processing in the build system * Addition of Tooltip support to the Toolbar. Dragging the mouse over toolbar buttons displays textual descriptions. * Correct the behavior of the New Credentials Dialog to disable the "Ok" button after it has been pressed. * Add support to allow plugin configuration data to be distributed as part of transforms to the MSI installer. ticket: new git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@18344 dc483132-0cff-0310-8789-dd5450dbe970
* NetIDMgr updatesJeffrey Altman2006-06-251-11/+8
| | | | | | | | | | | | | | | | | | | | | | | | * add scrollbars to option tree pane in configuration dialog * convert to using Microsoft's safe string library both to ensure safe string manipulation and to avoid deprecation warnings * disable deprecation warnings for Platform SDK header shlwapi.h which cannot otherwise be compiled * add kerberos 5 kvno property to tickets. display in properties dialog and main window if column selected by user * improve manifest handling in order to support both manifests generated by the compiler and those hand crafted in order to specify the correct versions of the custom control libraries. * update khimaira message types and credential acquisition documentation ticket: new git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@18212 dc483132-0cff-0310-8789-dd5450dbe970
* Results from Kerberos Interop session:Jeffrey Altman2006-04-021-37/+63
| | | | | | | | | | | | | | | | | | | | | | - 64-bit Windows compatibility - correct uninitialized variables - work without kerberos 4 libraries including krb524 - add a mechanism to add and remove identities from the options dialog. This allows a configuration to be specified using a separate file based ccache for each identity - work without availability of ccapi - force a renew of credentials on startup to support the case when MSLSA is the only credential cache ticket: new git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@17832 dc483132-0cff-0310-8789-dd5450dbe970
* 2006-03-07 Jeffrey Altman <jaltman@mit.edu>Jeffrey Altman2006-03-081-36/+84
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | nidmgr32.dll (1.0.2.1) - Attempting to obtain new credentials for a principal name that contains numbers may result in a 'Identity not specified' error. Fixed. - If an invalid identity name was specified, an 'Identity not specified' error is reported without specifying that the cause was an invalid name. Fixed: reports proper error. - Identity names were being validated at the application layer before being sent to the identity provider. This may cause valid names to be marked as invalid if the identity provider and the application disagree on what a valid name is. Fixed: identity name validation is solely a function of the identity provider. - Canonicalizing an identity name that contained certain characters failed due to a validation error. Fixed. - Possible deadlock in the new credentials dialog. (If one plugin tries to synchronize custom prompter values from the plugin thread, while the UI thread tries to obtain a lock on the new credentials data, a deadlock occurs.) Fixed. - State information for configuration panels may persist between two invocations of the configuration window. Fixed to clean up state information properly. - The UI library now has full support for custom actions and custom menus. - When there are queued alerts and a normal alert is shown, a 'next alert...' button appears in the alert which lets the user view the next queued alert. However, if the alert which is displayed requires the user to select a command button, selecting the 'next' button would be the equivalent of cancelling out of the alert and viewing the next one. The library was updated to not show the 'next' button if the alert requires user interaction. - Credential renewal on half-lifes is now supported as a configurable option. - Destroying all credentials on exiting netidmgr is a configurable option. - Debug logging to a file has been added netidmgr.exe (1.0.2.1) - Selecting 'Ok' in the configuration window didn't notify all the configuration panels to apply the changes. Fixed. - PgUp / PgDn / Shift+PgUp / Shift+PgDn keys now work as expected. - Root level configuration nodes in the Options dialog now also appear on the Options menu. Configuration nodes that are registered at the root level are automatically added to the menu. - The UI now has full support for custom actions and custom menus. - The UI does not automatically add submenus for actions which are associated with menus unless the declaration specifies that it should be rendered as a submenu. - When displaying alerts, the first button of the alert is always made the default. - 'Change summary' button in the configuration dialog was removed, since it was unused and unnecessary. - Ticket icons are displayed in the status column for all credentials. Clicking an icon opens the properties dialog for that credential. - The UI now has View by Type functionality - The UI now has Column selection and reorganization. The choice of columns and their order are preserved between restarts. - Handle multiple copies of NetIDMgr.exe being started with different version numbers. Higher version number wins. krb4cred.dll (1.0.2.1) - During new credentials acquisition, under some circumstances, the Kerberos 4 plugin would not notify NetIDMgr about the state of the Kerberos 4 ticket acquisition. This results in other plugins (such as AFS) which are depending on the feedback to fail. Fixed. krb5cred.dll (1.0.2.1) - If no password is entered while obtaining new credentials, a new TGT will not be obtained, but the new credentials operation will not fail if there already is a TGT. Added check to see if the TGT is expired and fail the operation if no valid TGT is found. - The identity provider can set the Krb5 CCName property for an identity incorrectly if there is more than one credential cache containing tickets for the same principal. Fixed. - When enumerating ccaches, krb5_cc_resolve was being called with the name of the ccache without a type prefix. Fixed. - Tracker control usability issues due to loss of focus. Fixed. - Realm Editor added. - Addressed tickets can be requested as in Leash All modules: - removed grayed out UI components that are not being backed by current functionality. - new icons - support for 64-bit Windows builds under Visual Studio 8 - proper versioning for language resources ticket: new git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@17712 dc483132-0cff-0310-8789-dd5450dbe970
* KFW 3.0 Final Network Identity Manager updatesJeffrey Altman2005-12-061-9/+86
| | | | | | | | | | | | | | | | | | | | | | | | Add new documentation files Add new icons Add "set default" functionality to the New Credentials dialog Remove inconsistencies in the Options configuration dialog Replace the menu bar so that it responds to Alt- and keyboard shortcuts Fix an --autoinit race condition many more things.... ticket: new target_version: 1.4.4 status: resolved tags: pullup git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@17546 dc483132-0cff-0310-8789-dd5450dbe970
* Network Identity Manager updates for KFW 3.0 Beta 3Jeffrey Altman2005-12-021-51/+80
| | | | | | | | | | | | | | | | | | | | Fix the handling of case sensitive names being stored in the registry. Only apply case sensitive encoding logic to the keys below the NetIdMgr key. Fix the importing of credentials from MSLSA: Apply an ugly hack to krb5configcc.c that forces _WIN32_WINNT to 0x0501 for the one file so that the executable can be built as APPVER=5.0 and yet still gain access to balloon tips on XP and above. ticket: new component: windows status: open target_version: 1.4.4 git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@17535 dc483132-0cff-0310-8789-dd5450dbe970
* Remove the case sensitive comparisions of registry entryJeffrey Altman2005-11-301-8/+40
| | | | | | | | | | | | | | | and schema strings. Microsoft uses HKLM\"SOFTWARE" and HKCU\"Software". This means the encoding schema that was selected does not work and the conflict in case prevents plugins from being loaded. Better to enable plugins to work than to allow two realms that differ only by case on the same platform during the beta. ticket: 3253 git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@17523 dc483132-0cff-0310-8789-dd5450dbe970
* KFW Network Identity Manager (Beta 2)Jeffrey Altman2005-11-291-178/+305
| | | | | | | | | | | | | | | | | | | | | | All features completed except for: * Debug Window * KRB5.INI (aka Realm) Editor * Column Selection * Graphics are incomplete * Documentation is incomplete ticket: new status: resolved component: windows target_version: 1.4.4 tags: pullup git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@17516 dc483132-0cff-0310-8789-dd5450dbe970
* Initial Commit Network Identity Manager for WindowsJeffrey Altman2005-11-021-0/+2098
Initial commit of Network Identity Manager for KFW 3.0 Beta 1 ticket: new tags: pullup component: windows git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@17476 dc483132-0cff-0310-8789-dd5450dbe970