)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"9ff18784d2b25b0ab4a8437b55bb72879caa3bb4","unresolved":false,"context_lines":[{"line_number":9,"context_line":"When swift\u0027s service is registered to keystone without using default"},{"line_number":10,"context_line":"service type, \"object-store\", swift pollsters don\u0027t work. This fix"},{"line_number":11,"context_line":"enables swift pollsters to get swift\u0027s service type from"},{"line_number":12,"context_line":"ceilometer.conf. If tere is no \"swift_service_type\"entry in the file,"},{"line_number":13,"context_line":"the default service type\"object-store\" will be used."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Iab30b6e749f5d2af4ecb0bbf6fe1a137793f4c2c"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"baada198_30db404f","line":12,"updated":"2014-08-11 11:00:41.000000000","message":"I guess you missed whitespace here - \"swift_service_type\"entry and type\"object-store\"","commit_id":"1c22a75ae38379780d0aefcba3733eec4ac009cf"},{"author":{"_account_id":12193,"name":"Hisashi Osanai","email":"osanai.hisashi@jp.fujitsu.com","username":"ho"},"change_message_id":"c397f8be0a52e70ad9cacc577997f028c36b2545","unresolved":false,"context_lines":[{"line_number":9,"context_line":"When swift\u0027s service is registered to keystone without using default"},{"line_number":10,"context_line":"service type, \"object-store\", swift pollsters don\u0027t work. This fix"},{"line_number":11,"context_line":"enables swift pollsters to get swift\u0027s service type from"},{"line_number":12,"context_line":"ceilometer.conf. If tere is no \"swift_service_type\"entry in the file,"},{"line_number":13,"context_line":"the default service type\"object-store\" will be used."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Iab30b6e749f5d2af4ecb0bbf6fe1a137793f4c2c"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"baada198_a661b639","line":12,"in_reply_to":"baada198_30db404f","updated":"2014-08-13 00:02:15.000000000","message":"Done\n\nThanks for the review. I put two spaces after \"swift_service_type\" and before \"object-store\".","commit_id":"1c22a75ae38379780d0aefcba3733eec4ac009cf"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"b8dd5c7f70a32cecad3b3cf2535caaca80a934d2","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Hisashi Osanai \u003cosanai.hisashi@jp.fujitsu.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-09-10 11:36:08 +0900"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"enable to get swift\u0027s service type from configuration file"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When swift\u0027s service is registered to keystone without using default"},{"line_number":10,"context_line":"service type, \"object-store\", swift pollsters don\u0027t work. This fix"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"fa98f980_ccfe47ae","line":7,"updated":"2014-09-10 07:54:16.000000000","message":"Please, write \u0027Enable\u0027 instead \u0027enable\u0027","commit_id":"855be8901cd61eb0e367d359cdb6cd6d8af5b2e0"}],"ceilometer/network/floatingip.py":[{"author":{"_account_id":8052,"name":"Nejc Saje","email":"nejc@saje.info","username":"nsaje"},"change_message_id":"7c81c6f822e906aa609cd2cd63ede2c2eea5bd27","unresolved":false,"context_lines":[{"line_number":34,"context_line":"               help\u003d\"Nova service type.\"),"},{"line_number":35,"context_line":"]"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"cfg.CONF.register_opts(service_types_opts, group\u003d\u0027service_types\u0027)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"class FloatingIPPollster(plugin.CentralPollster):"},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"fa98f980_9359de90","line":37,"updated":"2014-09-18 11:11:21.000000000","message":"Could you define this in ceilometer/nova_client.py instead, and make sure it also gets used when creating the client in https://github.com/openstack/ceilometer/blob/master/ceilometer/nova_client.py#L55 ?","commit_id":"e6fc95b31881c1938f25e209e61cad9e560f0b4d"},{"author":{"_account_id":12193,"name":"Hisashi Osanai","email":"osanai.hisashi@jp.fujitsu.com","username":"ho"},"change_message_id":"1a7379e96a94bf7f605e5a4b3474f7460c598a0d","unresolved":false,"context_lines":[{"line_number":34,"context_line":"               help\u003d\"Nova service type.\"),"},{"line_number":35,"context_line":"]"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"cfg.CONF.register_opts(service_types_opts, group\u003d\u0027service_types\u0027)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"class FloatingIPPollster(plugin.CentralPollster):"},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"fa98f980_a2b83576","line":37,"in_reply_to":"fa98f980_9359de90","updated":"2014-09-19 06:13:43.000000000","message":"Thanks! I moved the code to nova_client.py and specified the customized service type in the constructor. And also modified floatingip.py to import the service type from nova_client.py.\n\nDone","commit_id":"e6fc95b31881c1938f25e209e61cad9e560f0b4d"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"147085e76841db2f71acbe588652561d78ae839b","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"cfg.CONF.import_group(\u0027service_types\u0027, \u0027ceilometer.nova_client\u0027)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class FloatingIPPollster(plugin.CentralPollster):"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa98f980_5053c56b","line":33,"updated":"2014-09-19 14:56:32.000000000","message":"this would be a bit cleaner as:\n   import_opt(\u0027nova\u0027, \u0027ceilometer.nova_client\u0027, \u0027service_types\u0027)","commit_id":"72d65777962a2b93e80f7e17ce6602caa6a79bed"}],"ceilometer/network/services/discovery.py":[{"author":{"_account_id":8052,"name":"Nejc Saje","email":"nejc@saje.info","username":"nsaje"},"change_message_id":"33edc136525b355a5548a848e309d1024b258caa","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from ceilometer.central import plugin"},{"line_number":19,"context_line":"from ceilometer import neutron_client"},{"line_number":20,"context_line":"from ceilometer import plugin as base_plugin"},{"line_number":21,"context_line":"from oslo.config import cfg"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"service_types_opts \u003d ["},{"line_number":24,"context_line":"    cfg.StrOpt(\u0027neutron\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_c96b9c84","line":21,"updated":"2014-09-19 06:27:28.000000000","message":"This import needs to be in a separate group above the ceilometer.* imports. Check out http://docs.openstack.org/developer/hacking/#import-order-template .","commit_id":"af7148fe6a51f65b3a62b4ba296854f572bb14be"},{"author":{"_account_id":12193,"name":"Hisashi Osanai","email":"osanai.hisashi@jp.fujitsu.com","username":"ho"},"change_message_id":"06692ac8635ca1b61882b7f78c9e3e671c251931","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from ceilometer.central import plugin"},{"line_number":19,"context_line":"from ceilometer import neutron_client"},{"line_number":20,"context_line":"from ceilometer import plugin as base_plugin"},{"line_number":21,"context_line":"from oslo.config import cfg"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"service_types_opts \u003d ["},{"line_number":24,"context_line":"    cfg.StrOpt(\u0027neutron\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_a6fbe245","line":21,"in_reply_to":"fa98f980_c96b9c84","updated":"2014-09-19 08:51:25.000000000","message":"Thanks for this info. I checked all code which I touched with this fix.\nDone","commit_id":"af7148fe6a51f65b3a62b4ba296854f572bb14be"},{"author":{"_account_id":8052,"name":"Nejc Saje","email":"nejc@saje.info","username":"nsaje"},"change_message_id":"33edc136525b355a5548a848e309d1024b258caa","unresolved":false,"context_lines":[{"line_number":26,"context_line":"               help\u003d\u0027Neutron service type.\u0027),"},{"line_number":27,"context_line":"]"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"cfg.CONF.register_opts(service_types_opts, group\u003d\u0027service_types\u0027)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"class _BaseServicesDiscovery(base_plugin.DiscoveryBase):"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_492ecc43","line":29,"updated":"2014-09-19 06:27:28.000000000","message":"Sorry, I forgot to mention this earlier, but the neutron client in https://github.com/openstack/ceilometer/blob/master/ceilometer/neutron_client.py#L47 needs this as well. :)","commit_id":"af7148fe6a51f65b3a62b4ba296854f572bb14be"},{"author":{"_account_id":12193,"name":"Hisashi Osanai","email":"osanai.hisashi@jp.fujitsu.com","username":"ho"},"change_message_id":"06692ac8635ca1b61882b7f78c9e3e671c251931","unresolved":false,"context_lines":[{"line_number":26,"context_line":"               help\u003d\u0027Neutron service type.\u0027),"},{"line_number":27,"context_line":"]"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"cfg.CONF.register_opts(service_types_opts, group\u003d\u0027service_types\u0027)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"class _BaseServicesDiscovery(base_plugin.DiscoveryBase):"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_a69202f4","line":29,"in_reply_to":"fa98f980_492ecc43","updated":"2014-09-19 08:51:25.000000000","message":"Thanks for the review. I fixed it.\nDone","commit_id":"af7148fe6a51f65b3a62b4ba296854f572bb14be"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"147085e76841db2f71acbe588652561d78ae839b","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from ceilometer import plugin as base_plugin"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"cfg.CONF.import_group(\u0027service_types\u0027, \u0027ceilometer.neutron_client\u0027)"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"class _BaseServicesDiscovery(base_plugin.DiscoveryBase):"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa98f980_50dae5e9","line":25,"updated":"2014-09-19 14:56:32.000000000","message":"same thing... just import_opt.","commit_id":"72d65777962a2b93e80f7e17ce6602caa6a79bed"}],"ceilometer/objectstore/swift.py":[{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"9ff18784d2b25b0ab4a8437b55bb72879caa3bb4","unresolved":false,"context_lines":[{"line_number":36,"context_line":"OPTS \u003d ["},{"line_number":37,"context_line":"    cfg.StrOpt(\u0027swift_service_type\u0027,"},{"line_number":38,"context_line":"               default\u003d\u0027object-store\u0027,"},{"line_number":39,"context_line":"               help\u003d\"Swift service type. \"),"},{"line_number":40,"context_line":"    cfg.StrOpt(\u0027reseller_prefix\u0027,"},{"line_number":41,"context_line":"               default\u003d\u0027AUTH_\u0027,"},{"line_number":42,"context_line":"               help\u003d\"Swift reseller prefix. Must be on par with \""}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_70e058f8","line":39,"range":{"start_line":39,"start_character":40,"end_line":39,"end_character":41},"updated":"2014-08-11 11:00:41.000000000","message":"not needed trailing whitespace in the help message","commit_id":"1c22a75ae38379780d0aefcba3733eec4ac009cf"},{"author":{"_account_id":12193,"name":"Hisashi Osanai","email":"osanai.hisashi@jp.fujitsu.com","username":"ho"},"change_message_id":"c397f8be0a52e70ad9cacc577997f028c36b2545","unresolved":false,"context_lines":[{"line_number":36,"context_line":"OPTS \u003d ["},{"line_number":37,"context_line":"    cfg.StrOpt(\u0027swift_service_type\u0027,"},{"line_number":38,"context_line":"               default\u003d\u0027object-store\u0027,"},{"line_number":39,"context_line":"               help\u003d\"Swift service type. \"),"},{"line_number":40,"context_line":"    cfg.StrOpt(\u0027reseller_prefix\u0027,"},{"line_number":41,"context_line":"               default\u003d\u0027AUTH_\u0027,"},{"line_number":42,"context_line":"               help\u003d\"Swift reseller prefix. Must be on par with \""}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_26d4c6b9","line":39,"in_reply_to":"baada198_70e058f8","updated":"2014-08-13 00:02:15.000000000","message":"Done\n\nThanks for the review. I removed the last space in help.","commit_id":"1c22a75ae38379780d0aefcba3733eec4ac009cf"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"6387282d57560a68463a54b158f613c6ae970ea4","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    def _get_account_info(self, ksclient, cache):"},{"line_number":67,"context_line":"        try:"},{"line_number":68,"context_line":"            endpoint \u003d ksclient.service_catalog.url_for("},{"line_number":69,"context_line":"                service_type\u003dcfg.CONF.swift_service_type,"},{"line_number":70,"context_line":"                endpoint_type\u003dcfg.CONF.service_credentials.os_endpoint_type)"},{"line_number":71,"context_line":"        except exceptions.EndpointNotFound:"},{"line_number":72,"context_line":"            LOG.debug(_(\"Swift endpoint not found\"))"}],"source_content_type":"text/x-python","patch_set":2,"id":"1abeadc6_9f7be97a","line":69,"updated":"2014-08-25 14:03:18.000000000","message":"we probably need this for all the services but i\u0027m ok if this patch is used just for swift considering scope of bug\n\nonly question is. if we want to add other services, is it better to create a section just for service types or do we want to keep it in default?","commit_id":"721a50ebeecf1ba526b4763ccb71c421886d0868"},{"author":{"_account_id":12193,"name":"Hisashi Osanai","email":"osanai.hisashi@jp.fujitsu.com","username":"ho"},"change_message_id":"3046ec1f0af5f62df447f7884436be9f1714dec8","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        for t in cache[self.CACHE_KEY_TENANT]:"},{"line_number":76,"context_line":"            api_method \u003d \u0027%s_account\u0027 % self.METHOD"},{"line_number":77,"context_line":"            yield (t.id, getattr(swift, api_method)"},{"line_number":78,"context_line":"                                (self._neaten_url(endpoint, t.id),"},{"line_number":79,"context_line":"                                 ksclient.auth_token))"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    @staticmethod"}],"source_content_type":"text/x-python","patch_set":2,"id":"1abeadc6_3b4d4073","line":78,"updated":"2014-08-27 01:48:41.000000000","message":"Thanks for the review. Maybe creating new section for service types is my preferable but not enough.\nI think that this configuration file has a lot of lines (over 1000 lines) and it is difficult to manage it so my idea is to split the file by mechanism of ceilometer such as alarm, notification, polling and so on. Then each service type will be add in [\u003cservice name\u003e] section of a configuration file for polling.","commit_id":"721a50ebeecf1ba526b4763ccb71c421886d0868"},{"author":{"_account_id":8052,"name":"Nejc Saje","email":"nejc@saje.info","username":"nsaje"},"change_message_id":"7c81c6f822e906aa609cd2cd63ede2c2eea5bd27","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        if _Base._ENDPOINT is None:"},{"line_number":70,"context_line":"            try:"},{"line_number":71,"context_line":"                _Base._ENDPOINT \u003d ksclient.service_catalog.url_for("},{"line_number":72,"context_line":"                    service_type\u003d\u0027endpoint:%s\u0027 % cfg.CONF.service_types.swift,"},{"line_number":73,"context_line":"                    endpoint_type\u003dcfg.CONF.service_credentials.os_endpoint_type)"},{"line_number":74,"context_line":"            except exceptions.EndpointNotFound:"},{"line_number":75,"context_line":"                LOG.debug(_(\"Swift endpoint not found\"))"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa98f980_93e71eac","line":72,"updated":"2014-09-18 11:11:21.000000000","message":"The \u0027endpoint:%s\u0027 is redundant here, that signified the discovery. Since a recent patch swift doesn\u0027t use endpoint discovery anymore, so this should be just\n\n service_type \u003d cfg.CONF.service_types.swift","commit_id":"e6fc95b31881c1938f25e209e61cad9e560f0b4d"},{"author":{"_account_id":12193,"name":"Hisashi Osanai","email":"osanai.hisashi@jp.fujitsu.com","username":"ho"},"change_message_id":"1a7379e96a94bf7f605e5a4b3474f7460c598a0d","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        if _Base._ENDPOINT is None:"},{"line_number":70,"context_line":"            try:"},{"line_number":71,"context_line":"                _Base._ENDPOINT \u003d ksclient.service_catalog.url_for("},{"line_number":72,"context_line":"                    service_type\u003d\u0027endpoint:%s\u0027 % cfg.CONF.service_types.swift,"},{"line_number":73,"context_line":"                    endpoint_type\u003dcfg.CONF.service_credentials.os_endpoint_type)"},{"line_number":74,"context_line":"            except exceptions.EndpointNotFound:"},{"line_number":75,"context_line":"                LOG.debug(_(\"Swift endpoint not found\"))"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa98f980_5fa3e6b0","line":72,"in_reply_to":"fa98f980_93e71eac","updated":"2014-09-19 06:13:43.000000000","message":"You are right! I fixed it. Thanks.\nDone","commit_id":"e6fc95b31881c1938f25e209e61cad9e560f0b4d"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"147085e76841db2f71acbe588652561d78ae839b","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        # only ever called once"},{"line_number":70,"context_line":"        if _Base._ENDPOINT is None:"},{"line_number":71,"context_line":"            try:"},{"line_number":72,"context_line":"                conf \u003d cfg.CONF.service_credentials"},{"line_number":73,"context_line":"                _Base._ENDPOINT \u003d ksclient.service_catalog.url_for("},{"line_number":74,"context_line":"                    service_type\u003dcfg.CONF.service_types.swift,"},{"line_number":75,"context_line":"                    endpoint_type\u003dconf.os_endpoint_type)"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa98f980_b0d5d1e6","line":72,"updated":"2014-09-19 14:56:32.000000000","message":"i\u0027m not sure why this was changed. but i just noticed we originally forgot to import_opt/group service_credentials","commit_id":"72d65777962a2b93e80f7e17ce6602caa6a79bed"},{"author":{"_account_id":12193,"name":"Hisashi Osanai","email":"osanai.hisashi@jp.fujitsu.com","username":"ho"},"change_message_id":"8e986d8afca8f98962a08e1c6d27b1917712c992","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        # only ever called once"},{"line_number":70,"context_line":"        if _Base._ENDPOINT is None:"},{"line_number":71,"context_line":"            try:"},{"line_number":72,"context_line":"                conf \u003d cfg.CONF.service_credentials"},{"line_number":73,"context_line":"                _Base._ENDPOINT \u003d ksclient.service_catalog.url_for("},{"line_number":74,"context_line":"                    service_type\u003dcfg.CONF.service_types.swift,"},{"line_number":75,"context_line":"                    endpoint_type\u003dconf.os_endpoint_type)"}],"source_content_type":"text/x-python","patch_set":8,"id":"da9df570_cfc55e3e","line":72,"in_reply_to":"fa98f980_b0d5d1e6","updated":"2014-09-24 08:06:08.000000000","message":"Thanks for the comment. First I tried to do refactoring of the redundant variables but it was difficult to keep pep8 (charactor length in a line) so I modified it.","commit_id":"72d65777962a2b93e80f7e17ce6602caa6a79bed"}],"doc/source/configuration.rst":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"147085e76841db2f71acbe588652561d78ae839b","unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"The following options must be placed under a [service_types] section"},{"line_number":74,"context_line":"and will be used by Ceilometer to retrieve information from OpenStack"},{"line_number":75,"context_line":"components."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":78,"context_line":"Parameter                        Default                               Note"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa98f980_b0523133","line":75,"updated":"2014-09-19 14:56:32.000000000","message":"should we mention that these are service_type values defined in keystone or is it safe to assume people already know this?","commit_id":"72d65777962a2b93e80f7e17ce6602caa6a79bed"}]}
